当在dbgrideh中的名称字段中录入ptt时 如何调用另外一个dbgrideh实现过滤查找,sql语句我会 我不知道如何如何在dbgrideh中调用dbgrideh

解决方案 »

  1.   

    改变一下列的类型,应该可以有诸如button,check之类的,肯定有一种是可以容纳其它控件的,那样就可以把另一个grid容纳进来
      

  2.   

    在dbgrideh中调用另一个dbgrideh,有很多方法,你可以根据自己的需要进行选择,首先要有一个"另一个dbgrideh",不管是其他窗体中还是在本窗体.N种方法:
    1、在原dbgrideh的字段后,可以增加按钮(设置字段属性EditButton,并进行调用);
    2、在要输PTT的字段的ColExit事件中进行调用;
    3、在事件KeyDown中处理(需要判断所在字段);
    。对了,至于怎么显示另一个dbgrideh及显示什么内容,就不是这个问题了,相信你能处理.
      

  3.   


    procedure TFrm_prescribe_infoForm.DBGridEh1Columns1EditButtonClick(
      Sender:TObject; var Handled:Boolean);
    begin
          if Frm_GetMedicalForm = nil then
            Frm_GetMedicalForm := TFrm_GetMedicalForm.Create(application);      AdjustDropDownForm(DBGridEh1.InplaceEditor);
          Frm_GetMedicalForm.edt1.Text := vs;
          Frm_GetMedicalForm.ADOQuery1.Close;
          Frm_GetMedicalForm.ADOQuery1.SQL.Clear;
          Frm_GetMedicalForm.ADOQuery1.SQL.Text := Get_medical_code();
          Frm_GetMedicalForm.ADOQuery1.Open;
          if Frm_GetMedicalForm.ADOQuery1.RecordCount > 0 then
            Frm_GetMedicalForm.Show
          else
            MyMsgBox('未找到该项目!', '注意', MB_OK);
        end;
    end;这是思路,我的原码删除了一些内容(很多其他功能用的).你参考一下.
      

  4.   

    首先 谢谢青蛙 但有几点我不太明白想请教一下你
    1.AdjustDropDownForm(DBGridEh1.InplaceEditor);-这是不是你自定义的过程啊?如果是 是干什么用的?
    2.你的思路是不是动态创建一个带DBGRID的form 然后传入SQL命令后 form.show?
      

  5.   

      
    //判断一下当前选择的字段
      if DBGridEh1.SelectedField.FieldName ='SumProp' then
      begin
         ....
         DBGridEh2.Visible :=true;
      end;
      

  6.   

      
    //判断一下当前选择的字段
      if DBGridEh1.SelectedField.FieldName ='SumProp' then
      begin
         ....
         DBGridEh2.Visible :=true;
      end;