delphi dbgrid 批量保存

unit   uzcdbadd;
interface
uses
   Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  Dialogs,   Menus,   DB,   StdCtrls,   Buttons,   GridsEh,   DBGridEh,   ComCtrls,   ExtCtrls;
type
   TfrmzcdbAdd   =   class(TForm)
       lbl1:   TLabel;
       pnl1:   TPanel;
       lbl2:   TLabel;
       dtp1:   TDateTimePicker;
       dbgrdh1:   TDBGridEh;
       btnOK:   TBitBtn;
       btnclose:   TBitBtn;
       ds1:   TDataSource;
       pm1:   TPopupMenu;
       mniadd:   TMenuItem;
       mniN1:   TMenuItem;
       procedure   btncloseClick(Sender:   TObject);
       procedure   FormCreate(Sender:   TObject);
       procedure   btnOKClick(Sender:   TObject);
       procedure   dbgrdh1EditButtonClick(Sender:   TObject);
       procedure   dbgrdh1KeyPress(Sender:   TObject;   var   Key:   Char);
       procedure   mniaddClick(Sender:   TObject);
       procedure   mniN1Click(Sender:   TObject);
       procedure   FormClose(Sender:   TObject;   var   Action:   TCloseAction);
   private
       {   Private   declarations   }
   public
       {   Public   declarations   }
   end;
var
   frmzcdbAdd:   TfrmzcdbAdd;
   Edittag:Integer;
implementation
uses   datamoule,   uselectzc,   frmMain;
{$R   *.dfm}
 
procedure   TfrmzcdbAdd.btncloseClick(Sender:   TObject); //关闭时事务回滚
begin
   dm.qryzcdbadd.Close;
   DM.congdzc.RollbackTrans;
   close;
end;
 
procedure   TfrmzcdbAdd.FormCreate(Sender:   TObject); //窗口生成时
begin
   if   DM.qryzcdbadd   .Active   then   dm.qryzcdbadd.Close;
   if   DM.congdzc.InTransaction   then   dm.congdzc.RollbackTrans;
   dm.qryzcdbadd.LockType   :=     ltBatchOptimistic;{批量乐观锁定}
   DM.congdzc.BeginTrans;   {开启事务}
   case   Edittag   of
   0:
       begin
           dm.qryzcdbadd.Open;
           dm.qryzcdbadd.Append;
           dm.qryzcdbadd.FieldByName( '调拨日期 ').AsDateTime   :=Now;
           dm.qryzcdbadd.FieldByName( '登记人员 ').AsString   :=   GuserName;
       end;
     1:
         begin
             dm.qryzcdbadd.SQL.Clear;
             dm.qryzcdbadd.SQL.Add( 'select   *   from   [调拨]   where   ID= '+inttostr(dm.qryzcdb.fieldbyname( 'ID ').asinteger));
             DM.qryzcdbadd.open;
             DM.qryzcdbadd.First;
             DM.qryzcdbadd.Edit;
 
         end;
   end;
end;
 
 
procedure   TfrmzcdbAdd.btnOKClick(Sender:   TObject); //单击保存
begin
     dm.qryzcdbadd.UpdateBatch();       {批量保存}
     dm.congdzc.CommitTrans;                   {提交事务}
     close;
end;
 
 
procedure   TfrmzcdbAdd.dbgrdh1EditButtonClick(Sender: TObject);
begin
   if   dbgrdh1.Col=1   then
   begin
       frmSelectzc:= TfrmSelectzc.Create(nil);
       frmSelectzc.Tag:=2;
       frmSelectzc.Show;
   end;
end;
 
 
procedure   TfrmzcdbAdd.dbgrdh1KeyPress(Sender:   TObject;   var   Key:   Char);
begin
 if   key=#13   then{   判断是按执行键}
       if     dbgrdh1.Col+1 <(dbgrdh1.Columns.Count)   then
               dbgrdh1.Col:=dbgrdh1.col+1{   移动到下一字段}
       else
               dbgrdh1.Col:=1;
end;
 
procedure   TfrmzcdbAdd.mniaddClick(Sender:   TObject); //添加按钮
begin
   DM.qryzcdbadd.Append;
   dm.qryzcdbadd.FieldByName( '调拨日期 ').AsDateTime   :=Now;
   dm.qryzcdbadd.FieldByName( '登记人员 ').AsString   :=   GuserName;
end;
 
 
procedure   TfrmzcdbAdd.mniN1Click(Sender:   TObject); //删除
begin
   DM.qryzcdbadd.Delete;
end;
 
procedure   TfrmzcdbAdd.FormClose(Sender:   TObject;   var   Action:   TCloseAction);
begin
   DM.qryzcdb.Refresh;
   Release;
end;
 
end.

猜你喜欢

转载自www.cnblogs.com/jijm123/p/10230039.html
今日推荐