| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1184 人关注过本帖
标题:[求助]急, PB倒入数据与修改数据
只看楼主 加入收藏
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
收藏
 问题点数:0 回复次数:9 
[求助]急, PB倒入数据与修改数据
谢谢有人回答我之前提出的关于button的问题。 现在又有三个新的问题想请教, 对于PB老手应该是很容易回答的。

1:如果我有一个表格1, 希望从数据库里面把数据导入表格中的相应栏位, 应该如何实现?
2: 如果在这个表格里面已经有数据了,而我想在对某个栏位进行修改,应该怎么做?
3:我怎样可以把这个表格里面的某些栏位的数据导入表格2, 去更新表格2里面的相应数据
(希望可以说得详细点,我实在是菜鸟得很)

表格的栏位例子如下, 我会在明天上传这个表格的图片

ChangeType RecordDate Hospital Name Hospital address Finish


我的同事说可以通过, retrieveend 和 rowfocuschanged 这两个events来实现数据的读取和导入等。 如果大家也觉得他说得没错,希望可以提供些例子或者告诉我些idea, 万分感激了,实在是头痛。


[此贴子已经被作者于2006-12-2 20:41:56编辑过]

搜索更多相关主题的帖子: 数据 
2006-12-02 20:40
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
收藏
得分:0 
怎么我上传的图都显示不了的???

[此贴子已经被作者于2006-12-3 17:19:43编辑过]


2006-12-03 17:07
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
收藏
得分:0 
修改栏位
已经好几天了也没人回答, 难道是我说得不够清楚? 还是太简单了没人觉得有回答的必要。 不过我还是再发些问题上来,我相信总会有人帮助我的。
按照上面的表格1, 当这个表格里面有一条数据列时, 表格中的其中一个叫ChangeNum的数值会设成1, 当有两条数据列时,ChangeNum就变成2, 依次类推, 请问怎么实现。 问那么多相似的问题似乎关键是我不知道怎么去控制,检查表格中的每个栏位。 如果大家有任何是在表格中导入数据, 手工输入数据, 更新以有数据和删除以有数据的例子, 请放上来参考一下。 今天被主管催了还是没弄出个所以然来。 我在这里叩谢了!!!!!!
2006-12-05 00:33
werley
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-12-1
收藏
得分:0 

想帮你,但又不太清楚你的意思,
有具体的问题才能有具体回答,感觉你问的太泛了吧.
到时候怕自己也说不清楚了!
你可以把客户需求具体描述下,
按你的思路走可能达不到想要的效果!

2006-12-05 18:39
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
收藏
得分:0 
用户需求
不好意思,我之前就是怕需求太详细大家会看得比较麻烦, 现在在这里说明一下。 现在我公司的后台是用AS400, 有两个分别叫LCCC和LCHI的文件,分别就代表了两个表格。 LCCC是一个已存在的文件,里面已经包含了很多行数据,主要是用来显示的, 而LCHI是用来做变更的。 我主要是要在LCHI的表格上进行编程, 这个表格的格式和主要的栏位大概就是这样:

changeNum(变更序号) ChangeType(变更类型) Company(公司号) CompanyType Address NewAddress CancelDate(取消日期) Validate(有效性) Finish(完成性)


一个按扭[Done]

流程是, 一开始时changeNum会缺省为‘1’。 在这个LCHI表格上面的ChangeType在这个变更类型是一个dropdownList, 有新增,更改和取消三个选项。 当我选择新增时, Company, CompanyType的数值会自动从后台录入, 我需要手工输入Address的数值,输入完毕后, 我按Done那个按扭, Validate和Finish的数值都变为 'Y'. 代表这一个行已经新增成功, 然后新增的这个行就会整行作为一行新行插入到那个叫LCCC的表格里面, 排在以有行的后面。 (那个LCCC表格中本来已经有很多行的了) 已经完成的这个变更是需要保留下来的, 再想做其他东西就必须另增加一行, 公司原有程序已经有新增一行的这个功能, 不需要我去想。

现在我新增加一行, 并且想对LCCC表格里面的已存在数列进行更改。 由于已经是第二行了, 所以changeNum会变为 ‘2’。 选择ChangeType里面的更改, 手工输入想更正的address, 后台从LCCC自动录入这个address的Comany, CompanyType到LCHI的第二行中, 我需要手工再输入NewAddress的数值, 输入完毕后, 同样按Done那个按扭。 validate和Finish数值为’Y', 代表这个数列已经改好。 NewAddress的数值会导入回有相同address的LCCC行中。 并已LCHI的NewAddress的数值去代替LCCC里面的address数值( 例如我在LCHI里的NewAdress里面写的是‘广州’,完成后就会替换LCCC里面的Address原有的数值’上海‘)

