unit U_KHInPutMainNX; 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 TfrmKHInPutMainNX = 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; ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; DS_HZ3: TDataSource; CDS_HZ3: TClientDataSet; LabKHType: TLabel; KHType: TComboBox; KHSHAdd: TMemo; Label4: TLabel; KHQuYu: TBtnEditC; Label22: TLabel; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure KHQuYuBtnUpClick(Sender: TObject); procedure KHQuYuBtnDnClick(Sender: TObject); private { Private declarations } procedure InitGrid(); function SaveData(): Boolean; procedure initBtnColor(panel12: TPanel); public { Public declarations } FKHMainid, FTSFlag, FKHFlag, FYWY, FLiDan: string; end; var frmKHInPutMainNX: TfrmKHInPutMainNX; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_FjList_RZ, U_SCPerson; {$R *.dfm} procedure TfrmKHInPutMainNX.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 TfrmKHInPutMainNX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmKHInPutMainNX.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmKHInPutMainNX.FormShow(Sender: TObject); begin KHName.SetFocus; InitGrid(); if TBSave.Visible = False then begin initBtnColor(Panel2); end; end; procedure TfrmKHInPutMainNX.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 TfrmKHInPutMainNX.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 GetLSNo(ADOQueryCmd, FGYSNO, 'KH', 'KH_Main', 4, 0) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取供应商最大号失败!', '提示', 0); Exit; 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); FieldByName('YWY').Value := Trim(FYWY); FieldByName('LIDan').Value := Trim(FLiDan); 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('UserName').Value := Trim(FYWY); FieldByName('KOType').Value := '业务员'; FieldByName('FillerCode').Value := Trim(DCode); FieldByName('Filler').Value := Trim(DName); FieldByName('Valid').Value := 'Y'; Post; end; with ADOQueryCmd do begin Append; FieldByName('KHMainId').Value := Trim(maxno); FieldByName('KOID').Value := Trim(maxnoYWY) + '-1'; FieldByName('UserName').Value := Trim(FLiDan); FieldByName('KOType').Value := '理单员'; FieldByName('FillerCode').Value := Trim(DCode); FieldByName('Filler').Value := Trim(DName); FieldByName('Valid').Value := 'Y'; Post; end; with ADOQueryCmd do begin Append; FieldByName('KHMainId').Value := Trim(maxno); FieldByName('KOID').Value := Trim(maxnoYWY) + '-2'; FieldByName('UserName').Value := Trim(FLiDan); 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_Owner Set UserId=(select USERID from SY_User A where A.USERName=KH_Owner.UserName)'); sql.Add(' where KOID=''' + Trim(maxnoYWY) + ''''); sql.Add('Update KH_Owner Set UserId=(select USERID from SY_User A where A.USERName=KH_Owner.UserName)'); sql.Add(' where KOID=''' + Trim(Trim(maxnoYWY) + '-1') + ''''); ExecSQL; 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; ADOQueryCmd.Connection.CommitTrans; FKHMainid := maxno; result := true; except ADOQueryCmd.Connection.RollbackTrans; Result := false; Application.MessageBox('数据保存失败!', '提示', 0); Exit; end; end; procedure TfrmKHInPutMainNX.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(KHType.Text) = '' then begin application.MessageBox('类型不能为空!', '提示信息', MB_ICONERROR); exit; end; if Trim(KHLXR.Text) = '' then begin application.MessageBox('联系人不能为空!', '提示信息', MB_ICONERROR); exit; end; if Trim(KHTel.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; procedure TfrmKHInPutMainNX.KHQuYuBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'KHQuYuNX'; flagname := '区域'; if ShowModal = 1 then begin KHQuYu.Text := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmKHInPutMainNX.KHQuYuBtnDnClick(Sender: TObject); begin KHQuYu.Text := ''; end; end.