10

FastReport Designer を使用してレポートを作成し、Delphi 6 を使用してそれを呼び出しました。しかしDataSetMasterData設計時に および フィールドが割り当てられません。選択した に基づいて、これらのプロパティを実行時に設定したいと考えていますDataSet。どうやってやるの?プレビュー/印刷/デザインを呼び出す前に、Delphiで にアクセスするDataSetにはどうすればよいですか? MasterDataに次のコードを追加しましたfrxReport1BeforePrint

  t := frxReport1.FindObject('MasterData1') as TfrxMasterData;
  //if Assigned(t) then
    //t.DataSet := frxIBODataset1;

  m := frxReport1.FindObject('mTenderType') as TfrxMemoView;
  if Assigned(m) then
  begin
    m.DataSet := frxIBODataset1;
    m.DataField := 'ACCOUNTNAME';
    m.Text := '[frxIBODataset1."ACCOUNTNAME"]';
  end;

ただし、印刷/デザイン/プレビューを呼び出す前に、これらのプロパティを設定する必要があります。どんな助けでも大歓迎です。

4

2 に答える 2

2

最初に、アプリケーションで定義されたデータセットを使用しようとしているのか、レポートで直接定義されているデータセットを使用しようとしているのかを指定する必要があります (FastReport デザイナーの [データ] タブ)。

アプリケーション内で定義されたデータセット (たとえば、データ モジュールの 1 つで定義された AdoDataset インスタンス) を使用しようとしている場合、そのような目的で MasterBand をデータセットにバインドする必要はありません。動的に。レポート内で、設計時に MasterBand が TfrxDbDataset インスタンスにバインドされます。実行時に、frxDbDataset インスタンスをプロジェクト内の任意のデータセットに接続できます。

それがどのようになるかは次のとおりです。

1- フォームまたはデータ モジュールに frxReport コンポーネントと frxDbDataset コンポーネントをドロップします。2- レポート デザイナーで、[データセット] セクションに移動し、使用可能な frxDbDataset をレポートのデータセット リストに追加します。3- マスター データ バンドを追加し、frxDbDataset をその Dataset プロパティに割り当てます。4- コードで、レポートを表示または準備する前に、次のように記述できます。

  if MyOption = 1 then
    frxDbDataset1.Dataset := AdoDataset1
  else
    frxDbDataset1.Dataset := AdoDataset2;

frxDbDataset に割り当てたものはすべて、レポートのマスター バンドによって出力されます。

レポート内でデータセットを直接定義している場合は、FastReport デザイナーを使用します。すべてがレポート内にあります。fastreport デザイナーを開いて、次のようにします。

1- [データ] タブに移動し、データセット (AdoQuery1 など) を定義します。2- レポート ツリー ペインからレポート オブジェクトを選択します。3- オブジェクト インスペクタで、[イベント] タブに移動します。4- 適切なイベントを選択してください。OnStartReport は、仕事に適したイベントです。それをダブルクリックして、コード エディターを開きます。5- これで、PascalScript コードを使用して、data-tab で定義されたデータセットを master-data バンドに割り当てることができます。このようなもの:

procedure frxReport1OnStartReport(Sender: TfrxComponent);
begin
  MasterData1.Dataset := <ADOQuery1."ADOQuery1">;      
end;
于 2010-10-31T23:32:53.413 に答える
0

FastReport 3+を使用している場合は、データベースコンポーネントをレポート内に配置できます。必要なのは、データベース接続を提供し、アプリケーションからデザイナーを実行することだけです。

変数を定義し、アプリケーションからそれらを渡し、.fr3レポートファイルを実行できます。

于 2010-11-01T16:13:03.173 に答える