现在我想对LCCC表格中已存在数据进行取消。 由于是第三行了, 所以changnum是‘3’。 选择ChangeType 里面的取消, 手工输入想取消的address, 后台从LCCC自动录入这个address的Comany, CompanyType到LCHI的第二行中, 手工输入’取消日期‘的数值。 输入完毕后, 同样按Done那个按扭。 validate现在为'N'(因为是取消) 和Finish数值为’Y', 代表这个数列已经取消。‘取消日期’的数值会导入回有相同address的LCCC行中。 并已LCHI的CancelDate的日期代替LCCC里面的RecrdDate(记录日期)数值( 例如我在LCHI里的cancelDate里面写的是‘2006.11.28’,完成后就会替换LCCC里面的RecrdDate原有的数值 ’2002.2.9‘)

而每次当LCHI里满的'Finish'(完成性)这个栏位是'Y'的时候, 'Done'那个按扭会变成灰色,而且不可以按。 而且也不可以对这个行再做任何修改, 也就是说按扭按了之后, 这行数值就不可以再改了

基本流程就是这样了, 费了我好大力气才打上来的, 如果还有什么不清楚的, 我再加以解释, 谢谢了

[此贴子已经被作者于2006-12-6 0:46:17编辑过]

2006-12-06 00:42
werley
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-12-1
收藏
得分:0 

1.你所说的LCCC,LCHI的两个文件是不是数据库里的两张表,
 对应到PB里就应该是两个数据窗口了吧,暂且分别称之为DW_LCCC,DW_LCHI;
2.用户只能对DW_LCHI进行操作,当点按扭[DONE]时影响到DW_LCCC记录的增改;
3.而DW_LCHI的操作同时保存到表LCHI中,以后做为日志一样去了解表LCCC的变化情况了。
----------------------------------------

你主的编程在DONE的Clicked事件写代码可以解决。
思路如下
1.检查DW_LCHI的输入是否有错!给与提示;
1.再判断DW_LCHI是增,删,改的类型,可写出程序主要控制流程;
2.对窗口DW_LCCC进行进行增,删,改操作
3.提交DW_LCCC的记录
4.若提交成功,再对窗口DW_LCHI的控制标识进行修改
5.提交DW_LCHI的记录

-------------
如果没有误解你的意思,至于程序怎么写可以实现,可以再讨论!!

2006-12-07 12:43
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
收藏
得分:0 
感激你的回帖,LCCC和LCHI是AS400里面类似数据源的两个文件, 是用来建dataWindow时data source. 可以在Clicked事件里面解决吗? LCHI里面的Done那个按扭是我最后确定并且是想update LCCC时才按的, 之前读数据,改数据, 和删除都是在按之前发生的。 按照我想Click那一下就是做检查数据输入是否有错,判断更改类型, update LCCC等。 不知道说得对不对,那可以给些意见怎么实现 这个程序吗? 我现在自己尝试着做新增那一步, 做出来的LCHI不可以手工输入也导入不了数据。 是是用trim(getItem())这个命令, 不知道是不是用错了

谢谢
2006-12-07 21:20
werley
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-12-1
收藏
得分:0 

你先把你做的窗口的截图贴上来!
两个数据窗口之间传数据的话
定义变量
String ls_Address
ls_address = dw_LCHI.getitem(1,'address')//取dw_LCHI第一行地址栏记录
dw_LCCC.This.SetItem(1,'address', ls_address )//将地址写入DW_LCCC的第一行地址栏
类似如此,将要导入的行一列列的赋过去.
这些都是PB里的基本操作,多看看帮助.
"做出来的LCHI不可以手工输入也导入不了数据"
你做出来LCHI是数据窗口吗?

2006-12-07 23:42
yihuizeng
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-11-26
收藏
得分:0 
说错了, 我的意思是我做的关于LCHI的 window 上面取不了数据,我会明天把截图拿上来,不过我之前尝试放图上面没有显示, 还不如你把你的email给我,我直接发给你好了
2006-12-08 00:23
werley
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-12-1
收藏
得分:0 

我的QQ

172587717

2006-12-08 12:33
快速回复:[求助]急, PB倒入数据与修改数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017358 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved