以下主要涉及到dbgrid使用问题;
   1  在DBgrid中建立的LOOKUP 字段为什么不能编辑?(实现从一个表中提取字段内容)
   2  为什么不能在dbgrid中同时建立多个有效的LOOKUP 字段?尝试了各种办法(比如:Picklist,lookup ,Dbcombobox,Dblookupbox,DbComboboxEh)就是实现不了我所要的功能!具体需求如下所示:
      一个dbgrid录入界面如下;
      lookup字段  lookup字段   lookup字段    
      物料类别    物料名称       规格         编码   价格   收入   备注   有两个表:物料表和入仓表,两表由字段"编码"相互关联;以上对应的三个lookup字段是要从物料表中提取值的,根据这三个lookup字段才能确定入仓物料的编码,真正入仓的只是编码,价格,收入,备注; 现在我的思路是这样的:
      当我输入物料名称:就自动赋相对应的值给物料类别,在选择规格后就根据输入值提取物料编码给编码字段!

解决方案 »

  1.   

    用lookup字段来确定编码?好象不行吧!lookup字段本身是由表中存在的某个字段(类型为fkData)的值,通过在相关表中查询对应的另外的字段值得到,也就是说这个结果是查出来的,怎么可能被你赋值?而且你的lookup字段在入库表中没有原始的fkData字段。我都不知道你的lookup字段是怎么建出来的。
    如果真要实现你所说的功能,可以建立三个计算字段,麻烦一点,写多点代码吧
      

  2.   

    我的lookup字段是在dataset的fieldedit 中新建new fields 來的﹐(也就是建的永久字段)難道這樣是錯的嗎﹖
       盼回復﹗
      

  3.   

    我說了你也許 會不相信﹐我通過lookup字段可以直接提取編碼的﹐我就是上面的方法﹗
      

  4.   

    你建立的时候,选了NEW FIELDS之后,下面的Definition框里面你怎么填的。就是Key Field你选的是什么?我从你的入仓表的结构上看不到哪个字段可以作为你的lookup字段的Key Field。
      

  5.   

    如果你的需求有这么复杂, 我建议用StringGrid代替DBGrid.  虽然要手工写不少代码, 但确实能随心所欲.  说起来好像不能自动数据感知很复制一样, 但做起来并不难.
      

  6.   

    问:你在选择了NEW FIELD之后,填写lookup字段信息的时候,下面的Lookup Definition的时候,Key Fields一项,你填的是什么?我从你的入仓表中找不到字段可以作为你的三个Lookup字段的Key Fields的.
      

  7.   

    不好意思 ﹐下午忙住了﹐沒有過來看...
         具體是這樣的﹐比如﹕
         物料表中數據﹕(goods)
            編碼      物料類別       物料名稱        規格  
             1         螺絲          機米螺絲      50MM*80MM
             2         螺絲          機米螺絲      100MM*200MM
             3         工衣          深藍色冬衣     50#
         入倉表中數據﹕(instock)
            編碼      單價       數量      備注     
              1        1.2       45        相關說明  \\規格為50MM*80MMa的機米螺絲     我在創建永久字段時候﹐在Key Fields一項選擇的是入倉表instock 中的字段﹐dateset 選擇的是與物料表 goods相關的Qry;Lookup field選擇的是與Key Fields相對應的﹐這中連接是沒有錯的﹐只是我建立多個lookup字段是通過建立三個新字段來完成的﹔
          不知道這樣是否可行﹗   從數據表可以看出﹐編碼需要物料類別﹐名稱和規格三個條件來確定﹐確實有點麻煩﹗
      

  8.   

    :),原来你的instock表的编码字段就是物料的编码,我还以为是由物料名称和规格产生的另外的编码呢。那这样没错。
    建立三个lookup字段,然后都参照qryGoods里面的对应字段我估计你想用户不是通过输入编码来录入物料,而是选择名称和规格来确定编码,对吧。(这有点有违常理,一般唯一确定一个物料的,都是取编号,也就是说录入的时候就让用户录入物料的编号,然后名称,类别,规格自动会出来。并且,若以名称来参考,往往容易出错,因为,我以前所在的单位就是:仓库跟车间对同一个物料的叫法不同!但是编码肯定是一样的。)不知道你用过InfoPower没有,我觉得它里面的TwwDBGrid不错。你可以放一个TwwDBLookupComboBox上去,设定它的Selected属性,把你要的编号、名称、规格等,都可以加进去,然后再设置TwwDBGrid的Selected属性,选择编码字段后,右边选择Edit Control
    设置Control Type为CustomerEdit,然后再选择下面出现的一个下拉框为你的TwwDBLookupComboBox,这样,运行期间,TwwDBLookupComboBox就会嵌在TwwDBGrid里面,就象你设置DBGrid中字段的PickList属性一样。