收录日期:2019/01/21 20:24:15 时间:2016/05/18 13:49:25 标签:DataWindow
我的GRID数据窗口某一列显示为产品名称,因产品较多,不想使用下拉数据窗口,但又要实现输入产品代码值,自动显示产品名称。请问如何实现。
你这种限制很矛盾,好象就是要个自己设障碍!
在itemchaged事件中写
if dwo.name = '产品名称' then 
   select '产品名称'  into :ls_cpmc
   from 产品表
   where '产品代码' = :data ;
end if
post event set_cpmc(row,ls_cpmc)
数据窗口中新建事件 set_cpmc (row long , al_cpmc string) return (none)
dw_1.object.'产品名称'  [row] = al_cpmc
用下拉数据窗口,下拉行数限制为0或者1,选中allow edit选项
楼上说法可以实现,但是数据库里面保存的将是产品名称
在editchanged 事件中写
if this.getcolumnname()="产品名称的字段名" then
   select '产品名称的字段名'into :cpmc
   from 表名
   where '产品代码字段名' = :cpdm;
   if sqlca.sqlcode=0 then
      this.object.产品名称的字段名[this.getrow()]=cpmc
   end if
end if
你的问题如果不使用下拉数据窗口,那么是怪怪的!

建议下拉数据窗口,输入产品代码值,对dw进行过滤,自动过滤后的显示产品名称。
随着你输入代码长度的增加,过滤出行数会越来越少。
赞同 klbt(快乐白兔)
更正一下,我说的GRID数据窗口的那列实际值为产品代码,我要求的是输入产品代码自动显示为产品名称,存入数据库的也是产品代码。
之所以不使用下列式数据窗口,是因为产品数据较多,在网络中使用时,速度很慢。我见过浪潮为中石化定做的大型管理软件,大量使用这种方法。
其实还是可以使用弹出式窗口的,不管你是怎么想的数据总是要读的,但是可以使用对数据的过滤就可以加快速度!
有好的工具为什么不用?
使用弹出式窗口是一个好办法,不过我要的是输入产品代码而显示的是产品名称。不管代码是弹出式窗口返回的产品代码还是手动输入的代码。
换一句话说,就是下拉式数据窗口没有下拉箭头。
下拉式数据窗口没有下拉箭头可以直接设置啊,上面不是说过设置为0?还有显示的是产品名输入的是代码也可以选择啊,不是有display value和data value吗?前面是显示列值,后面是输入数据库的列值。
还有你说的“之所以不使用下列式数据窗口,是因为产品数据较多,在网络中使用时,速度很慢”这对输入准确性有很大的影响,在你itemchanged后还不是要从产品库里选择一遍,而且代码输入不正确的话不会返回任何值,不如用下列式数据窗口做,输入的同时也可以过滤掉无用信息。如果你们的产品不是经常更新,可以做一个只有代码和产品名的表定期更新,下拉列表源就用这个表,可以加快速度。
在itemchaged事件中写
if dwo.name = '产品名称' then 
   select '产品名称'  into :ls_cpmc
   from 产品表
   where '产品代码' = :data ;
end if
post event set_cpmc(row,ls_cpmc)
数据窗口中新建事件 set_cpmc (row long , al_cpmc string) return (none)
dw_1.object.'产品名称'  [row] = al_cpmc

我设置下列数据窗口 lines in dropdown 为0 ,好像不起作用。
Edit with code table 方式也可以满足你的要求
你是否用过PFC?这个问题就好解决了
edit with code table 可以解决我的要求,但需要写入相当长的代码。

PFC我没有用过。我觉得他太大了,对于我的系统没有这个必要。

在itemchaged事件中写
string ls_spmc,ls_dm
ls_spdm=dw_1.getitemstring(dw_1.getrow(),"spdm")
select spmc
into :ld_spmc
from jhb
where spdm=:ls_spdm;
dw_1.setitem(dw_1.getrow(),"spmc",ls_spmc)
我想问个相关的问题
比如我的表里有个字段是sts,A代表“在库”,B代表“出库”,C代表“维修”,
在数据窗口中如何让A,B,C直接显示成“在库”,“出库”,“维修”,而数据表中仍然是
A,B,C??

《计算机程序设计艺术(第2卷)》的下载地址 datagril问题 请教高手:DLL里封装无模式对话框? Dao的问题,高手请进,在线等待(高分) hymarx(hi马克思/偷偷给我一点爱千万别给我分)进来。来满足你的虚荣心。。。来!!!! 问下,那有python的Gui设计工具?要能可视设计的工具?我下载了好几个都不行啊 如何把网页上面frame的拉动条去掉呢? Notes与Delphi的結合如何實現 关于DataGrid的小问题? 怎么使操作结果反映到数据库中 有关定时器的问题 Frontpage中如何插入“iframe”? 请问在水晶报表中如何连续打印若干个.rpt? 讨论一下:大家目前jsp开发用的服务器软件是那些阿?tomcat、apache ???? 高手注意啦!小问题,大难题!!!!! 帮我看看c写的这个函数如何在vb中声明,急!!!!! csdn的jsp高手过来看看!!!!!!!!!!!!!!!!!!!!! 一个CListCtrl控件,怎样编辑每一项的文本,就像资源管理器中重命名文件一样。 想针对Memo控件中的文本进行查找替换,如何实现? 高分!如何通过程序控制报表的换页? 怎样在C#中取得本机MAC地址? 急,请问VARIANT的DATE类型怎么转换为string????!怎么给Dec类型赋值啊????! 100分请教如何使用ODBC连接到Sybase! 请教一个奇怪的问题,大大放分哈. 怎么让不要显示水平滚动条了? 客户端rmi不能调用问题?解决马上高分相送 ISA发布WEB的问题,发布后,访问感觉有点延时,比以前慢,具体内容里面! 急,求救!!! 请问printPreviewControl预览Document时候如何去掉那个话信息框 初学UML...出问题一个,各个兄弟帮忙