环思产品论坛

标题: 报表打印时回写打印人/打印时间/打印次数 [打印本页]

作者: zhouf    时间: 2016-5-4 18:47
标题: 报表打印时回写打印人/打印时间/打印次数
本帖最后由 zhouf 于 2016-6-1 10:20 编辑

报表打印时回写打印人/打印时间/打印次数

1. 进入报表设计环境
  
2. 开始编写代码
  
3. 填写代码内容(参见附A)
  

附A:
  1. procedure rptMainOnReportPrint(Sender: TfrxComponent);
  2. var
  3.   sBillNo: string;
  4.   qryCmd: TfrxADOQuery;         
  5. begin
  6.   //获取数据集的单据号列表            
  7.   with TfrxADOQuery(MasterData1.DataSet) do
  8.   begin
  9.     first;
  10.     while not Eof do
  11.     begin
  12.       sBillNo := sBillNo+','+FieldByName('入检单号').Asstring;
  13.       Next;
  14.     end;           
  15.   end;
  16.   //ShowMessage(sBillNo);

  17.   //回写打印次数/打印人/打印时间               
  18.   qryCmd := TfrxADOQuery.Create(nil);
  19.   //qryCmd.Database := TfrxADOQuery(MasterData1.DataSet).Database;
  20.   try
  21.     qryCmd.SQL.Text :=
  22.       ' UPDATE a SET '
  23.      +'  iPrintCount = ISNULL(a.iPrintCount,0)+1 '
  24.      +'  ,sPrintMan = '+QuotedStr(<CurrentUserId>)
  25.      +'  ,tPrintTime = GETDATE() '
  26.      +' FROM dbo.imClothesInHdr a(NOLOCK) '
  27.      +' WHERE a.sBillNo IN (SELECT * FROM dbo.fnpbConvertStringToTable('+ QuotedStr(sBillNo) +','',''))'
  28.      +'   AND (a.tPrintTime IS NULL OR a.tPrintTime < DATEADD(SECOND,-2,GETDATE()));';  //两次报表防止重复更新
  29.     //qryCmd.Open;
  30.     qryCmd.ExecSQL;
  31.   finally
  32.     qryCmd.Free;                             
  33.   end;
  34. end;
复制代码





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