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

发表于:2007-05-25来源:作者:点击数: 标签:报表响的修改中表窗口
数据窗口(DataWindow)是PB最强大的功能之一,Datawindow是PB中获取专利技术的控件,它对数据的处理方法相当简洁,能处理各种显示格式和快速的报表制作能力。 深受PB开发者的喜爱。但一件产品不可能十全十美,DataWindow也有不少缺点,其中对datawindow的所
数据窗口(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系统中使用以上方法,能比较快的复用开发原型中的报表和数据维护窗口,不过值得提醒大家的是,使用以上方法最好应先将原数据窗口进行备份,以防止误操作破坏了报表和数据维护窗口。

原文转自:http://www.ltesting.net