收录日期:2018/11/19 05:30:35 时间: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??

论程序员与公交车的异同,高分征求意见 怎么用c 写软件? Delphi 与Crystal Reports 水晶报表如何关联 使用WebClient连接ASPX页面,怎么处理连接超时问题? 请高手帮忙注释一下这两段程序,我不是很明白,尽量写的详细些,谢谢! window.open打开的窗口和常规浏览器窗口有区别? 这句为什么在Access 2000下正常,在sql server 2000下错误 有没有SWT&JFACE方面的好用的datagrid 怎么截取含有汉字的字段? 怎么根据条件来打印报表! 请问各位高手都用什么集成测试工具?(FOR .NET) 怎么根据条件来打印报表! 我想设置FTP服务器``但是我是在局域网里的``我开了FTP的话`别人能访到我吗? 还敢加班吗?!!!(公益信息,加班者必看) 窗口句柄 求一个sql语句如何书写? 求一个JAVASCRIPT 窗口固定大小和位置的设定 双网卡的问题 WebService 问题 有关成员函数? 新手求教:如何在vb.net中查询access中的数据? 请问~!各位! 智力挑战! 菜鸟问题?JAVABEAN 连接MYSQL 这是什么错误? sql 简单查询,急急!!! asp调用储存过程,怎么弄都不成功,郁闷,帮我看看,谢谢先 请教一个敏感词过滤的问题 一个新的技术群人才招幕中: 一个新的技术群人才招幕中: