欢迎各位高手参与讨论,关于PB实现自定义报表的问题-----------blazingstar

blazingstar 2002-01-24 10:26:32

PB数窗功能虽然强但用户自定义报表很不方便。三年前我开发的一个软件中已经解决了自定义功能解释执行的核心问题。

通过PB实现了词法分析器、语法分析器和解释执行器,可以对一个公式字符串进行解释并执行得到结果。比如用户可以

在表的公式字段中存入 “借方期初余额(101)+借方本期发生额(101)”这样的公式。当要输出结果时程序会扫描这个字

符串并调用相应函数,得到101科目的借方期初余额+101科目的贷方期初余额的结果。

实现了如下面格式报表的公式自定义功能

|-------|---------|-----------------------|
| 行次 | 项 目 | 借 方 余 额 |
|-------|---------|-----------------------|
| 1 |现金 |借方期初余额(101)+借方本期发生额(101) |
|-------|---------|-----------------------|
| 2 |银行存款 |行次(3)+行次(4) |
|-------|---------|-----------------------|
| 3 | 建行银行存款 |借方期初余额(10201)+借方本期发生额(10201) |
|-------|---------|-----------------------|
| 4 | 工行银行存款 |借方期初余额(10201)+借方本期发生额(10201) |
|-------|---------|-----------------------|
| …… | …… | …… |

用户可以在[项目]内填入自己的内容,在[借方余额]处填入与项目对应内容的计算公式,然后存入数据库中。打印输出

时系统将公式的地方计算出相应数字显示给用户。


但麻烦的是处理自定义报表相当不灵活,报表的格式必须在程序开发时定好,无法向用户提供自己灵活的自定义报表。

各位高手有什么好的方法可以解决提供用户灵活的报表格式,这一问题将得到彻底解决。

欢迎各位PB高手共同参与讨论。
...全文
467 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ALLTEC 2002-01-29
  • 打赏
  • 举报
回复

用户喜欢Excel这种方式的报表 !!!
yiyu 2002-01-28
  • 打赏
  • 举报
回复
要做是可以实现的,就等于做了一个报表编辑系统了!!!好大的工程啊!至于那个编辑后的文件我想也不一定存放在PBD中啊(当然,如果行的话那最好了),我们可以存在一个自定义的文件里啊。在程序中约定在打开报表时去读取这个文件,取出这个报表的设置参数,按这参数进行画呀!!!
blazingstar 2002-01-28
  • 打赏
  • 举报
回复
谢谢 dekker(迪克牛仔),
你说得对,我见过一些动态报表功能和PB的数窗画笔差不多,无非是汉化了而已。试问,如果一个用户能使用这么复杂的工具自定义报表的话,
估计这个用户用PB写程序也没太大的问题了,何必再用动态报表功能呢。因此我一直也在想如何设计出一种使用简单方便的动态报表功能给用户使用。
用户是不是喜欢Excel这种方式的报表,还是喜欢别的?用户到底喜欢什么样的动态报表功能,程序员并不太了解。
因此开发出来的功能自认为是很完美的,但却得不到用户的认可。

希望大家提供一些参考意见。
killerdanny 2002-01-28
  • 打赏
  • 举报
回复
提议到是不错,但是第一没有时间,第二没有精力,第三没有钱。只要什么一沾到钱就难办了!
am2000 2002-01-28
  • 打赏
  • 举报
回复
难啊.
fzymr 2002-01-25
  • 打赏
  • 举报
回复
如果是真的,能不能开个后门,让我也加入一个?
blazingstar 2002-01-25
  • 打赏
  • 举报
回复
to:wangwan(快乐跳蚤),易佳报表的网站的网址是什么呀?
blazingstar 2002-01-25
  • 打赏
  • 举报
回复
谢谢fzymr(风中游牧人),我也正有这种想法,不知会不会有人加入呀。
blazingstar 2002-01-24
  • 打赏
  • 举报
回复
pb8在这方面也没什么改进
kkbgp 2002-01-24
  • 打赏
  • 举报
回复
虽然pb的数据窗口功能还比较强大,但在给用户自定义报表方面好象是缺乏一点什么,不知道pb8有没有改善

blazingstar 2002-01-24
  • 打赏
  • 举报
回复
不好意思写错了,是“得到101科目的借方期初余额+101科目的借方本期发生额的结果”
fzymr 2002-01-24
  • 打赏
  • 举报
回复
blazingstar:
我发现你提的问题很有水准和技术含量的,能不能牵头成立一个开发小组,把这些好的创意/建议实现?
powered 2002-01-24
  • 打赏
  • 举报
回复
听朋友说,在网上有一种共享控件,在pb中可以调用,通过对该控件进行编程可以实现自由报表。
llitcwl 2002-01-24
  • 打赏
  • 举报
