请问高手,我想实现要一般的商品软件的单据录入的界面该如何实现
在下方的dbgrid中录入一个货号,然后弹出一个窗口,在上面一次录入多条记录,然后点击确定,再返回到dbgrid中,该如何写,具体些,或者大家有这样的代码借本人参考一下也可,万分感谢,

解决方案 »

  1.   

    這個很好搞了,在你的彈出的窗口中寫代碼,把你在這個界面裡輸入到數據集的數據復制到你的dbgrid的數據集中就好了。
      

  2.   

    弹出窗口创建一个临时的ADOQUERY,用一个DBGRID与这个数据集对应,然后直接在这个GRID里面录入,最后回主窗口的时候把临时数据集的数据保存或复制到相应的地方就完了。代码比较容易。
      

  3.   

    连接同样的一个数据集TDataSet
      

  4.   

    具体是这样的,我想实现统计每个工人在每天的每道工序具体产量,我录入一个工号后,弹出一个二列的dbgrid,工序号及产量,只有二列怎么保存呀,具体请高手指点一二,
      

  5.   

    你的表結構是不是
      工號  工序號  產量
    如果是的而可以在彈出dbgrid里讀取上一個dbgrid里的工號 加上現的 工序號 產量 后保存就行了吧!
    還有連接同一個數據集
      

  6.   

    我的表结构是
    主表结构 统计表编号,编号,统计员
    明细表结构 工号 工序号 产量  统计表编号
    由于本人目前是初学dbgrid,该具体如何做,最好有代码.你的表結構是不是
      工號  工序號  產量
    如果是的而可以在彈出dbgrid里讀取上一個dbgrid里的工號 加上現的 工序號 產量 后保存就行了吧!
    還有連接同一個數據集我也是这么考虑的,但是具体代码,能否写出一点
      

  7.   

    先在你的主結表里加上
    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
     if key=#13 then
      form2.Show;
    end;
    //在打開窗口的時候就插入一條新記錄,并把上一個窗口的數據帶過來.
    procedure TForm2.FormShow(Sender: TObject);
    begin
      adoquery1.Insert;
      adoquery1.FieldByName('統計表編號').AsString:=form1.ADOQuery1.FieldByName('統計表編號').AsString;
      adoquery1.FieldByName('工號').AsString:=form1.adoquery1.FieldByName('工號').AsString;
      adoquery1.Post;
    end;
    //輸入完后就回車保存;
    procedure TForm2.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then  
      form2.close;
    end;
    因為有二個表.所以就不是同一個數據集了
      

  8.   

    作为大量数据输入,建议用Stringgrid,方便好用......