康虎云报表中根据表中指定字段值动态打印几份

admin 2020-8-28 13540

对于有些业务场景,需要根据某一个值决定报表打印几份。一个典型的例子就是产品装箱单或者产品标签。这种需求只需要写几行代码就可以实现,下面是一个例子:

模板格式如下:

该标签要根据数量后面的格子里的数值打印相应的份数。


步骤如下:

1、选中MasterData1栏


2、在左侧属性区选择“事件”


3、在“OnBeforePrint”和“OnAfterPrint”事件中双击



4、在左上角点击“代码”标签页,切换到代码编辑器

输入如下代码:

var
  _count : Integer = -1;   //打印份数计数值                                                                      

procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  if _count = -1 then _count := <mysale_sonhuodandetial."Amount1">;  //如果计数值为-1表示主数据的新记录准备开始打印
end;

procedure MasterData1OnAfterPrint(Sender: TfrxComponent);
begin
  _count := _count - 1;                                              //计数值减1
  if _count < 1 then _count := -1;                                   //如果计数值小于了,则表示该条记录已打印完成
  if _count > 0 then Engine.ShowBand(MasterData1);                   //如果计数值还大于1,则表示份数还没打印完
end;

//下面两行不能删除
begin
end.

截图如下



5、预览结果:



最新回复 (0)
返回