unit U_BatchEdit; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxContainer, cxEdit, Vcl.Menus, Vcl.StdCtrls, cxButtons, cxLabel, cxTextEdit, cxMaskEdit, cxDropDownEdit, dxSkinsCore, dxSkinWXI, Data.DB, Data.Win.ADODB, U_BaseInput; type TfrmBatchEdit = class(TfrmBaseInput) price: TcxTextEdit; btnOK: TcxButton; btnCancel: TcxButton; cxLabel2: TcxLabel; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; priceGW: TcxTextEdit; cxLabel1: TcxLabel; procedure btnOKClick(Sender: TObject); procedure btnCancelClick(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public FBCIOID: string; FStkId: string; FIOID: string; Fflag: Integer; { Public declarations } end; var frmBatchEdit: TfrmBatchEdit; implementation uses U_DataLink; {$R *.dfm} procedure TfrmBatchEdit.btnCancelClick(Sender: TObject); begin close; end; procedure TfrmBatchEdit.btnOKClick(Sender: TObject); begin if (Fflag = 0) or (Fflag = 1) then begin if price.Text = '' then price.Text := 'null'; if FBCIOID = '' then exit; try with ADOQuery1 do begin close; sql.Clear; sql.Add(' update bs_cloth_io set price = ' + price.Text + ' where BCIOID in (' + FBCIOID + ')'); ExecSQL; end; finally ModalResult := 1; ; end; end else if Fflag = 2 then begin if price.Text = '' then price.Text := 'null'; if FStkId = '' then exit; try with ADOQuery1 do begin close; sql.Clear; sql.Add(' update Trade_Cloth_Stock_ZD set ZDprice = ' + price.Text + ' where StkId in (' + FStkId + ')'); ExecSQL; end; finally ModalResult := 1; ; end; end else if Fflag = 3 then begin if (price.Text <> '') and (priceGW.Text <> '') then begin Application.MessageBox('只能填写一个单价', '提示信息', 0); Exit; end; if FIOID = '' then exit; try with ADOQuery1 do begin close; sql.Clear; if (price.Text = '') and (priceGW.Text = '') then begin sql.Add(' update Trade_Cloth_IO set price = ' + price.Text + ' where IOID in (' + FIOID + ')'); sql.Add(' update Trade_Cloth_IO set Amount = ' + price.Text + ' where IOID in (' + FIOID + ')'); end else if (price.Text <> '') and (priceGW.Text = '') then begin sql.Add(' update Trade_Cloth_IO set price = ' + price.Text + ' where IOID in (' + FIOID + ')'); sql.Add(' update Trade_Cloth_IO set Amount = ' + price.Text + ' * meter where IOID in (' + FIOID + ')'); end else if (price.Text = '') and (priceGW.Text <> '') then begin sql.Add(' update Trade_Cloth_IO set price = ' + priceGW.Text + ' where IOID in (' + FIOID + ')'); sql.Add(' update Trade_Cloth_IO set Amount = ' + priceGW.Text + ' * NetWeight where IOID in (' + FIOID + ')'); end; // ShowMessage(sql.Text); ExecSQL; end; finally ModalResult := 1; ; end; end; end; procedure TfrmBatchEdit.FormShow(Sender: TObject); begin try with ADOConnection1 do begin if not Connected then begin Connected := false; ConnectionString := DConString; LoginPrompt := false; Connected := true; end; end; except application.MessageBox('数据库连接失败!', '错误', mb_Ok + MB_ICONERROR); end; if FFlag = 3 then begin priceGW.Visible := true; cxLabel1.Visible := True; cxLabel2.Caption := '米数价格'; end; end; end.