有关pb9和数据窗口的问题多多,都来看啊…………

singing2003 2003-08-01 11:44:27
请问各位高手如何解决以下问题?????
1、在一个由多个表组成的数据窗口中,如果不用先保存再retrieve的办法,如何实现录入一个值,当前行其它相关的列自动从相关表中读出?
2、如何得到整个数据窗口(而非某一行)的状态('新增,修改过,未修改'之类)
2.5:)、各位谁有工资计算公式编写的例子或思路?数据窗口中如何实现啊?
3、pb是不是总是在编译的时候第一次有错(syntax error),然后再点一次编译可能又没错了呢?而且老是这样,是什么原因呢,你们有没有碰到呢?我是先装了8.0的试用版,后装的9.0,后删除了8.0,又重装过9.0,难道是因为安装的过程有问题????
4、感觉在pb9里面做东西,文件增长挺快,删东西好像减的都很少!
大家给我个答案好吗?好苦恼啊…………:(
...全文
194 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
singing2003 2003-08-05
  • 打赏
  • 举报
回复
呵呵,结了吧,努力学习吧:)
rogery 2003-08-05
  • 打赏
  • 举报
回复
关于第一个问题:我现在采用了得到那个关键值,然后到数据库中查找再进行赋值的方式进行 操作 ,我想一定有其它、更有效的办法。您所说的retrieve正是我不想的。因为这样之后,会将新增的数据给冲掉。后面的在弹出的窗口中新增数据操作也同样面临这个问题啊。或许这本身并不成为一个问题,但是有些应用的时候,有些人就是想看的多一点,然后录的少一点,做程序,是这样的吗?:)

答:其实你的这个问题正如你所说的:或许这本身并不成为一个问题。做程序一般最基本的要求是所见即所得设计思路与风格。在不同的模块中实现最大信息的显示,了解客户的需求即可。每个人的思维不同这很正常。

我现在忽然想到可能是我对于表的关联并不太清楚,所以造成了误解。比如有一张人员表,存基本信息,其它的信息分类存在其它表中,以人员号进行关键,当对其它方面的信息进行录入操作时,如何建立数据窗口呢?以哪一个表中的人员号为主键,我感觉您的意思是以基本表的人员号为主键。可是这个时候相关的表中并没有这个键啊。请您把这类思路与操作讲一下好吗?再谢谢了

答:数据库在最初设计的时候一定要考虑表的关联性,怎么样设计才能使其最为合乎逻辑、最科学。比如一个人员表,这个表里肯定是关于人员的一些基本信息,在这个表中,您可以用ID号来做为主键或是ID号与人员名称联合做为主键。如果还有另外一张表记录了些人员的一些成绩或是一些功劳。那么可以在另外一张表中也设计ID号和人员名称这两个字段,其它字段可根据需要来设定。这样,将来在更改信息时可以根据ID号和人员名称来进行修改。如果要做数据窗口显示其内容,那么可以用关联或视图的方法来实现。这两个表中的ID号都可以做为主键,但只选一个就行。如果要想同时向两个表中写数据。可以用外部数据源做一个数据窗口,从而实现此功能。

呵呵,我也不懂,个人意见,只做参考。

可恶的PB错误又出了。认了斗争到底……
答:格了它,重新再来。这是最笨也是最有效的方法。
hxb2003 2003-08-04
  • 打赏
  • 举报
回复
同意楼上
rogery 2003-08-04
  • 打赏
  • 举报
回复
1、这个是说这个数据窗口的字段来源于多个表。我想在录入数据的时候只想录入一个关健字,这样与之相关的字段(来源于相关表)都能够根据它自动的调出来,而不用再去手动的去录,因为它们只是用来说明那个字关健字。,也不会再去保存它们。我不想采取选将此数据窗口保存,再retrieve的方法。这样能明白吗?
答:这个按说楼主没有问题呀。录入关键字后,retrieve出来就是了。如果要更改内容,按下一个问题的
做法就生了。
2、这个呢,也许您讲的是对的,不过我感觉好像是另外的应用。PB里面可以判断某一行的状态(dw_1.getitemstatus(ll_cr,0,primary!)),但是当改动只有一行时,我又不知道改动是哪一行,这个时候我想直接去判断整个数据窗口的状态。也就是有没有新建行,有没有删除,有没有修改之类的状态说明,然后决定是不是直接再次retrieve()。我使用了getchanges(),但是当我进行保存后,再次retrieve()时是有错误的,好像是使用了它,在保存之后某些状态没有得到修正。对于得到状态这个问题还有没有其它的办法呢?

