我设了个DataModule1里面放了两个组件SQLConnection1、SimpleDataSet1。SQLConnection1连上了数据库,SimpleDataSet1
的Connection属性是SQLConnection1。
下面是我的sql查询语句
var
sql:string;
begin
 sql := 'select a,b,c from aaa where ....';
 DataModule1.SimpleDataSet1.active := false;
 DataModule1.SimpleDataSet1.dataset.CommandText := sql;
 DataModule1.SimpleDataSet1.active := true;
 DataModule1.SimpleDataSet1我改名为dm.sdt
现在我用fastreport想把查询结果打印出来。在form1面板上放了个frxReport1和frxDBDataset1组件frxReport1的dataset设为
frxDBDataset1,frxDBDataset1的dataset设为dm.sdt(DataModule1.SimpleDataSet1数据源),双击frxReport1进入报表编辑器。在data里加入frxDBDataset1在右边的frxDBDataset1没有具体的字段。怎么才能把他弄出来呢?请高手指点。

解决方案 »

  1.   

    只有在数据集已经打开的情况下才能显示字段,你可以在设计期先把数据集连上,并open,然后设置模板,设置好后,关闭数据集,或者在运行期进行设置模板
      

  2.   

    問題已經很明顯了,數據集沒有被打開是無法顯示字段的,設計期把數據集連接OK並打開,然後再frxDBDataset就會有具體的字體了1.檢查一下adoconnnect是否有連接OK;
    2.檢查設定ado的active屬性為true(即是否有連接到表);
      

  3.   

    我运行了程序,在DBGridEh1里能看到数据了,这个DBGridEh1也是通过DataSource1取dm.sdt上数据的。
    但是我还是看不到frxDBDataset1的具体字段。
      

  4.   

      qry_kjmain.Close;
      qry_kjmain.SQL.Clear;
       qry_kjmain.SQL.Add(as_sql_main)  ;//
        qry_kjmain.Open;
        frxReport_mb.DataSets.Add(frxDBDataset_kjmain);
    frxReport_mb.DesignReport();楼主给你 研究一下,这个我是通过的
      

  5.   

    在设计期打开Dataset或者把字段添加到dataset中。
      

  6.   

    数据库应该是关联好的,我的DBGridEh1用的是同样的关联,它里面却能显示数据。
      

  7.   

    数据关联后,一定要在控件里写上SQL语句,或者代码中写,然后打开数据集。在报表设计器里就能看到表字段了。还有用完了想着关闭哦。
      

  8.   

    在哪个控件上写呢,我在frxReport1的beforeprint里写了sql还是看不到字段
      

  9.   

    在选择“数据”菜单,然后选择相应的frxDBDataset即可