1.目的:实现在下拉表中选择一条记录,在DBexlookupedit中显示NAME字段,但取值要得到ID字段
我在datafield中选择了NAME,Picklistfield中选择了ID,但只有第一条记录是显示NAME,选择后在编辑框仍显示ID.另外想知道通过PicklistField取值的方法!!2.窗体上部分为DBEdit等数据感知控件,下部分为DBGRID,两部分共用datasourse和Query 相互关联;
Query的语句为:"select A.id,B.code,B.name,A.date_start,A.date_end from t1 A,t2 B where A.id = B.id" 用Query查询出来的为只读数据集,需要用UPDATESQL组件来对数据集进行插入,更新,删除操作!现在可以更新了,但不知如何插入一新行然后编辑后保存!最好有相关的代码例子或其它的更方便的解决方案!!!3.在MDI窗体内子窗体打开后不能关闭,只能最小化,不知是设置的问题还是窗体类型的问题!!如果设为Normal窗体的话,窗体会被MDI主窗体遮住!!以上三个问题,请高手指教!!不胜感激!!本来想出200分,结果提示不能放这么多分,看来级别不够,连分都不能多散!!!呵呵

解决方案 »

  1.   

    你数据库的问题写了一大堆,懒的看。
    3.第三个文件,你在窗体的onClose事件中,写上  Action := caFree就可以关闭了。
      

  2.   

    但我认为这些问题并不复杂,在PB里面很容易就实现了,只是在DELPHI中的实现方式还不太明白!
      

  3.   

    问题2:写代码
    比如编辑的就是
    adotable.edit你这里假设绑定的是adoTable
      

  4.   

    1.目的:实现在下拉表中选择一条记录,在DBexlookupedit中显示NAME字段,但取值要取ID字段
    我在datafield中选择了NAME,Picklistfield中选择了ID,但只有第一条记录是显示NAME,选择后在编辑框仍显示ID.另外想知道通过PicklistField取值的方法!!2.窗体 上部分为DBEdit等数据感知控件,下部分为DBGRID,两部分共用datasourse和Query 相互关联;
    Query的SQL语句为:
    "select A.id,B.code,B.name,A.date_start,A.date_end from t1 A,t2 B where A.id = B.id" 用Query查询出来的为只读数据集,需要用UPDATESQL组件来对数据集进行插入,更新,删除操作!
    现在可以更新了,但不知如何插入一新行然后编辑后保存!最好有相关的代码例子或其它的更方便的解决方案!!!
    这样应该清楚点!!问题2中绑定的是BDE的query!!
      

  5.   

    1、目的:实现在下拉表中选择一条记录,在DBexlookupedit中显示NAME字段,但取值要取ID字段
    我在datafield中选择了NAME,Picklistfield中选择了ID,但只有第一条记录是显示NAME,选择后在编辑框仍显示ID.另外想知道通过PicklistField取值的方法!!有个笨办法,在NAME和ID之间插入若干空格,具体多少能满足ID字段不能显示就行了。
    取ID可以用RightStr(X,Y)来取。
    DELPHI好久不用了,这个控件差不多忘了
      

  6.   

    1、显示Name保存ID的方法很简单,窗体上面放个cxEditRepository控件,里面添加个比如TestID: TcxEditRepositoryLookupComboBoxItem;设置KeyFieldName=ID,ListFieldNames=Name,然后再设定显示此数据的组件的RepositoryItem为TestID即可。
    2、上面有人给出答案
    3、在MDI窗体内子窗体打开后可以关闭,在子窗体的 Close事件里设定
       Action := caFree;
       Form:= nil ;
    子窗体的创建可以如下这样:
    procedure TFmainForm.ShowForm(InstanceClass: TComponentClass; var Reference);
    var
      i:integer;
    begin
      if FmainForm.MDIChildCount > 0 then
      begin
        for i:= 0 to  FmainForm.MDIChildCount-1 do
        if FmainForm.MDIChildren[i].ClassName  = InstanceClass.ClassName  then
           exit;
      end;
      Application.CreateForm(InstanceClass, Reference);
      WindowTileVertical1.Execute ;
    end;调用ShowForm(TFmMDIChild1,FmMDIChild1);创建子窗体FmMDIChild1
      

  7.   

    cxEditRepository控件??是第三方的吧!我用的是devExpress QuantumGrid控件,里面没有这个控件!!