在康虎云报表系统中,一般的文本组件是支持多个字段合并显示的,例如:
但如果在使用条形码组件,要把多个字段合并的值做为条码值,那么按照上面的这种方法,就会报错:
这是由于目前使用的条形码组件暂时不支持多个字段相加,那怎样才能实现条形码组件显示多个字段值的目的呢?通过脚本可以很好地解决这个问题。按下面的步骤:
1、在报表中放置所需的条形码组件,一维条形码、二维条形码都可以,然后把条形码的DataSet 、DataField、Expression三个属性的值都清空,如下图:
2、切换到代码编辑器,并切换到“事件”页标签,然后选择要操作的条形码对象(本例中是BarCode1和BarCode2D1)后,在该对象的“OnBeforePrint”事件后面空格双击,生成事件函数框架:
3、在刚才生成的事件函数里,填上代码:
procedure BarCode1OnBeforePrint(Sender: TfrxComponent); var barcode: TfrxBarCodeView; //声明一维码对象变量 begin //在页面里查找得到一维码对象 barcode := TfrxBarCodeView( Sender ); //把一维码对象的text属性赋值,即我们所需要的多字段合并值 barcode.Text := IntToStr(<customer."CustNo">)+'-'+<customer."Company">; end; procedure Barcode2D1OnBeforePrint(Sender: TfrxComponent); var barcode2d: TfrxBarCode2DView; //声明二维码对象变量 begin //在页面里查找得到二维码对象 barcode2d := TfrxBarCode2DView(Sender); //把二维码对象的Text属性赋值,即我们所需要的多字段合并值 barcode2d.Text := IntToStr(<customer."CustNo">)+'-'+<customer."Company">; end;
在代码编辑器的效果如图:
4、预览报表,效果如下:
完美地达到了我们想要的效果!