表T1字段   ID  BH     TID  Tname
       1   001    T01   AA
       3   001    T02   BB表T2
字段      TID  Tname  
          T01   AA
          T02   BB
          T03   CCdbgrid 连接   表T1   Tid格 下拉   picklist 动态 赋值 T2 内容在窗体  点击 增加按钮 在dbgrid 追加记录一记录, 默认 max(ID)+1  ,BH 最后一条记录  ,Tid 可以下拉,同时在下拉中也显示对应Tname 内容。
当选择,TID 后,给dbgrid Tname赋值对应Tname。 谁能帮我这个忙,最好帮写个程序,不胜感激!!!可以帮发到[email protected] 邮箱。请吃饭!!!

解决方案 »

  1.   

    请使用Cxgrid和cxdblookupcombobox配合,可以达到这个效果
      

  2.   

    你用第三方控件就可以了 2楼上的cxgird 或是别的 grideh 都可以的
    要是想要自己的gird那样 就只有自己重写gird控件了
      

  3.   

    一、DBGrid中的下拉清單
      在DBGrid網格中實現下拉清單,設置好DBGrid中該欄位的PickList字串清單、初始的序號值DropDownRows即可。以職工資訊庫中的籍貫欄位(字串類型)為例,具體設計步驟如下: 
      1、在表單上放置Table1、DataSource1、DBGrid1、DBNavigator1等控制項物件,按下表設置各個物件的屬性:
    對象 屬性 設定值
    Table1 DataBase sy1
    TableName zgk.dbf //職工資訊庫
    DataSource1 DataSet Table1
    DbGrid1 DataSource DataSource1
    DBNavigator1 DataSource  Datasource1  2、按兩下Table1,在彈出的Form1.Table1窗口中,用右鍵彈出快顯功能表,按一下AddFields功能表項目;選擇所有的欄位後,按OK按鈕。
      3、修改第2步新增欄位的DisplayLabel屬性。以Table1ZGBH欄位為例,在ObjectInspector視窗中選擇Table1ZGBH,修改屬性DisplayLabel=職工編號,其餘欄位類似。
      4、按兩下DBGrid1,在彈出的Editing DBGrid1.Columns視窗中,按一下AddallF ds按鈕,增加Table1的所有欄位。
      5、在EditingDBGrid1.Columns視窗,選擇jg這一行,切換到ObjectInspector視窗,修改它的PickList.Strings為“湖北枝江市、北京市、河南平頂山市、浙江德清市”
      6、在Form1.Oncreate事件中寫 入語句:
    Table1.Open;
      7、F9運行,用滑鼠點擊某個記錄的籍貫欄位,右邊即出現一個按鈕,點擊這個按鈕,可出現一個下拉清單,包含第5步中輸入的四行字串,可用滑鼠進行選擇。當然也可以自行輸入一個並不屬下拉清單中的字串。
    二、DBGrid中的查找欄位
      所謂查找欄位(LookUpField),即DBGrid 中的某個關鍵字段的數值來源於另外一個資料庫的相應欄位。運用查找欄位技術,不僅可以有效的避免輸入錯誤,而且DBGrid的顯示方式更為靈活,可以不顯示關鍵字段,而顯示源資料庫中相對應的另外一個欄位的資料。 
      例如,我們在DBGrid中顯示和編輯職工資訊,包括職工編號、職工姓名、籍貫、所在單位編號,而單位編號來源於另一個資料庫表格——單位庫,稱“單位編號”為關鍵字段。如果我們直接顯示和編輯單位編號的話,將會面對1、2、3等非常不直觀的數字,編輯時極易出錯。但是如果顯示和編輯的是單位庫中對應的單位名稱話,將非常直觀。這就是DBGrid的所支持的查找欄位帶來的好處。
      實現DBGrid的查找欄位同樣不需要任何語句,具體設計步驟如下:
      1、在表單上放置Table1、Table2、DataSource1、DBGrid1、DBNavigator1等控制項物件,按下表設置各個物件的屬性:
    對象 屬性 設定值
    Table1 DataBase sy1
    TableName zgk.dbf //職工資訊庫
    Table2 DataBase sy1
    TablenAME dwk.dbf //單位資訊庫
    DataSource1 DataSet Table1
    DbGrid1 DataSource DataSource1
    DBNavigator1 DataSource Datasource1
      2、按兩下Table1,在彈出的Form1.Table1窗口中,用右鍵彈出快顯功能表,按一下AddFields功能表項目;選擇所有的欄位後,按OK按鈕。
      3、修改第2步新增欄位的DisplayLabel屬性。以Table1ZGBH欄位為例,在ObjectInspector視窗中選擇Table1ZGBH,修改屬性DisplayLabel=職工編號,其餘欄位類似。
      4、設置Table1DWBH.Visible=False。 
      5、在Form1.Table1視窗,用右鍵彈出快顯功能表,按一下NewField功能表項目,新增一個查找欄位DWMC,在彈出的視窗設置相應的屬性,按OK按鈕確認;在ObjectInspector視窗,設置Table1DWMC.DisplayLabel= 單位名稱。
      6、在Form1.Oncreate事件中寫 入語句:
      Table1.Open;
      7、按F9運行,當游標移至某個記錄的單位名稱欄位時,用滑鼠點擊該欄位,即出現一個下拉清單,點擊右邊的下箭頭,可在下拉清單中進行選擇。在這裡可以看出,下拉清單的內容來自於單位資訊庫,並且不能輸入其他內容。
    三、DBGrid中的下拉清單和查找欄位的區別
      雖然DBGrid中的下拉清單和查找欄位,都是以下拉清單的形式出現的,但兩者有很大的差別。
      1、用PickList屬性設置的下拉清單,它的資料是手工輸入的,雖然也可以在程式中修改,但動態特性顯然不如直接由另外資料庫表格提取資料的查找欄位。
      2、用PickList屬性設置的下拉清單,允許輸入不屬於下拉清單中的資料,但查找欄位中只能輸入源資料庫中關鍵字段中的資料,這樣更能保證資料的完整性。
      3、用PickList屬性設置的下拉清單設計較為簡單。
      

  4.   

    cxgird 控件怎么做,能帮个忙吗?时间紧迫,谢谢。
      

  5.   

    那你直接用简单的grideh好了 那样很方便 网上很多下载的
    cxgird也是控件 应该是dev的 
    都是第三方, 重写很麻烦的 很多要自己注意的
      

  6.   

    grideh 沒有用過,我下了,但還是沒有看明白,那位能給我做個。急啊。
      

  7.   

    哥哥姐姐,小弟愚鈍,誰能幫忙,按上要求,做個程序啊。用什麼控件都好。幫忙了真請吃飯,近的面請,遠的,可以幫叫KFC,網上支付。或其他都行。