TStringGridの内容からQuickReportを作成する方法
-
15-09-2020 - |
質問
Windows 7でDelphi 7とQuickReportsを使用しています。クエリ。
どのように?
解決
QuickReport.onneedDataイベントハンドラを使用します。それはMoredataと呼ばれるvarパラメータ(ブール値)を渡します。それをtrueに設定すると、それが再び呼び出されることを意味します。QuickReport.DataSourceプロパティを空白のままにして、TQRDBTEXTではなくPlain TQRTextコントロールを使用してください。
// CurrLine is an Integer. In your case, it can represent a row in the StringGrid.
procedure TPrintLogForm.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData := (CurrLine < StringGrid1.RowCount);
if MoreData then
begin
qrTextLine.Caption := StringGrid1.Cells[0, CurrLine];
qrTextData.Caption := StringGrid1.Cells[1, CurrLine];
Inc(CurrLine);
end;
end;
. 他のヒント
i列のセットがStringGrid内(および対応するTcrientDataSetと共に)固定されていると仮定する。ステップバイステップの説明:
- の形式でTclientDataSetを削除
- Doublic TclientDataSetをクリックし、キーボードの挿入キーを押して新しいフィールドを追加し、グリッドのそれぞれの列に1つのフィールドを追加します。例:col1、string、128幅。
- フォームのTclientDataSetを右クリックして、「データセットの作成」 を押す
- 実行時にこの種のコードを実行してください:
CS.Append; CS['COL1'] := 'Whatever'; CS['COL2'] := 'An other thing'; CS.Post;.
グリッド内の各行の上にループするループ内の追加/投稿をする必要があります。COL1、COL2などを他のループに割り当てることも、それを手書きにすることもできます。
所属していません StackOverflow