现在有一个主从关系报表打印,从表中保存一个部门ID字段,如果在细表打印中显示部门名称?

解决方案 »

  1.   

    你可以把细表join部门表部门字段
      

  2.   

    现在是查询SQL语句不能变动,只有在报表打印上做动作啦。
      

  3.   

    报表加多一个Variable打印之前给它赋值
      

  4.   

    to cncharles(旺仔)
    我是这么做的,就是有一问题:如果得到细表打印到第几条,换句话讲就是如何得到当前行的细表部门ID值?在哪个事件比较好,frReport1GetValue吗?
      

  5.   

    在细表Band的onBeforePrint事件中可以实现你的功能
      

  6.   

    问题自行解决。
    1.定义一个数据字典变量 'D_id',
    2.一个TEXT中上面写入:'[dept_name]'
     下面写入‘D_id :=[ADODataSet."D_Id"]’在打印得到细表中的ID值。
    3.在GetValue事件中,根据得到的ID值找到名称。
    procedure TfrmSEQ.frReport1GetValue(const ParName: String;
      var ParValue: Variant);
    var str : string;
    begin
      inherited;
      if (ParName = 'dept_name')  then
      begin
        str := frReport1.Dictionary.Variables['D_id'];
        with frmDM.ADODept do
        begin
          if not Active then open;
         ParValue := Lookup('Dept_id',str,'Dept_name');
        end;
      end;
    end;