unit U_ContractListSel; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC, cxButtonEdit, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator, dxDateRanges, dxBarBuiltInMenu, U_BaseHelp, System.ImageList, Vcl.ImgList, U_BaseInput; type TfrmContractListSel = class(TfrmBaseHelp) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; PopupMenu1: TPopupMenu; N2: TMenuItem; ADOQueryPrint: TADOQuery; Panel1: TPanel; Label1: TLabel; Label4: TLabel; Label8: TLabel; Label9: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; BuyName: TEdit; MPRTCodeName: TEdit; ConNo: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; cxGrid1: TcxGrid; TV1: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; v1Column5: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Label2: TLabel; BuyConNo: TEdit; Label3: TLabel; V2Column1: TcxGridDBColumn; V2Column4: TcxGridDBColumn; V2Column2: TcxGridDBColumn; V2Column3: TcxGridDBColumn; V2Column5: TcxGridDBColumn; N1: TMenuItem; V1Column1: TcxGridDBColumn; ToolButton2: TToolButton; cxTabControl1: TcxTabControl; V1Column2: TcxGridDBColumn; TV1Column1: TcxGridDBColumn; TV1Column2: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBTPClick(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure N1Click(Sender: TObject); procedure BuyNameChange(Sender: TObject); procedure ConNoKeyPress(Sender: TObject; var Key: Char); procedure cxTabControl1Change(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure N2Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); private DQdate: TDateTime; fuserName: string; procedure InitGrid(); procedure InitForm(); function DelData(): Boolean; { Private declarations } public FFInt, FCloth: Integer; canshu1, FConNo, FGSTT: string; { Public declarations } end; var frmContractListSel: TfrmContractListSel; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_FjList_RZ; {$R *.dfm} procedure TfrmContractListSel.FormDestroy(Sender: TObject); begin inherited; frmContractListSel := nil; end; procedure TfrmContractListSel.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmContractListSel.FormCreate(Sender: TObject); begin inherited; cxgrid1.Align := alClient; DQdate := SGetServerDate(ADOQueryTemp); canshu1 := trim(DParameters1); end; procedure TfrmContractListSel.TBCloseClick(Sender: TObject); begin Close; writeCxGrid(self.Caption + tv1.Name, Tv1, '合同管理'); end; procedure TfrmContractListSel.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.Add('select A.* ,B.* '); sql.Add(' ,CPSL=[dbo].[F_YP_Get_SL](B.SubID) '); sql.Add(' ,CPXS=[dbo].[F_YP_Get_XS](B.SubID) '); sql.Add(' from SalesContract_Main A inner join SalesContract_Sub B on A.MainId=B.MainId '); SQL.Add('where A.OrdDate>=''' + FormatDateTime('yyyy-MM-dd', BegDate.DateTime) + ''''); SQL.Add('and A.OrdDate<''' + FormatDateTime('yyyy-MM-dd', enddate.DateTime + 1) + ''''); // SQL.Add(' and isnull(A.status,''0'')=''1'' '); sql.Add(' and A.SCMType in (''内销'',''外销'') '); if trim(FConNo) <> '' then SQL.Add(' and A.ConNo=' + quotedstr(trim(FConNo))); case cxTabControl1.TabIndex of 0: begin SQL.Add('AND NOT EXISTS ( select X.MainId from JYOrder_Sub X where X.ConSubId=B.SubId ) '); end; 1: begin SQL.Add('AND EXISTS ( select X.MainId from JYOrder_Sub X where X.ConSubId=B.SubId ) '); end; end; // ShowMessage(SQL.Text); Open; end; SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmContractListSel.InitForm(); begin readCxGrid(self.Caption + tv1.Name, Tv1, '合同管理'); EndDate.DateTime := SGetServerDate(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 90; InitGrid(); end; procedure TfrmContractListSel.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; function TfrmContractListSel.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrderCon_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrderCon_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmContractListSel.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmContractListSel.FormShow(Sender: TObject); begin inherited; InitForm(); end; procedure TfrmContractListSel.TBTPClick(Sender: TObject); var FQty, FQty1, FMxQty, FPQty, FMxQtyS, FPQtyS: string; begin end; procedure TfrmContractListSel.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmContractListSel.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmContractListSel.Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); var id, id10: Integer; begin {try if Tv1.GroupedItemCount=0 then begin Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; if Trim(VarToStr(ARecord.Values[id]))='' then Exit; if Id<0 then Exit; if ARecord.Values[id10]='完成' then exit; if (ARecord.Values[id]-DQdate)>=4 then Exit; if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then AStyle:=DataLink_.QHuangSe else if ARecord.Values[id]-DQdate<0 then begin AStyle:=DataLink_OrderManage.FenHongS; end; end else begin end; except end; } end; procedure TfrmContractListSel.v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; Id10:=TV1.GetColumnByFieldName('SubStatus').Index; if Id<0 then Exit; if AViewInfo.GridRecord.Values[Id10]='完成' then Exit; if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; if ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then ACanvas.Brush.Color:=clYellow else if (AViewInfo.GridRecord.Values[id])-(SGetServerDate(ADOQueryTemp)<0) then begin ACanvas.Brush.Color:=clRed; end; begin ACanvas.Brush.Color:=clRed; end else if AViewInfo.GridRecord.Values[Id]='Purple' then begin ACanvas.Brush.Color:=clPurple; end else if AViewInfo.GridRecord.Values[Id]='Olive' then begin ACanvas.Brush.Color:=clOlive; end else if AViewInfo.GridRecord.Values[Id]='Teal' then begin ACanvas.Brush.Color:=clTeal; end else if AViewInfo.GridRecord.Values[Id]='Background' then begin ACanvas.Brush.Color:=clBackground; end; } end; procedure TfrmContractListSel.N1Click(Sender: TObject); begin SelOKNo(Order_Main, false); end; procedure TfrmContractListSel.BuyNameChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; procedure TfrmContractListSel.ConNoKeyPress(Sender: TObject; var Key: Char); begin // if Key = #13 then // begin // if Length(Tedit(Sender).Text) < 1 then // Exit; // try // ADOQueryMain.DisableControls; // with ADOQueryMain do // begin // Filtered := False; // Close; // SQL.Clear; // sql.Add('select A.*,A.ConNo ConNoM '); // SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); // SQL.Add(',ConMoney=(select Sum(PRTOrderQty*PRTPrice) from JYOrderCon_Sub B where B.MainId=A.MainId)'); // SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); // SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); // SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)'); // sql.Add(',ISSC=cast((case when isnull((select count(WBID) from TP_File X where X.WBID=A.maiNID and X.TFType=''合同''),0)>0 then 1 else 0 end) as bit)'); // sql.Add(' from JYOrderCon_Main A '); // SQL.Add('where OrdDate>=''' + '1899-01-01' + ''''); // SQL.Add('and OrdDate<''' + '2050-01-01' + ''''); // sql.Add(' and MPRTType=''内销'' '); // if Trim(DParameters1) <> '高权限' then // begin // sql.Add('and A.Filler=''' + Trim(DName) + ''''); // end; // // sql.Add(' and ConNo like '''+'%'+Trim(ConNoM.Text)+'%'+''''); // sql.Add(' and ' + Tedit(Sender).Name + ' like ' + quotedstr(trim('%' + trim(Tedit(Sender).Text) + '%'))); // Open; // end; // SCreateCDS(ADOQueryMain, Order_Main); // SInitCDSData(ADOQueryMain, Order_Main); // finally // ADOQueryMain.EnableControls; // end; // end; end; procedure TfrmContractListSel.cxTabControl1Change(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmContractListSel.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('status').Index] = '2' then ACanvas.Brush.Color := clLime; end; procedure TfrmContractListSel.N2Click(Sender: TObject); begin SelOKNo(Order_Main, true); end; procedure TfrmContractListSel.ToolButton2Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; ModalResult := 1; end; end.