unit U_GSInPutMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB, cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls, cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar, cxButtonEdit, cxTextEdit, cxDropDownEdit, cxPC, BtnEdit; type TfrmGSInPutMain = class(TForm) ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; Panel2: TPanel; Label15: TLabel; Label16: TLabel; LabKHName: TLabel; Label20: TLabel; KHAdd: TMemo; KHAddEng: TMemo; KHName: TEdit; KHNameJC: TEdit; ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; DS_HZ3: TDataSource; CDS_HZ3: TClientDataSet; Label1: TLabel; KHNameEng: TEdit; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); private { Private declarations } procedure InitGrid(); function SaveData():Boolean; procedure initBtnColor(panel12:TPanel); public { Public declarations } FKHMainid,FTSFlag,FKHFlag:String; end; var frmGSInPutMain: TfrmGSInPutMain; implementation uses U_DataLink,U_RTFun,U_ZDYHelp; {$R *.dfm} procedure TfrmGSInPutMain.InitGrid(); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select * from KH_Main where KHMainID='''+Trim(FKHMainid)+''''); Open; end; //主表 if ADOQueryTemp.IsEmpty=false then SCSHDataNew(ADOQueryTemp,Panel2,2); end; procedure TfrmGSInPutMain.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmGSInPutMain.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmGSInPutMain.FormShow(Sender: TObject); begin KHName.SetFocus; InitGrid(); if TBSave.Visible=False then begin initBtnColor(Panel2); end; end; procedure TfrmGSInPutMain.initBtnColor(panel12:TPanel); var i:Integer; begin with panel12 do begin for i:=0 to panel12.ControlCount-1 do begin if Controls[i] is TEdit then begin TEdit(Controls[i]).Color:=clMenu; TEdit(Controls[i]).ReadOnly:=True; end else if Controls[i] is TMemo then begin TMemo(Controls[i]).Color:=clMenu; TMemo(Controls[i]).ReadOnly:=True; end else if Controls[i] is TComboBox then begin TComboBox(Controls[i]).Color:=clMenu; TComboBox(Controls[i]).Enabled:=False; end; end; end; end; function TfrmGSInPutMain.SaveData():Boolean; var maxno,FGYSNO,maxnoYWY:String; begin result:=false; try ADOQueryCmd.Connection.BeginTrans; if Trim(FKHMainid)='' then begin if GetLSNo(ADOQueryCmd,maxno,'GS','KH_Main',4,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大ID失败GSKH!','提示',0); Exit; end; if Trim(FKHFlag)='GS' then begin if GetLSNo(ADOQueryCmd,FGYSNO,Trim('GS'),'KH_Main',2,0)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取公司最大号失败!','提示',0); Exit; end; end; end else begin maxno:=Trim(FKHMainid); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from KH_Main where KHMainID='''+Trim(FKHMainid)+''''); Open; end; with ADOQueryCmd do begin If IsEmpty then begin Append; FieldByName('Filler').Value:=Trim(DName); FieldByName('Fillercode').Value:=Trim(DCode); FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTemp); FieldByName('KHNO').Value:=Trim(FGYSNO); end else begin Edit; FieldByName('Editer').Value:=Trim(DName); FieldByName('EditerCode').Value:=Trim(DCode); FieldByName('Edittime').Value:=SGetServerDateTime(ADOQueryTemp); end; FieldByName('KHMainID').Value:=Trim(maxno); RTSetsavedata(ADOQueryCmd,'KH_Main',Panel2,2); FieldByName('KHFlag').Value:=Trim(FKHFlag); FieldByName('Valid').Value:='Y'; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from KH_Main where KHName='''+Trim(KHName.Text)+''''); sql.Add(' and KHFlag='''+Trim(FKHFlag)+''' and Valid=''Y'' '); Open; end; if ADOQueryCmd.RecordCount>1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('公司名称重复!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from KH_Main where KHNameJC='''+Trim(KHNameJC.Text)+''''); sql.Add(' and KHFlag='''+Trim(FKHFlag)+''' and Valid=''Y'' '); Open; end; if ADOQueryCmd.RecordCount>1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('简称重复!','提示',0); Exit; end; ADOQueryCmd.Connection.CommitTrans; FKHMainid:=maxno; result:=true; except ADOQueryCmd.Connection.RollbackTrans; Result:=false; Application.MessageBox('数据保存失败!','提示',0); Exit; end; end; procedure TfrmGSInPutMain.TBSaveClick(Sender: TObject); begin Panel2.SetFocus; IF trim(KHName.Text)='' then begin application.MessageBox('公司名称不能为空!','提示信息',MB_ICONERROR); exit; end; if Trim(KHNameJC.Text)='' then begin application.MessageBox('简称不能为空!','提示信息',MB_ICONERROR); exit; end; IF trim(KHNameEng.Text)='' then begin application.MessageBox('公司名称(英文)不能为空!','提示信息',MB_ICONERROR); exit; end; if Trim(KHAdd.Text)='' then begin application.MessageBox('公司地址不能为空!','提示信息',MB_ICONERROR); exit; end; if Trim(KHAddEng.Text)='' then begin application.MessageBox('公司地址(英文)不能为空!','提示信息',MB_ICONERROR); exit; end; if Application.MessageBox('确定要保存数据吗?','提示',32+4)<>IDYES then Exit; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; end.