回复
工作量太大
wangwan 2002-01-24
  • 打赏
  • 举报
回复
你去易佳报表的网站看看人家就是用PB干的
blazingstar 2002-01-24
  • 打赏
  • 举报
回复
to:hhytsoft(hhytsoft) 谢谢!这种方法我也考虑过,不过觉得不能达到灵活的效果。
「已注销」 2002-01-24
  • 打赏
  • 举报
回复
同样的道理,建议你从数据库的角度揭示问题的根本。给你两点建议,首先,用户自定义报表与系统自动生成报表相结合,2。定义1个表,存放数据窗口的对象的基本属性(x,y,color,font等),至于统计完全可利用数据窗口已有的功能
另外,数据窗口类型分为两种,外部数据窗口和实际存在的数据表
原先的程序数据缓冲区采用String类型,因此无法发送H00,现将数据缓冲区修改为BLOB类型,可以发送任意数据。 在原先程序的基础上,增加了两个对象:pfc_n_cst_numerical,uo_bit_operator Email: leio88@126.com 以下是原作者的话---------------------------------- 本程序通过调用WINDOWS API函数,实现了类似MSCOMM控件的功能。使PB可以很方便地访问串口。由于所有功能都是PB代码实现的,因此比使用OCX控件访问串口的方式更稳定。 为了方便使用已将所有功能都封装在uo_comm._control用户对象中。使用时只需在窗口中像放置普通对象(如:按钮)一样放置一个uo_comm_control对象即可对串口进行访问。 访问串口时先调用of_setcommport(string commport)和of_setcommsettings(string commsettings)来设置要访问的端口及端口初始化参数,然后调用of_open()初始化端口。或直接使用of_open(string comport,string commsettings)带参数初始化端口。端口初始化成功后即可使用of_send(string sendstring)向串口发送数据,或使用of_read()读取串口数据。当串口有数据到达时,触发ue_received事件,该事件提供给用户用来存放读取串口数据的代码(值得注意的是,当数据到达接收端时,由于发送的数据很长或通讯速率较低,会多次触发ue_receieved事件,并且在ue_received事件中使用of_read()得到的数据仅只是整个发送数据的一部分,需要将多次接收到的数据连接起来才是完整的接收数据)。若对串口所有操作结束不再需要对串口进行操作,则调用of_close()将端口关闭。 Email: blazingstar@sina.com
利用Win API Kernel32.dll 实现与串口通迅。 原先的程序数据缓冲区采用String类型,因此无法发送H00,现将数据缓冲区修改为BLOB类型,可以发送任意数据了。 在原先程序的基础上,增加了两个对象:pfc_n_cst_numerical,uo_bit_operator Email: leio88@126.com 以下是原作者的话: 本程序通过调用WINDOWS API函数,实现了类似MSCOMM控件的功能。使PB可以很方便地访问串口。由于所有功能都是PB代码实现的,因此比使用OCX控件访问串口的方式更稳定。 为了方便使用已将所有功能都封装在uo_comm._control用户对象中。使用时只需在窗口中像放置普通对象(如:按钮)一样放置一个uo_comm_control对象即可对串口进行访问。 访问串口时先调用of_setcommport(string commport)和of_setcommsettings(string commsettings)来设置要访问的端口及端口初始化参数,然后调用of_open()初始化端口。或直接使用of_open(string comport,string commsettings)带参数初始化端口。端口初始化成功后即可使用of_send(string sendstring)向串口发送数据,或使用of_read()读取串口数据。当串口有数据到达时,触发ue_received事件,该事件提供给用户用来存放读取串口数据的代码(值得注意的是,当数据到达接收端时,由于发送的数据很长或通讯速率较低,会多次触发ue_receieved事件,并且在ue_received事件中使用of_read()得到的数据仅只是整个发送数据的一部分,需要将多次接收到的数据连接起来才是完整的接收数据)。若对串口所有操作结束不再需要对串口进行操作,则调用of_close()将端口关闭。 Email: blazingstar@sina.com
水果商城销售系统(源码+数据库+毕业论文+答辩ppt)java开发springboot框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 本系统分为用户、商家、管理员3个角色 ① 普通用户:注册登录后,可以通过在线查看公告资讯并进行收藏、点赞以及评论,浏览水果信息页面,搜索水果名称或根据分类筛选,加入购物车,编辑收件地址,确定购买下单并支付金额,查看订单状态,如有任何疑问可以咨询在线客服等功能。 ② 商家用户:在线注册后由管理进行审核后可以登录,商家可以发布水果信息,上传水果名称、图片、价格信息等,处理订单等功能。 ③ 管理员:具备对用户、商家、水果信息、水果分类、系统管理、订单管理等所有管理功能的权限。 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的 2.IDE环境:IDEA,Eclipse,Myeclipse都可以 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。

401

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