unit U_ZdyAttInput; 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; type TfrmZdyAttInput = class(TForm) ToolBar1: TToolBar; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; TBsave: TToolButton; Panel1: TPanel; Label2: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label17: TLabel; Label18: TLabel; ZdyName: TEdit; Region: TEdit; Linkman: TEdit; FaxNo: TEdit; BankName: TEdit; ywy: TEdit; MobileNo: TEdit; ToPlace: TEdit; Shortened: TEdit; Grade: TEdit; TelNo: TEdit; Address: TEdit; BankNo: TEdit; Label1: TLabel; EMAIL: TEdit; Label3: TLabel; Note: TMemo; Label9: TLabel; KHType: TComboBox; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBsaveClick(Sender: TObject); procedure ywyDblClick(Sender: TObject); private { Private declarations } procedure InitGrid(); function SaveData(): Boolean; public fkhType: string; { Public declarations } FATID, FFromATID: string; end; var frmZdyAttInput: TfrmZdyAttInput; implementation uses U_DataLink, U_Fun, U_ZDYHelp, U_UserSelf; {$R *.dfm} procedure TfrmZdyAttInput.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add(' select * from KH_Zdy_Attachment where ATID=''' + Trim(FATID) + ''' '); Open; end; SCSHDataNew(ADOQueryMain, Panel1, 0); finally ADOQueryMain.EnableControls; end; end; procedure TfrmZdyAttInput.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmZdyAttInput.FormShow(Sender: TObject); begin InitGrid(); if Trim(FATID) = '' then begin ywy.Text := Trim(Dname); end; end; function TfrmZdyAttInput.SaveData(): Boolean; var fzdyCode, maxId, LX: string; begin try ADOQueryCmd.Connection.BeginTrans; if (Trim(FATID) = '') then begin if GetLSNo(ADOQueryCmd, maxId, 'AT', 'KH_Zdy_Attachment', 4, 1) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; if KHType.Text = '内销' then begin LX := '201'; end else begin LX := '202' end; if GetLSNo(ADOQueryCmd, fzdyCode, LX, 'KH_Zdy_Attachment', 4, 0) = False then begin Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取客户编号失败!', '提示', 0); Exit; end; end else begin maxId := Trim(FATID); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add(' select * from KH_Zdy_Attachment where ATID=''' + Trim(FATID) + ''' '); Open; end; with ADOQueryCmd do begin if Trim(FATID) = '' then begin Append; FieldByName('Filler').Value := Trim(DName); FieldByName('ZdyCode').Value := Trim(fzdyCode); FieldByName('ATID').Value := Trim(maxId); FieldByName('Type').Value := 'KHName'; if (Trim(FFromATID) = '') then FieldByName('FromATID').Value := Trim(maxId) else FieldByName('FromATID').Value := Trim(FFromATID); end else begin Edit; FieldByName('Editer').Value := Trim(DName); FieldByName('Edittime').Value := SGetServerDateTime(ADOQueryTemp); end; SSetsavedataNew(ADOQueryCmd, 'KH_Zdy_Attachment', Panel1, 0); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' select * from KH_Zdy_Attachment where ZdyName=''' + Trim(maxId) + ''' '); sql.Add(' and Type=''KHName'' and Valid=''Y'' '); Open; end; if ADOQueryCmd.RecordCount > 1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('客户名称重复!', '提示', 0); Exit; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except Result := False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存异常!', '提示', 0); end; end; procedure TfrmZdyAttInput.TBsaveClick(Sender: TObject); begin ZdyName.SetFocus; if Trim(ZdyName.Text) = '' then begin Application.MessageBox('客户名称不能为空!', '提示', 0); Exit; end; if Trim(KHType.Text) = '' then begin Application.MessageBox('客户类型不能为空!', '提示', 0); Exit; end; if Trim(Linkman.Text) = '' then begin Application.MessageBox('联系人不能为空!', '提示', 0); Exit; end; if Trim(MobileNo.Text) = '' then begin Application.MessageBox('手机号码不能为空!', '提示', 0); Exit; end; if Application.MessageBox('确定要保存数据吗?', '提示', 32 + 4) <> IDYES then Exit; if SaveData() then begin Application.MessageBox('保存成功!', '提示', 0); ModalResult := 1; end; end; procedure TfrmZdyAttInput.ywyDblClick(Sender: TObject); begin frmUserSelf := TfrmUserSelf.Create(self); with frmUserSelf do begin if showmodal = 1 then begin ywy.Text := ClientDataSet1.fieldbyname('username').AsString; end; free; end; end; end.