unit U_KHInPutMainWX; 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 TfrmKHInPutMainWX = 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; Label22: TLabel; KHAdd: TMemo; KHSJAdd: TMemo; KHLXR: TEdit; KHTel: TEdit; KHName: TEdit; KHNameJC: TEdit; Note: TEdit; KHNameEng: 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; KHQuYu: TBtnEditC; Label4: TLabel; Label5: TLabel; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure KHQuYuBtnDnClick(Sender: TObject); procedure KHQuYuBtnUpClick(Sender: TObject); procedure KHNameKeyPress(Sender: TObject; var Key: Char); private { Private declarations } procedure InitGrid(); function SaveData(): Boolean; procedure initBtnColor(panel12: TPanel); public { Public declarations } FKHMainid, FTSFlag, FKHFlag, FYWY, FLiDan: string; end; var frmKHInPutMainWX: TfrmKHInPutMainWX; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_FjList_RZ, U_SCPerson; {$R *.dfm} procedure TfrmKHInPutMainWX.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 TfrmKHInPutMainWX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmKHInPutMainWX.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmKHInPutMainWX.FormShow(Sender: TObject); begin KHName.SetFocus; InitGrid(); if TBSave.Visible = False then begin initBtnColor(Panel2); end; end; procedure TfrmKHInPutMainWX.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 TfrmKHInPutMainWX.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 TfrmKHInPutMainWX.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 Trim(KHType.Text)='外销' then begin if Trim(KHNameEng.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 TfrmKHInPutMainWX.KHQuYuBtnDnClick(Sender: TObject); begin KHQuYu.Text := ''; end; procedure TfrmKHInPutMainWX.KHQuYuBtnUpClick(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'KHQuYuWX'; flagname := '国家'; if ShowModal = 1 then begin KHQuYu.Text := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmKHInPutMainWX.KHNameKeyPress(Sender: TObject; var Key: Char); begin if Key in (['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', ''#8]) then begin end else begin Key := #0; MessageBeep(1); end; end; end.