unit U_PBGYSInPutMain; 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 TfrmPBGYSInPutMain = class(TForm) ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; Panel2: TPanel; KHNo: TEdit; Label15: TLabel; Label16: TLabel; Label13: TLabel; Label17: TLabel; Label18: TLabel; LabKHName: TLabel; Label20: TLabel; KHAdd: TMemo; KHSJAdd: TMemo; KHLXR: TEdit; KHTel: TEdit; KHName: TEdit; KHNameJC: TEdit; Note: TEdit; Label1: TLabel; KHWX: TEdit; Label2: TLabel; KHEmail: TEdit; Label3: TLabel; KHJYFanWei: TEdit; ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; DS_HZ3: TDataSource; CDS_HZ3: TClientDataSet; LabKHType: TLabel; KHType: TBtnEditA; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure KHTypeBtnClick(Sender: TObject); private { Private declarations } procedure InitGrid(); function SaveData():Boolean; procedure initBtnColor(panel12:TPanel); public { Public declarations } FKHMainid,FTSFlag,FKHFlag:String; end; var frmPBGYSInPutMain: TfrmPBGYSInPutMain; implementation uses U_DataLink,U_RTFun,U_ZDYHelp,U_FjList_RZ,U_SCPerson; {$R *.dfm} procedure TfrmPBGYSInPutMain.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 TfrmPBGYSInPutMain.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmPBGYSInPutMain.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmPBGYSInPutMain.FormShow(Sender: TObject); begin KHName.SetFocus; InitGrid(); if TBSave.Visible=False then begin initBtnColor(Panel2); end; if Trim(FKHFlag)='GYS' then begin LabKHName.Caption:='供 应 商'; LabKHType.Visible:=True; KHType.Visible:=True; Self.Caption:='供应商信息录入'; end else if Trim(FKHFlag)='KH' then begin LabKHName.Caption:='客 户'; LabKHType.Visible:=False; KHType.Visible:=False; Self.Caption:='客户信息录入'; end; end; procedure TfrmPBGYSInPutMain.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 TfrmPBGYSInPutMain.SaveData():Boolean; var maxno,FGYSNO,maxnoYWY:String; begin result:=false; try ADOQueryCmd.Connection.BeginTrans; if Trim(FKHMainid)='' then begin if GetLSNo(ADOQueryCmd,maxno,'KH','KH_Main',4,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大ID失败GYSKH!','提示',0); Exit; end; if Trim(FKHFlag)='GYS' then begin //if GetLSNo(ADOQueryCmd,FGYSNO,Trim(KHType.TxtCode),'KH_Main',4,0)=False then if GetLSNo(ADOQueryCmd,FGYSNO,Trim('GY'),'KH_Main',4,0)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取供应商最大号失败!','提示',0); Exit; end; end else if Trim(FKHFlag)='KH' then begin if GetLSNo(ADOQueryCmd,FGYSNO,'KH','KH_Main',4,0)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取供应商最大号失败!','提示',0); Exit; end; end; KHNo.Text:=Trim(FGYSNO); 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); 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); FieldByName('KHFlag').Value:=FKHFlag; RTSetsavedata(ADOQueryCmd,'KH_Main',Panel2,2); 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; if Trim(FKHMainid)='' then begin if GetLSNo(ADOQueryCmd,maxnoYWY,'ZD','KH_Owner',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取指定最大号失败!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from KH_Owner where 1=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('KHMainId').Value:=Trim(maxno); FieldByName('KOID').Value:=Trim(maxnoYWY); FieldByName('UserId').Value:=Trim(DCode); FieldByName('UserName').Value:=Trim(DName); FieldByName('KOType').Value:='负责人'; FieldByName('FillerCode').Value:=Trim(DCode); FieldByName('Filler').Value:=Trim(DName); FieldByName('Valid').Value:='Y'; Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update KH_Main Set FZR=dbo.F_Get_HZStr(KH_Main.KHMainId,''FZR'')'); sql.Add(' where KHMainId='''+Trim(maxno)+''''); ExecSQL; end; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update CK_MYSC_CR Set KHName='''+trim(KHName.Text)+''' '); sql.Add(' where KHCode='''+Trim(KHNo.Text)+''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; FKHMainid:=maxno; result:=true; except ADOQueryCmd.Connection.RollbackTrans; Result:=false; Application.MessageBox('数据保存失败!','提示',0); Exit; end; end; procedure TfrmPBGYSInPutMain.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(FKHFlag)='GYS' then begin if Trim(KHType.Text)='' then begin application.MessageBox('类型不能为空!','提示信息',MB_ICONERROR); exit; end; end; if Application.MessageBox('确定要保存数据吗?','提示',32+4)<>IDYES then Exit; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmPBGYSInPutMain.KHTypeBtnClick(Sender: TObject); begin {try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='GYSType'; flagname:='供应商类型'; ViewFlag:=True; if ShowModal=1 then begin Self.KHType.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); Self.KHType.TxtCode:=Trim(ClientDataSet1.fieldbyname('Note').AsString); end; end; finally frmZDYHelp.Free; end; } try frmSCPerson:=TfrmSCPerson.Create(Application); with frmSCPerson do begin FlagStr:='GYSType'; if ShowModal=1 then begin Self.KHType.Text:=Trim(FSDPerson); end; end; finally frmSCPerson.Free; end; end; end.