Як у FastReport 3 відобразити вміст StringGrid

Використовувати TfrUserDataSet? Але як?

не знаю як у третьому, але взагалі є у TfrUserDataSet події OnCheckEOF , тут ти призначаєш змінної EOF значення, True кінець набору даних і False відповідно навпаки. треба.

А приклад можна? Як саме здійснити прив'язку StringGrid до frxUserDataSet?

Правда, StringGrid не відображається, якщо є рядкові рядки - помилка: could not convert variant of type(string) into type (double). Під час трасування виявляється, що немає модуля - frxCrossMatrix.pas. У чому ж справа? Використовую TfrxCrossView: для i := 1 для StringGrid1.ColCount для for j := 1 для StringGrid1.RowCount do Cross.AddValue( [j], [i], [StringGrid1.Cells[i – 1, j – 1]]); Якщо в StringGrid1 комірки тільки числові (real,integer. ), то все ОК. Хто-небудь знає, як відобразити StringGrid1, якщо комірки можуть бути рядковими?

є у TfrReport подія OnGetValue, я там підставляю значення змінних.

procedure TfrmRepFuel.frUDamountCheckEOF(Sender: TObject; var Eof: Boolean); begin Eof:=cdsCaption.Eof; end;

procedure TfrmRepFuel.frUDamountFirst(Sender: TObject); beginfAmount:=cdsFuel.FieldByname("amount").AsFloat cdsCaption.next; end;

procedure TfrmRepFuel.frUDamountNext(Sender: TObject); begin if . thenfAmount:=cdsFuel.FieldByname("amount").AsFloat elsefAmount:=0; cdsCaption.next; end;

procedure TfrmRepFuel.frReportGetValue(const ParName: String; var ParValue: Variant); begin if ParName="amount" then ParValue:=fAmount; end;

Я так розумію frUDamount - цеfrUserDataSet, а що таке cdsCaption?

fedor (12.08.04 8:24) [6]Щоб у рядкових не виникало помилок, тобі у звіті там куди ти засовуєш значення треба вказати явно тип даних, у твоєму випадку рядковий ось і все

Словник даних->Змінні).І в мемо полях підставити ці змінні.

procedure TfrmRepFuel.frReportGetValue(const ParName: String; var ParValue: Variant); begin if ParName="column1" then ParValue:=fCol1; if ParName="column2" then ParValue:=fCol2; if ParName="column3" then ParValue:=fCol3; end;

та визначити кінець набору даних

procedure TfrmRepFuel.frUDCheckEOF(Sender: TObject; var Eof: Boolean); begin Eof:= I>StringGrid.ColCount; end;

Все вийшло, спасибі. Але друк StringGrid через CrossView зручніше, звичайно, т.к. відображається у вигляді таблиці, і якщо стовпці не вміщаються на одному аркуші, переносяться. У запропонованому тобою варіанті необхідно вказувати конкретні Memo-поля, а щоб усе вийшло у вигляді таблиці, необхідно підганяти розташування Memo-полів і обрамляти їх рамкою, що незручно.

Однак, ще питання: Як у FastReport 3(beta) прибрати повідомлення - "Unregistered version of FasReport"?

тобто. "Unregistered version of FastScript" воно з'являється при відкритті звіту

> Як у FastReport 3(beta) прибрати повідомленняМоже зареєструвати треба?

А взагалі це тестова бета, її не можна юзати. Тільки тестувати