unit U_GXAdd; 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 TfrmGXAdd = class(TForm) ToolBar1: TToolBar; ToolButton1: TToolButton; TBClose: TToolButton; ADOQueryMain: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryTemp: TADOQuery; ScrollBox1: TScrollBox; Label1: TLabel; PSName: TEdit; PSID: TEdit; Label3: TLabel; Label13: TLabel; CDS_Sub: TClientDataSet; Note: TMemo; procedure FormShow(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure CYColorKeyPress(Sender: TObject; var Key: Char); procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); 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 frmGXAdd: TfrmGXAdd; implementation uses U_DataLink,U_Fun,U_iniParam,U_ZDYHelp, U_ZdyAttachGYS,U_FileUp; {$R *.dfm} procedure TfrmGXAdd.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 TfrmGXAdd.FormShow(Sender: TObject); begin // InitSubGrid(); end; procedure TfrmGXAdd.TBCloseClick(Sender: TObject); begin Close; end; function TfrmGXAdd.SaveData():Boolean; var maxId,FCYNo:String; begin try ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from JYOrder_Process where PSID='''+Trim(FCYID)+''''); Open; end; with ADOQueryCmd do begin Append; FieldByName('Filler').Value:=Trim(DName); SSetsaveSqlNew(ADOQueryCmd,'JYOrder_Process',ScrollBox1,2); Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select count(*) as AA from JYOrder_Process where PSName='''+Trim(PSName.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 TfrmGXAdd.ToolButton1Click(Sender: TObject); begin if PSName.Text='' then begin Application.MessageBox('工序名称不能为空!','提示',0); Exit; end; if SaveData() then begin ModalResult:=1; end; end; procedure TfrmGXAdd.CYColorKeyPress(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; procedure TfrmGXAdd.FormDestroy(Sender: TObject); begin frmGXAdd:=nil; end; procedure TfrmGXAdd.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; end.