BRCM报表功能提供了强大的报表模板定制功能,用户可以方便的创建和编辑报表,借助可视化的报表编辑器组织报表数据。除了定制各种格式的表格,用户甚至可以在报表模板中加入编程脚本,根据实际需要对报表中的数据进行处理。
下面,我们结合一个实际案例,说明在报表模板中应用编程脚本的过程。
在电缆报表中,“电缆长度” 按电缆的实际长度列出,处于实际应用的考虑,我们希望电缆长度统计为5的倍数,如18米长的电缆,在报表中应为20米。
打开对应的报表模板“Detail_Cable_Schedule”进行编辑,选择“LENGTH”长度数据项,需要添加脚本对该数据进行处理。在右下“Property Grid”中,找到"Scripts"项。
展开"Scripts"项,选择“Before Print”创建新脚本:
选择New后,系统自动打开脚本编辑功能,可以在其中添加脚本。以C#格式为例:
//定义电缆长度变量System.Double cableLength = 0;
//系统自动生成在显示报表前调用的函数private void tableCell23_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) { //读取报表中初始电缆长度值,及系统返回的实际电缆长度值 cableLength = System.Convert.ToDouble(GetCurrentColumnValue("LENGTH")); //对电缆长度按5的倍数向上取整 cableLength = System.Math.Ceiling (cableLength/5) * 5; //将取整后的电缆长度赋值给报表中的列 (sender as XRLabel).Text = cableLength.ToString();}
将脚本保存后,运行修改后的报表模板:
备注:这只是在报表模板定义中应用脚本实现工程需求的一个很小的示例,通过在报表模板中嵌入脚本,可以实现大量复杂的报表生成工作。在Bentley Substation的默认报表模板中,也存在了大量已经定义好的脚本实现各种不同功能,可以起到很好的参考作用。