小小问题难倒我,虚心向大家求教!!

21jhf 2003-10-09 03:56:37
我用下拉数据窗口作为用户信息输入窗口,因为用户输入的信息在数据库中以代码的形式保存的,但是显示和输入的却是中文文字信息。这种情况可能每个pb程序员都使用过,可是一个小小的问题却在这里把我绊倒了,我虚心像大家求教!谢谢!
问题是:当用户没有配置中文信息对应的代码时,输入的中文在数据库中保存上了中文信息,怎样提示用户或则清空然后让对方修改?例如,01代表中国,02代表英国,法国还没有代码,而用户输入了法国两个汉字,数据库中就存了一个法字(国籍字段为char(2))如何解决?。
其实这个问题看似个简单的问题,要是深究起来要比较麻烦的,你不信吗?如果一个数据窗上有十来个下拉数据窗要输入,怎样很稳定的处理好还不是那么简单的!我做过3年pb了真的觉得我做的还是不完美,不信你试试了!有源程序发给我让我也学学,小学生谢谢老师了!!
...全文
30 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gcg_cumt 2003-10-10
  • 打赏
  • 举报
回复
没有让你去到数据库中检索,只要使用getchild即可。速度吗,偶试过,飞快。

你说的输入后立即校验的问题也好解决,需要写一个NVO。我们曾经写过这样一个NVO:在窗口打开的时候,调用NVO.of_register(dw_name,"col1#col2#col3"),即可为dw_name中的三个列加入自动拼音码检索数据的功能。当然,在dw_name的editchanged和itemchanged中要分别加入一句话才可以,是不是和你要求的很相似吖。
tinyghost 2003-10-10
  • 打赏
  • 举报
回复
同意快乐白兔的说法,你在editchanged中过滤子窗口,
在itemchanged中判断一下子窗口的行数,如果是0则表示没有.
我认为如果在editchanged中直接判断可能会出现输入第一个字符的时候就判断,造成无法输入.个人观点;)
21jhf 2003-10-10
  • 打赏
  • 举报
回复
谢谢各位朋友相助!
klbt 2003-10-09
  • 打赏
  • 举报
回复
在EditChanged事件过滤数据,如果dddw行数为0,则提示,清空数据。
21jhf 2003-10-09
  • 打赏
  • 举报
回复
gcg_cumt(手扶拖拉机):
每一个输入项对应的是一个代码表的,那么多输入项检查一遍太麻烦了,我想利用列表中已经过滤出的数据进行校验,可是当用户输入无效信息时冲数据窗提来得是中文,有效时却是代码,怎么校验!其实我的程序还要求输入部分信息如姓名的王字,显示列表中姓王的所有人然后让用户选择,没有姓王的就不自动展开列表.
21jhf 2003-10-09
  • 打赏
  • 举报
回复
我们现在还不用拼音码,就是输入汉字,我也知道校验,不过我想在输入后就校验,因为那么多输入项目要校验,把各种代码表全部检索一遍太费时间了!能不能在输入后立即校验?用一个最好的方法.你要是有这方面的源程序就好了,我的油箱是21jhf@21cn,com谢谢了
gcg_cumt 2003-10-09
  • 打赏
  • 举报
回复
学了三年了,不像不像……

你可以这样,写一个函数,参数是window,遍历指定window中的每个数据窗口(包括TAB控件上的),检查这些数据窗口中的每个字段,如果EditStyle为DDDW,就检查用户输入的内容,看看是否在代码中存在,如果不存在给予合理提示,这样的通用性是比较高的了。
wantsong 2003-10-09
  • 打赏
  • 举报
回复
在保存之前,对输入的数据作一下校验就可以了。
我这里下拉数据窗口输入都用拼音码的方式输入,比如法国的拼音码"FG",用户直接输入FG就可以。若输入的字符没有,比如输入"HG"(韩国),那么数据带不出来,他就得去基础表里增加这个国家的数据。另外,我的表主健都是number型,输字符也无法保存,会报错。拼音码的方法搜搜前面的帖子。

609

社区成员

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

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