PostERP的用户可以无限制地自行开发更多报表,让终端用户以之预览与打印报表,或把SQL回应的资料存成文档。数据库里的table都可以拿来自行编制报表,立即集成到指定屏幕的选单中。
如果要在SQL中嵌入参数供终端使用人输入,请在参数之前加冒号:。例如:
SELECT f1,f2 FROM t52 WHERE f2 BETWEEN :bd AND :ed |
其中,bd与ed分别为两个参数。然后在参数页指定个参数的作用,自此,这些参数即等后终端使用人输入数值。
如果必须cast PostgreSQL的资料型态,不要这样cast:f1::TEXT。因为::会混淆PostERP瘦客户。请这样cast:CAST(f1 AS TEXT)。 |
请善用PostERP提供的月初、月底函数:MonthBegin()、MonthEnd()。详见Chapter 8。 |
PostERP对SQL injection攻击有防卫。因为终端用户只能输入参数,PostERP再嵌入这些参数进去SQL text。PostgreSQL遇到无效的SQL参数时,会以执行失败告终。 |
开发系统的工作可以选择在云版或桌面版的PostERP上面进行。但是有一个例外 – 设计报表样板,只能在桌面版的PostERP上面进行。 所以,兆笔的开发伙伴必须从GitLab下载瘦客户软件tc.exe,执行它,接入你的开发服务器。其IP地址於您以伙伴开发人身份登录后,在这个网页显示。 |
PostERP目前版本只能打印Bitmap以及JPEG图案。 |
固定式财务报表样板的主要DataSet name必须设定成mds。
多利用PostERP的国际化功能,以设计多国语言的报表样板。
关於片语的设定,请参考Section 18.1。 |
假设报表样板有一个字段标题,是员工姓名。因为这份报表将提供给全球操不同语言的用户使用,所以,把员工姓名这几个中文字直接设计在报表样板里,并不可行。
正确的作法是:设置标题代码字段,也就是C245。这里的C是常数,不可以更换。紧跟在C常数的数字245是片语#。如此一来,各国终端用户於打印报表时,PostERP会自动把员工姓名以该用户所使用的语言呈现。
终端用户於打印报表时,此变量(注意大、小写)会被该报表名称取代。这个名称通常用在报表的表头。
PostERP 自动把内嵌在SQL语句(参见Section 18.9.1)里的变量转成报表变量(注意大、小写)。终端用户於打印报表时,这些变量会被使用人输入的值取代。
终端用户於打印报表时,此变量(注意大、小写)会被该用户正在操作的公司名取代。
如果样板有Image元件且符合下列全部条件,则PostERP自动在该元件打印公司的logo。
Image source:选用Database field:。
Database field:的右侧框填入DataSetCompanyLogo.logo(注意大、小写)。
Logo自数据库里面的t45.f5table与column读取。
有些报表并非只用一道SQL指令就能取得资料。
例如PostERP的分录里的辅助标记:如果把一道SELECT指令选出的金额与辅助标记资料放在报表样板的detail band中,然后小计金额字段,则此金额小计是错的!因为:每一笔金额是附属於序号,而且每一笔序号附挂多笔辅助标记记录。金额小计所得到的结果是错误的重复多次辅助标记的金额加总。
此例,正确的作法是采用子报表技术。
请参考附挂於[MzF5]屏幕报表#『3』的子报表范例。 |
请参考附挂於[MzF5]屏幕报表#『1』与报表#『2』的Cross Table范例报表。