环思产品论坛

标题: 报表中对数据集排序、筛选及回写打印时间 [打印本页]

作者: zhouyangping    时间: 2014-12-11 10:55
标题: 报表中对数据集排序、筛选及回写打印时间
本帖最后由 zhouyangping 于 2014-12-11 11:30 编辑

排序
在报表代码里 begin end 中第一行写
  1. begin
  2.   TCustomADODataSet(TfrxDBDataSet(MasterData1.DataSet).DataSet).Sort :='sSalesGroupName,sSalesName';
  3. end.
复制代码

  1. begin
  2. TCustomADODataSet(TfrxDBDataSet(Report.GetDataset('NAME')).DataSet).Sort :='sSalesGroupName,sSalesName';
  3. end.
复制代码

筛选
在报表代码里 begin end 中第一行写
  1. begin
  2.   TCustomADODataSet(TfrxDBDataSet(MasterData1.DataSet).DataSet).Filter := 'bSelected=1';
  3.   TCustomADODataSet(TfrxDBDataSet(MasterData1.DataSet).DataSet).Filtered := True;
  4. end.
复制代码


回写打印时间示例
  1. var
  2. slist:string;                                    

  3. procedure Page1OnBeforePrint(Sender: TfrxComponent);
  4. var
  5.   qry:TCustomADODataSet;              
  6. begin
  7.   qry := TCustomADODataSet(TfrxDBDataSet(Report.getDataSet('查询结果1')).DataSet);
  8.   qry.Filter :='bSelected=1';
  9.   qry.Filtered := True;
  10.   slist := '';                           
  11.   qry.First;
  12.   while not qry.Eof do
  13.   begin
  14.     qry.Next;                                 
  15.     slist := slist + ','''+qry.FieldByName('uGUID').AsString+'''';                                                                                                                             
  16.   end;            
  17.   if slist <> '' then
  18.     delete(slist,1,1);
  19. end;  


  20. procedure rptMainOnReportPrint(Sender: TfrxComponent);
  21. var   
  22.   up:TfrxADOQuery;
  23. begin
  24. if slist <> '' then
  25. begin
  26.   up := TfrxAdoQuery.Create(nil);
  27.   try        
  28.     up.SQL.Text :='update mmhwInDtl set tInprintTime=getdate() where uguid in ('+slist+')';
  29.     up.execsql;
  30.   finally               
  31.     up.Free;
  32.   end;         
  33. end;         

  34. end;

  35. begin

  36. end.
复制代码








欢迎光临 环思产品论坛 (http://bbs.huansi.cn/) Powered by Discuz! X3.2