unit U_Customer; 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, cxDBLookupComboBox, ComObj, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, U_BaseList, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, cxPC, dxScrollbarAnnotations; type TfrmCustomer = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBDel: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; btnFind: TToolButton; ADOQueryMain: TADOQuery; Label3: TLabel; CoName: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; GPM_1: TcxGridPopupMenu; DS_1: TDataSource; CDS_1: TClientDataSet; btnAdd: TToolButton; v2Column6: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v2Column7: TcxGridDBColumn; Label1: TLabel; CoCode: TEdit; v2Column10: TcxGridDBColumn; btnEdit: TToolButton; Label2: TLabel; Saleser: TEdit; country: TEdit; Label4: TLabel; v2Column15: TcxGridDBColumn; CDS_2: TClientDataSet; DS_2: TDataSource; btnSaleser: TToolButton; v2Column3: TcxGridDBColumn; OpenDialog1: TOpenDialog; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Panel2: TPanel; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; v3Column3: TcxGridDBColumn; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; Tv2Column1: TcxGridDBColumn; v3Column2: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; cxTabControl1: TcxTabControl; btnChk: TToolButton; btnReChk: TToolButton; Tv1Column1: TcxGridDBColumn; btnTallyer: TToolButton; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; ToolButton1: TToolButton; GPM_2: TcxGridPopupMenu; ToolButton3: TToolButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure btnFindClick(Sender: TObject); procedure btnEditClick(Sender: TObject); procedure btnAddClick(Sender: TObject); procedure TBuserClick(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure btnSaleserClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure CoCodeKeyPress(Sender: TObject; var Key: Char); procedure btnChkClick(Sender: TObject); procedure btnReChkClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure btnTallyerClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure CoCodeChange(Sender: TObject); private fFlileFlag: string; { Private declarations } procedure InitGrid(); procedure SetStatus(); public FAuthority: string; end; var frmCustomer: TfrmCustomer; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_CustomerInput, U_CustInput, U_UserSel, U_AttachmentUpload; {$R *.dfm} procedure TfrmCustomer.SetStatus(); begin btnSaleser.Enabled := false; //指定 btnTallyer.Enabled := false; //指定 btnChk.Visible := false; //审核 btnReChk.Visible := false; //撤销 if Trim(FAuthority) = '管理' then begin btnSaleser.Enabled := true; btnTallyer.Enabled := true; end; end; procedure TfrmCustomer.InitGrid(); var WSql, FCoCode: string; begin WSql := SGetFilters(Panel1, 1, 2); if trim(WSql) <> '' then begin WSql := ' and ' + trim(WSql); end; if not CDS_1.IsEmpty then FCoCode := CDS_1.FieldByName('CoCode').AsString; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add(' select * from BS_Company '); sql.Add(' where 1=1 ' + (WSql)); sql.Add(' and CoType=''客户'' and Valid=''Y'' '); if Trim(FAuthority) = '录入' then begin sql.Add(' and ( SalesId=' + quotedstr(trim(DCode)) + ' or exists (select * from [dbo].[F_Tool_SplitString](TallyId,'','') X where X.RTValue =' + quotedstr(trim(DCode)) + '))'); end; case cxTabControl1.TabIndex of 0: begin sql.Add(' and status=''0'''); end; 1: begin sql.Add(' and status=''1'''); end; end; SQL.Add(' ORDER BY CoCode '); // showmessage(sql.Text); Open; end; SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); CDS_1.Locate('CoCode', FCoCode, []); finally ADOQueryMain.EnableControls; end; end; procedure TfrmCustomer.FormDestroy(Sender: TObject); begin inherited; frmCustomer := nil; end; procedure TfrmCustomer.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmCustomer.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmCustomer.TBDelClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if Trim(CDS_1.fieldbyname('COID').AsString) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('exec P_BS_Com_Del @COID=' + quotedstr(trim(CDS_1.fieldbyname('COID').AsString))); sql.Add(',@DCode=' + quotedstr(trim(DCode))); sql.Add(',@DName=' + quotedstr(trim(DName))); ExecSQL; end; end; CDS_1.Delete; end; procedure TfrmCustomer.FormShow(Sender: TObject); begin inherited; fFlileFlag := UserDataFlag + 'HX'; FAuthority := self.fParameters1; ReadCxGrid(trim(self.caption) + 'Tv1', Tv1, '客户管理'); ReadCxGrid(trim(self.caption) + 'Tv2', Tv2, '客户管理'); SetStatus(); InitGrid(); end; procedure TfrmCustomer.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmCustomer.ToolButton1Click(Sender: TObject); begin WriteCxGrid(trim(self.caption) + 'Tv1', Tv1, '客户管理'); WriteCxGrid(trim(self.caption) + 'Tv2', Tv2, '客户管理'); end; procedure TfrmCustomer.btnFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); end; end; procedure TfrmCustomer.ToolButton3Click(Sender: TObject); begin if CDS_1.IsEmpty then Exit; try frmAttachmentUpload := TfrmAttachmentUpload.Create(Application); with frmAttachmentUpload do begin if (Trim(FAuthority) = '录入') or (Trim(FAuthority) = '管理') then FEditAuthority := True; fkeyNO := Trim(Self.CDS_1.fieldbyname('Coid').AsString); fType := '客户'; if ShowModal = 1 then begin end; end; finally frmAttachmentUpload.Free; end; end; procedure TfrmCustomer.CoCodeChange(Sender: TObject); begin btnFind.Click; end; procedure TfrmCustomer.CoCodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmCustomer.cxTabControl1Change(Sender: TObject); begin SetStatus(); TBRafresh.Click; end; procedure TfrmCustomer.btnEditClick(Sender: TObject); begin if CDS_1.IsEmpty then exit; try frmCustInput := TfrmCustInput.Create(Application); with frmCustInput do begin fFlileFlag := self.fFlileFlag; FCOID := Trim(Self.CDS_1.fieldbyname('COID').AsString); if ShowModal = 1 then begin TBRafresh.Click; end; end; finally frmCustInput.Free; end; end; procedure TfrmCustomer.btnTallyerClick(Sender: TObject); var MTallyId, MTallyer: string; begin MTallyId := ''; MTallyer := ''; try frmUserSel := TfrmUserSel.Create(Application); with frmUserSel do begin Fdept := '理单'; FMultiple := True; if ShowModal = 1 then begin while frmUserSel.CDS_1.Locate('SSel', True, []) do begin MTallyId := MTallyId + Trim(CDS_1.FieldByName('UserID').AsString) + ','; MTallyer := MTallyer + Trim(CDS_1.FieldByName('UserName').AsString) + ','; frmUserSel.CDS_1.Delete; end; end; end; finally frmUserSel.Free; end; if MTallyId = '' then Exit; MTallyId := copy(MTallyId, 1, Length(MTallyId) - 1); MTallyer := copy(MTallyer, 1, Length(MTallyer) - 1); while CDS_1.Locate('SSel', True, []) do begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update BS_Company set TallyId=' + quotedstr(trim(MTallyId))); sql.Add(' ,Tallyer=' + quotedstr(trim(MTallyer))); sql.Add(' where COID=''' + Trim(CDS_1.fieldbyname('COID').AsString) + ''''); ExecSQL; end; CDS_1.Delete; end; InitGrid(); end; procedure TfrmCustomer.btnChkClick(Sender: TObject); begin if CDS_1.IsEmpty then exit; try with CDS_1 do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update BS_Company SET status=''1'',Chktime=getdate(),Chker=' + quotedstr(trim(DName))); sql.Add('where CoID=' + quotedstr(trim(CDS_1.fieldbyname('CoID').AsString))); execsql; end; end; next; end; First; EnableControls; end; application.MessageBox('审核成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmCustomer.btnReChkClick(Sender: TObject); begin if CDS_1.IsEmpty then exit; try with CDS_1 do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update BS_Company SET status=''0'',Chktime=null,Chker=null '); sql.Add('where CoID=' + quotedstr(trim(CDS_1.fieldbyname('CoID').AsString))); execsql; end; end; next; end; First; EnableControls; end; application.MessageBox('撤销审核成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('撤销审核失败!', '提示信息', 0); end; end; procedure TfrmCustomer.btnAddClick(Sender: TObject); begin try frmCustInput := TfrmCustInput.Create(Application); with frmCustInput do begin FCOID := ''; fFlileFlag := self.fFlileFlag; if ShowModal = 1 then begin InitGrid(); end; end; finally frmCustInput.Free; end; end; procedure TfrmCustomer.TBuserClick(Sender: TObject); var FuserName: string; begin end; procedure TfrmCustomer.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin with ADOQueryTemp do begin Filtered := False; Close; SQL.Clear; sql.Add(' select * from BS_Company_contact where COID=' + quotedstr(Trim(CDS_1.FieldByName('COID').AsString))); Open; end; SCreateCDS(ADOQueryTemp, CDS_2); SInitCDSData(ADOQueryTemp, CDS_2); end; procedure TfrmCustomer.btnSaleserClick(Sender: TObject); var MSaleser, MSalesId: string; begin try frmUserSel := TfrmUserSel.Create(Application); with frmUserSel do begin Fdept := '业务'; if ShowModal = 1 then begin MSalesId := Trim(CDS_1.fieldbyname('UserID').AsString); MSaleser := Trim(CDS_1.fieldbyname('UserName').AsString); end; end; finally frmUserSel.Free; end; if MSalesId = '' then Exit; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update BS_Company set Saleser=' + quotedstr(trim(MSaleser))); sql.Add(' ,SalesId=' + quotedstr(trim(MSalesId))); sql.Add(' where COID=''' + Trim(CDS_1.fieldbyname('COID').AsString) + ''''); ExecSQL; end; initgrid(); end; procedure TfrmCustomer.FormCreate(Sender: TObject); begin inherited; FAuthority := trim(fParameters1); end; end.