PB中表的修改对数据窗口和报表的影响的解决办法

原创 2001年08月13日 10:32:00
数据窗口(DataWindow)是PB最强大的功能之一,Datawindow是PB中获取专利技术的控件,它对数据的处理方法相当简洁,能处理各种显示格式和快速的报表制作能力。 深受PB开发者的喜爱。但一件产品不可能十全十美,DataWindow也有不少缺点,其中对datawindow的所关联的数据表的一些变动,可能就会使辛辛苦苦做出的数据录入、维护界面、报表得重新做,特别是复杂中国式的报表,是令许多开发人员头痛的事情,而在其它开发语言如Delphi就不会存在此类问题。
现在采用原型模型的开发的不少,使得开发中表的修改变得比较平常,为了解决已做的报表、数据界面主体不必重做,下面提出一些解决的方法,希望能对碰到此类问题的开发人员有所帮助,同时也希望能起到抛砖引玉的作用。
1、问题一:表的字段增减。
此问题比较容易解决。表的字段增加,打开DataWindow窗口,点击Data Source 图标,将新字段在DataWindow窗口的Selection List选中,然后新的字段就会在添加到原datawindow窗口中,问题也就解决了,不过值得提醒的是若在输入数据DataWindow中添加字段,记得在数据窗口的Update Properties属性中,将新字段在Updateable Columns列表中选中,否则新字段值不能提交;表的字段删除,打开DataWindow窗口,点击Data Source 图标,先执行表的弹出菜单Seselect All,再执行Select All 即可。
2、问题二:表中字段的数据长度的修改
打开DataWindow窗口,点击Data Source 图标,先执行表的弹出菜单Seselect All,再执行Select All 即可在数据窗口的Column Specification中看到修改长度的字段已为新的长度。不过别急,对于字符类型的字段,问题还未完全解决,选中已修改长度的字符类型字段,按鼠标右键,选择Properties,再选择Edit属性中Limit的值为新的长度值,问题才解决。
3、问题三:表中字段的数据类型的修改
打开DataWindow窗口,点击Data Source 图标,先执行表的弹出菜单Seselect All,再执行Select All 即可。
4、问题四:表的名称改变字段不变
4.1 点击Library库画板,选中要修改的数据窗口或报表。
4.2 按鼠标右键,选择弹出菜单项Export,或选择Entry菜单的Export项将数据窗口或报表到出后缀为.srd的文件,文件名默认为数据窗口或报表的名字。
4.3 在Powerbar工具条中选择Edit图标,打开刚存的文件。
4.4在File Editor中使用Replace替换按钮,将被修改文件中的含有老的表名字符串全部替换成新的表名, 然后保存。
4.5选择Entry菜单的Import项,将刚修改过的文件导入,覆盖原来的数据窗口或报表,问题解决。
对于问题4,若原数据窗口有检索参数(Retrieval Arguments)和Where子句,应先将它们删除,能后再进行操作,否则转换会失败, 使用数据窗口的Previwe会报“select error 无效列名”。转换成功后再手工增加检索参数和Where子句。
对于一些稍微复杂的表的变动,可通过上述的方法组合解决。如改变了表名又增加了字段并修改了原有字段长度的数据表,则解决步骤可为:先建与原表一样只是表名不同的过度表,然后采用方法4;在过度表增加了字段,然后采用方法1;修改过度表中的某些字段长度形成新表,最后采用方法2,问题解决。
本人在用PB开发MIS系统中使用以上方法,能比较快的复用开发原型中的报表和数据维护窗口,不过值得提醒大家的是,使用以上方法最好应先将原数据窗口进行备份,以防止误操作破坏了报表和数据维护窗口。

PB中表的修改对数据窗口和报表的影响的解决办法

数据窗口(DataWindow)是PB最强大的功能之一,Datawindow是PB中获取专利技术的控件,它对数据的处理方法相当简洁,能处理各种显示格式和快速的报表制作能力。 深受PB开发者的喜爱。但一...
  • tlammon
  • tlammon
  • 2016年05月07日 22:32
  • 782

PB数据窗口对象之字段的修改属性

数据窗口只能修改一个数据表。当数据窗口的数据来源于不止一个数据表时,可以用脚本控制数据窗口的修改属性来对数据表逐个进行修改。 当数据窗口是用来接受用户的手工录入数据时,应该设置两方面的属性才能确保数据...
  • u012369435
  • u012369435
  • 2014年07月04日 11:00
  • 1357

PB动态报表格式自由定义的实现

在通常的Server/Client方式MIS开发中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。要是能够让用户自己调整报表的格式和内容,然后将它保存下来...
  • tlammon
  • tlammon
  • 2015年01月18日 23:15
  • 1122

PB数据窗口对象之信息修改

〓修改数据窗口信息 为了在运行时修改数据窗口对象特征,应该使用Modify函数,而不是直接访问语法。该函数的语法如下: dwcontrol.Modify(modstring) 其中,dwcont...
  • u012369435
  • u012369435
  • 2014年07月04日 12:58
  • 1120

【PB】提取动态交叉报表动态标题名和动态列值

//提取动态交叉报表动态标题名和动态列值: String ls_Str, ls_Str1, ls_Name, ls_Name_Text, ls_Text Long ll_Cnt, ...
  • lijianhe043
  • lijianhe043
  • 2016年09月12日 17:52
  • 1326

PB判断数据窗口数据是否更改及原始值与当前值

PB判断数据窗口数据是否更改及原始值与当前值    dwcontrol.GetItemStatus ( row, column, Primary! )可以获取该缓冲区内指定单元的状态,当参数colu...
  • nuptsv_ice
  • nuptsv_ice
  • 2014年03月07日 09:19
  • 5970

PB数据窗口难得一见的技巧

PB基础知识 1、Datawindow object(数据窗口库对象)    数据源决定了数据窗口对象获取数据的方式。PowerBuild支持五种数据源: A、 快速选择(Quik Sele...
  • tlammon
  • tlammon
  • 2016年03月22日 10:36
  • 2901

PB-数据窗口缓冲区与数据修改状态

PB-数据窗口缓冲区与数据修改状态   1--缓冲区的介绍   在应用程序运行时,用户对数据窗口进行的操作情况是很复杂的,删除、插入、修改等操作有可能都会发生。记录哪些数据修改过、哪些数据需要...
  • tlammon
  • tlammon
  • 2016年03月01日 15:55
  • 3096

<转>在PB中控制数据窗口列的修改属性

在PB中控制数据窗口列的修改属性 在编制管理信息应用系统中,一般都会遇到一个共同问题,那就是如何根据不同情况去控制表中的数据列,比如对于同一DATAWINDOW不同的用户有不同的操作(如对于数据录入...
  • tlammon
  • tlammon
  • 2016年03月21日 15:41
  • 284

PB datawindows 动态创建数据窗口

PB datawindows 动态创建数据窗口 分类: 专业技能工作积累2011-08-04 16:521376人阅读评论(0)收藏举报 powerbuildervariablesobjec...
  • tlammon
  • tlammon
  • 2015年02月02日 15:33
  • 1387
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PB中表的修改对数据窗口和报表的影响的解决办法
举报原因:
原因补充:

(最多只允许输入30个字)