答:我给您一个建议:当一个数据窗口有多行时,如果操作人员要进行删除、编辑等操作,可以让其双击
所要操作的信息,然后系统弹出一个关于删除,编辑、新增的窗口,让其在弹出的窗口上操作就行了。关闭时返回此信息的一个主键字段或直接重新retrieve()。这样,这个数据窗口中永远就是最新的数据了。

2、5讲的是如何将动态的表达式附给一个计算域,然后取出它的值 的问题。
答:这个可以通过数据窗口的convert to syntax语句,动态建立数据窗口的时候,动态的将不同的表达式附给一个计算域。然后计算域的值可能通过以下语句取出来:
//sle_1.text = dw_1.Describe("evaluate('sale_total',1)")

3、我今天又重新了PB9,到现在为止还没有再次出现那种错误。不知道以后会不会。那个错误很怪,出的最多的是syntax error,而实际上根本没有任何错误,再进行编译就没错了。
答:那这个问题几乎可以说是搞定了, 如果再出错,建议把DLL也卸载掉,进行全新安装。


4、这个解答还算满意。不过我想搞明白,删掉东西之后是不是真的将它给删 了,我总有一咱删掉之后只是不显示的感觉………
答:删掉东西之后是不是真的将它给删 了??这就看你有没有进行commit了。


handi 2003-08-04
  • 打赏
  • 举报
回复
1、在一个由多个表组成的数据窗口中,如果不用先保存再retrieve的办法,如何实现录入一个值,当前行其它相关的列自动从相关表中读出?
rows -> update properties -> identity column 中选中。

2、如何得到整个数据窗口(而非某一行)的状态('新增,修改过,未修改'之类)
modifiedcount() + deletedcount()

2.5:)、各位谁有工资计算公式编写的例子或思路?数据窗口中如何实现啊?
excel

3、pb是不是总是在编译的时候第一次有错(syntax error),然后再点一次编译可能又没错了呢?而且老是这样,是什么原因呢,你们有没有碰到呢?我是先装了8.0的试用版,后装的9.0,后删除了8.0,又重装过9.0,难道是因为安装的过程有问题????
不是, 完全编译一次。

4、感觉在pb9里面做东西,文件增长挺快,删东西好像减的都很少!
大家给我个答案好吗?好苦恼啊…………:(
没有注意
rogery 2003-08-02
  • 打赏
  • 举报
回复
请问各位高手如何解决以下问题?????
1、在一个由多个表组成的数据窗口中,如果不用先保存再retrieve的办法,如何实现录入一个值,当前行其它相关的列自动从相关表中读出?
答:建议楼主这个问题再说的明白些……

2、如何得到整个数据窗口(而非某一行)的状态('新增,修改过,未修改'之类)
答:首先要判断其状态,肯定是此条数据与其它数据有不同的地方或有特别的标志位。
新增的话就判断其产生的日期是不是当天,这个要求表里有这个字段;如果是修改就
先把此条数据取出来,然后从表里也取出这条数据,如果不同说明修改过,如果相同
说明没有修改过。
2.5:)、各位谁有工资计算公式编写的例子或思路?数据窗口中如何实现啊?
答:这个I不太明白。帮不了您。

3、pb是不是总是在编译的时候第一次有错(syntax error),然后再点一次编译可能又没错了呢?而且老是这样,是什么原因呢,你们有没有碰到呢?我是先装了8.0的试用版,后装的9.0,后删除了8.0,又重装过9.0,难道是因为安装的过程有问题????
答:这种问题一般是不会有的,当第一次错的时候,PBL的顺序是不减少了,您注意过没
有。先装了8.0的试用版,后装的9.0,后删除了8.0,又重装过9.0,应该不会是这种原因
。最有效的办法是根据其语法错误提示个个击破。

4、感觉在pb9里面做东西,文件增长挺快,删东西好像减的都很少!
答:是这个样的,在8.0下当一个PBL到了比如说2M,然后再删除其窗口、数据窗口等
这个2M几乎是不减少的,还是那么大。

611

社区成员

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

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