Treelist & Fastreport

отредактировано 06:25 Раздел: FastReport 3.0
Есть таблица в виде treelist, структура id,parentid,name

как вывести данную таблицу на печать, сохраняя структуру?
т.е. чтобы поле name выходило на печать как в три листе, что бы соблюдалось ветвление
вапав
|-fgdgdgdg
|-ddgdgdg
|-ddgdfgdg
|-dfgdg
|-dfgdgdf
|-sdfsfsfs
|-sfsfsfs

Комментарии

  • отредактировано 06:25
    Вот пример вывода на печать дерева, доработайте под себя:

    1. На форме расположен TfrxReport, TfrxUserDataS и заполненный TTreeView
    2. TfrxDataSet.Fields = name и level
    3. События TfrxUserDataset
    (cur_num - integer поле формы, например)
    procedure TForm1.frxUserDataSet1First(Sender: TObject);
    begin
      cur_num := 0;
    end;
    
    procedure TForm1.frxUserDataSet1Next(Sender: TObject);
    begin
      Inc(cur_num);
    end;
    
    procedure TForm1.frxUserDataSet1Prior(Sender: TObject);
    begin
      Dec(cur_num);
    end;
    
    procedure TForm1.frxUserDataSet1CheckEOF(Sender: TObject;
      var Eof: Boolean);
    begin
      Eof := cur_num = TreeView1.Items.Count;
    end;
    
    procedure TForm1.frxUserDataSet1GetValue(const VarName: String;
      var Value: Variant);
    begin
      if VarName = 'level' then
        Value := TreeView1.Items[cur_num].Level
      else
      if VarName = 'name' then
        Value := TreeView1.Items[cur_num].Text;
    end;
    

    4. В отчете бенд MasterData привязнные к UserDataSet, на нем Memo - [frxUserDataSet1."name"]. Для наглядности - обрамление снизу и слева

    5. В скрипте отчета
    procedure Memo1OnBeforePrint(Sender: TfrxComponent);
    begin
      TfrxMemoView(Sender).Left := 20 * <frxUserDataSet1."level">;
    end;
    

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.