PB中两个数据窗口中的数据相关联,一一对应。想在同一个窗口中放两个数据窗口,两个数据窗口分别显示不同但相关联的内容。如一个数据窗口显示资金预算系统中的“项目”表信息,另一个数据窗口显示财务系统中“科目”表信息,项目和科目是一一对应的。就是一个项目对应一个科目。通过编程实现两个数据窗口中“项目”和“科目”的这种对应关系,并存入另一张表中(同时含有项目和科目字段),该怎样编程实现呢?

题目
PB中两个数据窗口中的数据相关联,一一对应。

想在同一个窗口中放两个数据窗口,两个数据窗口分别显示不同但相关联的内容。如一个数据窗口显示资金预算系统中的“项目”表信息,另一个数据窗口显示财务系统中“科目”表信息,项目和科目是一一对应的。就是一个项目对应一个科目。通过编程实现两个数据窗口中“项目”和“科目”的这种对应关系,并存入另一张表中(同时含有项目和科目字段),该怎样编程实现呢?


相似考题
参考答案和解析
你的窗口上的两个数据窗口,虽然说项目和科目有对应,但是从两个数据窗口上看,应该是各自显示各自的数据吧?更像是一个基础数据的显示,对吧?
然后,你要左右各选择一行,通过一个按钮【对应】,来实现二者的对应并存储到后台表中,是这个意思么?
那就在对应这个按钮的点击事件中写代码就差不多了。
比如科目的数据窗口是dw_1,项目的数据窗口是dw_2
对应的点击事件:
if dw_1.GetRow() <= 0 then return //dw_1没有选择行
if dw_2.GetRow() <= 0 then return //dw_2没有选择行
string ls_acct, ls_project //定义变量
ls_acct = dw_1.object.acct_no[dw_1.GetRow()] //获取当前点击的科目值
ls_project = dw_2.object.project_no[dw_2.GetRow()]//获取当前点击的项目值
insert into 对应关系表(科目编号, 项目编号) values (:ls_acct, :ls_project); //插入表
if sqlca.sqlcode = 0 then //插入成功
  commit; //提交确认
else
   rollback; //插入失败,回滚事务
end if
这样你的对照关系就插入成功了,如果你的窗口上还有一个现实对应关系的数据窗口,在这之后直接做retrieve,就能刷新对应的关系在数据窗口显示了。


希望能帮到你,别忘了采纳我的答案哦,祝你生活愉快!