当输入不正确物料编号时,在OnExit中写代码弹出一个窗体选择方式录入,当关闭显示窗体后,返回物料编号,用什么方法将返回的物料编号写入当前edit中。请帮手,TKS!

解决方案 »

  1.   

    在窗体没有free之前你可以读取那个窗体的物料编号,然后edit.text := 你读的值
      

  2.   

    在窗口关团事件中写代码,把返回的物料编号写入当前edit中。即edit.text := 你读取的值。
      

  3.   

    呵呵,刚走开了一下。也许我没说详细:
    我这个表单用于录入物料入库单的,有多个dbedit控件对应入库单字段,当录入入库单的物料代码时,如物料表中找不到则弹出窗体来选择录入,于是我在dbeditno(物料代码对应)的onExit中写:
      if (dbeditno.Text='') or not(Dm.AdoqMateriel.Locate('no',DbeNo.Text,[])) then
      begin  //找不到物料代码或为空时
        FmMateriel:=TFmMateriel.Create(Self);
        FmMateriel.show;  
        dbeditno.Text:=GetMaterielNo;  //GetMaterielNo为公共变量,用来保存物料代码
      end;可是,程序一直运行,并没有在FmMateriel关闭后才运行。也就是说dbeditno.Text并不是我想要的值啊。帮帮手啊
      

  4.   

    不行啊,我是多文档的啊。不能用ShowModal的
      

  5.   

    我的目的是:选取的物料编号如何放在dbedit.text中?在哪里写代码?
      

  6.   

    yangzhum(yangzhum) 朋友,你的问题我想这么解决一定可以,你可以试试:
    在dbeditno(物料代码对应)的onExit中写:
      if (dbeditno.Text='') or not(Dm.AdoqMateriel.Locate('no',DbeNo.Text,[])) then
      begin  //找不到物料代码或为空时
        dbeditno.clear//清空dbedit控件中的内容 
        dbeditno.Text:=GetMaterielNo(FmMateriel); //GetMaterielNo为函数,用来返回物料代码给dbedit控件
       end;
    然后在FmMateriel窗体单元中写如下代码:
    public
    function getmaterieno(aformclass:TFormclass):string;//定义函数
    end;
    var
    FmMateriel:TFmMateriel;
    materielno:string//全局变量,存储选中的物料代码
    implementation
    {$ *.DFM}
    //打开窗体,并返回选定的物料代码
    function TFmMateriel.getmaterieno(aformclass:TFormclass):string;
    begin
    materielno:='';
    with aformclass.create(application) do
    begin
    try
    showmodal;
    finally
    free;
    end;
    result:=materielno;
    end;
    end;
    //确定按钮,返回物料代码
    procedure TFmMateriel.btnokclick(sender:Tobject);
    begin
    materielno:=listview1.selected.caption;//在控件listview1中选择您想要的物料代码
    end;
      

  7.   

    如还有什么问题,可给我发邮件:
    [email protected]