unit U_GCFactory; 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, cxGridBandedTableView, cxGridDBBandedTableView, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, U_BaseList, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu; type FdDy = record inc: integer; //客户端套接字句柄 FDdys: string[32]; //客户端套接字 FdDysName: string[32]; //客户端套接字 end; TfrmGCFactory = class(TFrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; ADOQueryTemp: TADOQuery; ADOQueryCmd: TADOQuery; Panel1: TPanel; ToolButton2: TToolButton; ADOQueryMain: TADOQuery; RM1: TRMGridReport; RMDB_Main: TRMDBDataSet; Label3: TLabel; CoName: TEdit; cxGridPopupMenu2: TcxGridPopupMenu; DS_HZ: TDataSource; CDS_HZ: TClientDataSet; OpenDialog1: TOpenDialog; cxGrid1: TcxGrid; TV1: TcxGridDBBandedTableView; cxGridDBBandedColumn51: TcxGridDBBandedColumn; cxGridDBBandedColumn52: TcxGridDBBandedColumn; cxGridDBBandedColumn56: TcxGridDBBandedColumn; cxGridDBBandedColumn57: TcxGridDBBandedColumn; cxGridDBBandedColumn59: TcxGridDBBandedColumn; cxGridDBBandedColumn61: TcxGridDBBandedColumn; cxGridDBBandedColumn62: TcxGridDBBandedColumn; cxGridDBBandedColumn63: TcxGridDBBandedColumn; cxGridDBBandedColumn64: TcxGridDBBandedColumn; cxGridDBBandedColumn81: TcxGridDBBandedColumn; cxGridDBBandedColumn87: TcxGridDBBandedColumn; V1Column6: TcxGridDBBandedColumn; V1Column4: TcxGridDBBandedColumn; V1Column5: TcxGridDBBandedColumn; V1Column10: TcxGridDBBandedColumn; cxGridLevel2: TcxGridLevel; V1Column1: TcxGridDBBandedColumn; ToolButton3: TToolButton; ToolButton1: TToolButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure CoNameChange(Sender: TObject); procedure TBuserClick(Sender: TObject); procedure cxGridDBBandedColumn64PropertiesEditValueChanged(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); private dFdDy: array[0..30] of FdDy; { Private declarations } procedure InitGrid(); procedure InsertMG(MCoid: string); public end; var frmGCFactory: TfrmGCFactory; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_ZdyAttachGYS; {$R *.dfm} procedure TfrmGCFactory.InsertMG(MCoid: string); var MaxId: string; begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select A.* '); sql.Add(' from Company_GCFY A '); sql.Add(' where FromCoID=' + quotedstr(Trim(MCoid))); Open; end; if ADOQueryTemp.isempty then begin if GetLSNo(ADOQueryCmd, MaxId, 'CO', 'Company', 4, 1) = False then begin Application.MessageBox('取最大号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add(' insert into Company_GCFY(FromCoID,FYID) '); sql.Add(' values(' + quotedstr(Trim(MCoid)) + ',' + quotedstr(Trim(MaxId)) + ') '); ExecSQL; end; with CDS_HZ do begin Edit; FieldByName('FYID').Value := Trim(MaxId); Post; end; end; end; procedure TfrmGCFactory.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; SQL.Clear; sql.Add(' select A.*,B.* '); sql.Add(' from Company A inner join Company_GCFY B on A.COID=B.FromCoID '); sql.Add(' where CoType=''供应商'' and Valid=''Y'' '); Open; end; SCreateCDS(ADOQueryMain, CDS_HZ); SInitCDSData(ADOQueryMain, CDS_HZ); finally ADOQueryMain.EnableControls; end; end; procedure TfrmGCFactory.FormDestroy(Sender: TObject); begin inherited; frmGCFactory := nil; end; procedure TfrmGCFactory.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmGCFactory.TBCloseClick(Sender: TObject); begin WriteCxBandedGrid(trim(self.caption), Tv1, '供应商管理'); Close; end; procedure TfrmGCFactory.FormShow(Sender: TObject); begin inherited; ReadCxBandedGrid(trim(self.Caption), Tv1, '供应商管理管理'); InitGrid(); end; procedure TfrmGCFactory.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmGCFactory.ToolButton2Click(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_HZ); SInitCDSData(ADOQueryMain, CDS_HZ); end; end; procedure TfrmGCFactory.CoNameChange(Sender: TObject); begin ToolButton2.Click; end; procedure TfrmGCFactory.TBuserClick(Sender: TObject); var FuserName: string; begin end; procedure TfrmGCFactory.cxGridDBBandedColumn64PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); if mvalue = '' then mvalue := '0'; with CDS_HZ do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update Company_GCFY set ' + FFieldName + '=' + (Trim(mvalue))); sql.Add('where FYID=' + quotedstr(Trim(CDS_HZ.fieldbyname('FYID').AsString))); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmGCFactory.ToolButton3Click(Sender: TObject); begin try frmZdyAttachGYS := TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal = 1 then begin InsertMG(Trim(CDS_HZ.fieldbyname('COID').AsString)); end; end; finally frmZdyAttachGYS.Free; end; InitGrid(); end; procedure TfrmGCFactory.ToolButton1Click(Sender: TObject); begin if CDS_HZ.IsEmpty then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if Trim(CDS_HZ.fieldbyname('COID').AsString) <> '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('delete Company_GCFY where FYID=''' + Trim(CDS_HZ.fieldbyname('FYID').AsString) + ''''); ExecSQL; end; end; CDS_HZ.Delete; end; end.