Fast Reports 5.0 в Red Studio XE7

Добрый день! Знакомлюсь с FastReport встроенном в среду разработке Red Studio XE7. На форме есть компонент StringGrid. Нужно построчно из него вывести в печатную форму в виде ценников на одном листе. С чего начать?

Пока получилось только в собственным переменным созданным Fast Reports присвоить значения одной из строк StringGrid.

Комментарии

  • В платной версии это делается так:

    procedure TfrmPrintStringGridMain.frxReport1BeforePrint(c: TfrxReportComponent);

    var

     Cross: TfrxCrossView;

     i, j: Integer;

    begin

     if c is TfrxCrossView then

     begin

       Cross := TfrxCrossView(c);

       for i := 1 to 16 do

         for j := 1 to 16 do

           Cross.AddValue([i], [j], [StringGrid1.Cells[i - 1, j - 1]]);

     end;

    end;

    В бесплатной кроссов нет. Попробуйте через TfrxUserDataset (пример для таблицы. Для грида аналогично)

    procedure TfrmUserDataset.frxUserDataSet1First(Sender: TObject);

    begin

     ADOTable1.First;

    end;


    procedure TfrmUserDataset.frxUserDataSet1Next(Sender: TObject);

    begin

     ADOTable1.Next;

    end;


    procedure TfrmUserDataset.frxUserDataSet1Prior(Sender: TObject);

    begin

     ADOTable1.Prior;

    end;


    procedure TfrmUserDataset.frxUserDataSet1CheckEOF(Sender: TObject;

     var Eof: Boolean);

    begin

     Eof := ADOTable1.Eof;

    end;


    procedure TfrmUserDataset.FormShow(Sender: TObject);

    begin

     frxUserDataSet1.Fields.Clear;

     frxUserDataSet1.Fields.Add('Company');

     frxUserDataSet1.Fields.Add('Addr1');

     frxUserDataSet1.Fields.Add('Contact');

     frxUserDataSet1.Fields.Add('Phone');

     frxUserDataSet1.Fields.Add('FAX');

     ADOTable1.Active := False;

    {$IFNDEF CPUX64}

     ADOTable1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\..\Data\demo.mdb';

    {$ELSE}

     ADOTable1.ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\..\Data\demo.mdb';

    {$ENDIF}

     ADOTable1.Active := True;

     frxReport1.ShowReport();

     Close;

    end;


    procedure TfrmUserDataset.frxUserDataSet1GetValue(const VarName: String;

     var Value: Variant);

    begin

     if VarName = 'Company' then

       Value := ADOTable1.FieldByName('Company').AsString

     else if VarName = 'Addr1' then

       Value := ADOTable1.FieldByName('Addr1').AsString

     else if VarName = 'Contact' then

       Value := ADOTable1.FieldByName('Contact').AsString

     else if VarName = 'Phone' then

       Value := ADOTable1.FieldByName('Phone').AsString

     else if VarName = 'FAX' then

       Value := ADOTable1.FieldByName('FAX').AsString;

    end;

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

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