unit U_Factory; 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, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList, cxPC; type TfrmFactory = 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; DS_1: TDataSource; CDS_1: TClientDataSet; btnAdd: TToolButton; v2Column6: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column2: TcxGridDBColumn; Label1: TLabel; CoCode: TEdit; btnEdit: TToolButton; v2Column12: TcxGridDBColumn; CoAbbrName: TEdit; Label4: TLabel; v2Column15: TcxGridDBColumn; CDS_2: TClientDataSet; DS_2: TDataSource; v2Column3: TcxGridDBColumn; Label5: TLabel; v2Column4: TcxGridDBColumn; btnFollower: TToolButton; v2Column5: TcxGridDBColumn; Panel2: TPanel; GPM_1: TcxGridPopupMenu; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; v3Column3: TcxGridDBColumn; cxGridDBColumn1: TcxGridDBColumn; Tv2Column1: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; GPM_2: TcxGridPopupMenu; Tv2Column2: TcxGridDBColumn; Tv2Column3: TcxGridDBColumn; FactType: TEdit; btnChk: TToolButton; btnReChk: TToolButton; cxTabControl1: TcxTabControl; ToolButton1: TToolButton; ToolButton8: 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 btnFollowerClick(Sender: TObject); procedure FactTypeChange(Sender: TObject); procedure Tv2Column2PropertiesEditValueChanged(Sender: TObject); procedure Tv2Column3PropertiesEditValueChanged(Sender: TObject); procedure CoCodeKeyPress(Sender: TObject; var Key: Char); procedure btnChkClick(Sender: TObject); procedure btnReChkClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton8Click(Sender: TObject); procedure CoCodeChange(Sender: TObject); private { Private declarations } procedure InitGrid(); procedure SetStatus(); public FAuthority: string; end; var frmFactory: TfrmFactory; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_FactoryInput, U_UserSel, U_AttachmentUpload; {$R *.dfm} procedure TfrmFactory.SetStatus(); begin btnFollower.Enabled := false; //指定 btnChk.Enabled := false; //审核 btnReChk.Enabled := false; //撤销 btnAdd.Enabled := false; //新增 btnEdit.Enabled := false; //修改 TBDel.Enabled := false; //删除 if Trim(FAuthority) = '管理' then begin btnFollower.Enabled := true; btnAdd.Enabled := true; case cxTabControl1.TabIndex of 0: begin btnEdit.Enabled := true; TBDel.Enabled := true; btnChk.Enabled := true; end; 1: begin btnReChk.Enabled := true; end; 2: begin end; end; end else begin btnAdd.Enabled := true; case cxTabControl1.TabIndex of 0: begin btnEdit.Enabled := true; TBDel.Enabled := true; end; 1: begin end; 2: begin end; end; end; end; procedure TfrmFactory.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 CoType=''供应商'' ' + (WSql)); case cxTabControl1.TabIndex of 0: begin sql.Add(' and status=''0'''); //已审核是1,未审核是0 end; 1: begin sql.Add(' and status=''1'''); end; 2: begin end; end; SQL.Add(' ORDER BY CoCode '); Open; end; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); CDS_1.Locate('CoCode', FCoCode, []); finally ADOQueryMain.EnableControls; end; end; procedure TfrmFactory.FormDestroy(Sender: TObject); begin inherited; frmFactory := nil; end; procedure TfrmFactory.FactTypeChange(Sender: TObject); begin InitGrid(); end; procedure TfrmFactory.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmFactory.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmFactory.TBDelClick(Sender: TObject); begin if CDS_1.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; while CDS_1.Locate('SSel', true, []) do 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; CDS_1.Delete; end; end; procedure TfrmFactory.FormShow(Sender: TObject); begin inherited; FAuthority := self.fParameters1; ReadCxGrid(trim(self.Caption) + 'TV1', Tv1, '供应商管理'); ReadCxGrid(trim(self.Caption) + 'TV2', Tv2, '供应商管理'); TV1.GetColumnByFieldName('ssel').Visible := False; TV1.GetColumnByFieldName('ssel').Hidden := True; SetStatus(); InitGrid(); end; procedure TfrmFactory.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmFactory.ToolButton1Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'TV1', Tv1, '供应商管理'); WriteCxGrid(trim(self.Caption) + 'TV2', Tv2, '供应商管理'); end; procedure TfrmFactory.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 TfrmFactory.CoCodeChange(Sender: TObject); begin btnFind.Click; end; procedure TfrmFactory.CoCodeKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmFactory.cxTabControl1Change(Sender: TObject); begin SetStatus(); TBRafresh.Click; end; procedure TfrmFactory.btnEditClick(Sender: TObject); begin if CDS_1.IsEmpty then exit; try frmFactoryInput := TfrmFactoryInput.Create(Application); with frmFactoryInput do begin FCOID := Trim(Self.CDS_1.fieldbyname('COID').AsString); // CoCode.ReadOnly:=True; if ShowModal = 1 then begin TBRafresh.Click; end; end; finally frmFactoryInput.Free; end; end; procedure TfrmFactory.btnAddClick(Sender: TObject); begin try frmFactoryInput := TfrmFactoryInput.Create(Application); with frmFactoryInput do begin FCOID := ''; if ShowModal = 1 then begin InitGrid(); end; end; finally frmFactoryInput.Free; end; end; procedure TfrmFactory.TBuserClick(Sender: TObject); var FuserName: string; begin end; procedure TfrmFactory.Tv2Column2PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); if Trim(mvalue) = '' then begin mvalue := '0'; end; with CDS_1 do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update BS_Company set ' + FFieldName + '=' + quotedstr(Trim(mvalue))); sql.Add('where CoID=' + quotedstr(Trim(CDS_1.fieldbyname('CoID').AsString))); ExecSQL; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmFactory.Tv2Column3PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv2.Controller.FocusedColumn.DataBinding.FilterFieldName); if Trim(mvalue) = '' then begin mvalue := '0'; end; with CDS_1 do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update BS_Company set ' + FFieldName + '=' + quotedstr(Trim(mvalue))); sql.Add('where CoID=' + quotedstr(Trim(CDS_1.fieldbyname('CoID').AsString))); ExecSQL; end; tv2.Controller.EditingController.ShowEdit(); end; procedure TfrmFactory.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin with ADOQueryTemp do begin 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 TfrmFactory.btnFollowerClick(Sender: TObject); var MFollower, MFollowId: string; begin MFollower := ''; MFollowId := ''; try frmUserSel := TfrmUserSel.Create(Application); with frmUserSel do begin if ShowModal = 1 then begin while frmUserSel.CDS_1.Locate('SSel', True, []) do begin MFollowId := MFollowId + ',' + Trim(CDS_1.FieldByName('UserID').AsString); MFollower := MFollower + ',' + Trim(CDS_1.FieldByName('UserName').AsString); frmUserSel.CDS_1.Delete; end; end; end; finally frmUserSel.Free; end; MFollowId := copy(MFollowId, 1, Length(MFollowId) - 1); MFollower := copy(MFollower, 1, Length(MFollower) - 1); while CDS_1.Locate('SSel', True, []) do begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update BS_Company set FollowId=' + quotedstr(trim(MFollowId))); sql.Add(' ,Follower=' + quotedstr(trim(MFollower))); sql.Add(' where COID=''' + Trim(CDS_1.fieldbyname('COID').AsString) + ''''); ExecSQL; end; CDS_1.Delete; end; InitGrid(); end; procedure TfrmFactory.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 TfrmFactory.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 TfrmFactory.ToolButton8Click(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; end.