unit U_YGAdd; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, cxTextEdit, cxButtonEdit, StdCtrls, ExtCtrls, cxCurrencyEdit, BtnEdit; type TfrmYGAdd = class(TForm) ToolBar1: TToolBar; ToolButton1: TToolButton; TBClose: TToolButton; ADOQueryMain: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryTemp: TADOQuery; ScrollBox1: TScrollBox; Label1: TLabel; YGID: TEdit; BZYGID: TEdit; Label3: TLabel; CDS_Sub: TClientDataSet; Label2: TLabel; BZName: TEdit; Label4: TLabel; BZID: TEdit; YGCode: TBtnEditA; Label5: TLabel; YGName: TEdit; Label6: TLabel; Label7: TLabel; YGBL: TEdit; procedure FormShow(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure YGCodeBtnClick(Sender: TObject); procedure YGBLKeyPress(Sender: TObject; var Key: Char); private canshu1:string; Fint:Integer; procedure InitSubGrid(); function SaveData():Boolean; { Private declarations } public FCYID,FCYCode,FCPID,FCPNO,FCPName:String; CopyInt:Integer; { Public declarations } end; var frmYGAdd: TfrmYGAdd; implementation uses U_DataLink,U_Fun,U_iniParam,U_ZDYHelp, U_ZdyAttachGYS,U_FileUp,U_YGList; {$R *.dfm} procedure TfrmYGAdd.InitSubGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; SQL.Add('select * from JYOrder_Process where PSID='''+Trim(FCYID)+''''); Open; end; SCSHDataNew(ADOQueryMain,ScrollBox1,2); SCSHDataNew(ADOQueryMain,ScrollBox1,0); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYGAdd.FormShow(Sender: TObject); begin // InitSubGrid(); end; procedure TfrmYGAdd.TBCloseClick(Sender: TObject); begin Close; end; function TfrmYGAdd.SaveData():Boolean; var maxId,FCYNo:String; begin try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from OA_YG_BZYG where 1=2'); Open; end; with ADOQueryCmd do begin Append; // FieldByName('Filler').Value:=Trim(DName); SSetsaveSqlNew(ADOQueryCmd,'OA_YG_BZYG',ScrollBox1,2); Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select count(*) as AA from OA_YG_BZYG where YGCode='''+Trim(YGCode.Text)+''''); sql.Add(' and BZName='''+Trim(BZName.Text)+''''); Open; if FieldByName('AA').AsInteger>1 then begin ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('班组重复!','提示',0); Exit; end; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmYGAdd.ToolButton1Click(Sender: TObject); begin // if YGCode.Text='' then // begin // Application.MessageBox('员工编号不能为空!','提示',0); // Exit; // end; if YGName.Text='' then begin Application.MessageBox('员工名称不能为空!','提示',0); Exit; end; if YGID.Text='' then begin Application.MessageBox('员工ID不能为空!','提示',0); Exit; end; if SaveData() then begin ModalResult:=1; end; end; procedure TfrmYGAdd.FormDestroy(Sender: TObject); begin frmYGAdd:=nil; end; procedure TfrmYGAdd.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmYGAdd.YGCodeBtnClick(Sender: TObject); begin try frmYGList:=TfrmYGList.Create(Application); with frmYGList do begin if ShowModal=1 then begin self.YGCode.Text:=TRIM(frmYGList.Order_Main.FieldByName('YGNo').AsString); self.YGName.Text:=TRIM(frmYGList.Order_Main.FieldByName('YGName').AsString); self.YGID.Text:=TRIM(frmYGList.Order_Main.FieldByName('YGID').AsString); end; end; finally frmYGList.Free; end; end; procedure TfrmYGAdd.YGBLKeyPress(Sender: TObject; var Key: Char); var c: Integer; begin if key='.' then begin for c:=1 to length(TEdit(Sender).text) do begin if Tedit(Sender).text[c]='.' then key:=#0; end; end else if key=#13 then PerForm(WM_NEXTDLGCTL,0,0) else if key=#8 then key:=#8 else if (key<'0') or (key>'9') then key:=#0; end; end.