如何在TwwDBGrid使显示和存储分离由 woodmud ? 星期日, 2001年1月14日 22:06 我的意思是这样的,有一张代码对照表t_code,比如说: No Name 1 西红柿 2 黄瓜 3 白菜 4 青菜 5 土豆 6 萝卜 现有几个商店甲、乙、丙出售蔬菜,信息存入另一张表t_shop中,内容为: Shop No 甲 3 甲 6 乙 1 则表示甲商店有白菜、萝卜出售,乙商店有西红柿出售,而丙商店则无蔬菜出售,也就是 说信息在其它表中以代码存储,但在显示、修改的时候应该是代码相对应名称,也就是说 数据库中存储的代码对操作用户是不可见的,我想这应该使用DBLookupComboBox来实现, 但不知具体应该修改哪些属性,请高手指点。(注:我以前在PowerBuilder下编程时,实 现这样的功能只需修改几个属性即可实现数据库中实际存储数据和显示数据的对应,不知 在Delphi中是否有类似的功能) 如何在TwwDBGrid使显示和存储分离由 honghs ? 星期一, 2001年1月15日 10:30 为什么要用twwdbgrid呢,infopower中的wwdblookupcombox有个缺点是不像dblookupcombox中那样可 以有listfield和keyfiels属性可以用来显示编码内容而保存编码。 dbgrid的解决办法 假设你已放了2个table控件到form上,再放2个datasource指向t_code,t_shop table1.tablename:='t_shop' table2.tablename:='t_code' datasource1.datasource:=tbale1; datasource2.datasource:=table2; 在table1上双击进入字段编辑,右击菜单选新建字段 属性就自己填了,字段类型要选为lookup 然后key fiels为no,数据集设成table2 Key Fields设成no Lookup Keys 设成name 在dbgrid上双击进入column编辑,把刚才新建的lookup字段加入 wwdbgrid的解决办法 也是要增加一个lookp字段,然后再放一个wwdblookpcombox到form上,先设wwdblookupcombox的 wwdblookupcombo1.datasource:=table1; wwdblookupcombo1.datafield:=新建立的lookup字段; lookuptable:=table2; lookupfield:=no; 在wwdbgrid上双击,把lookup字段加入到到字段列表中,选中新建立的lookup字段,选中右边显示的 edit control 页面,control type设为customedit ,controlname设为wwdblookupcombo1,就可以了。 如何在TwwDBGrid使显示和存储分离由 yangkee ? 星期日, 2001年2月4日 11:02 你运行过ip2000的demo吗?上面就有你说的那种效果, 具体做法是设置wwdbgrid中的某一列,设置它的editcontrol为某一个wwdblookupcombox 要显示编码和名称在wwdblookupcombox进行设置就是了,可参见demo的源代码。 如何在TwwDBGrid使显示和存储分离由 woodmud ? 星期日, 2001年2月4日 15:01 多谢honghs、yangkee两位仁兄的慷慨相助,不胜感激,问题已基本得到解决,但是还 有一种情况,假如现在没有代码对照表,而是存在一种固定的对应关系,比如说: Code Weekday 0 星期日 1 星期一 2 星期二 3 星期三 4 星期四 5 星期五 6 星期六 现在在前台,即TwwDBGrid某列下拉式列表中显示的是汉字,而在后台数据库中存储的却是 代码,这又如何实现,希望各位大虾不吝赐教。 如何在TwwDBGrid使显示和存储分离由 honghs ? 星期一, 2001年2月5日 08:55 woodmud,分数拿来吧,放个wwdbcombobox,把maplist属性设成true TwwDBComboBox.MapList:=true的话,就可以这样子做了,这样你可以输入2列的值 If your application involves the storage of payment type information, you can save disk storage space by assigning a series of integer values, or other single character codes, to each of the allowable payment types you accept. You would first set the MapList property to true. Then, via the Edit Combo List dialog box (Items property editor), you would enter the Displayed Value and Stored Value assignments to look something like the following: Displayed Value Stored Value MasterCard 1 Visa 2 American Express 3 Check 4 Purchase Order 5 |
|