unit U_frmContractListZS; 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; type TfrmContractListZS = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; ToolButton3: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; Label3: TLabel; Label4: TLabel; Label2: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; OrderNoM: TEdit; CustomerNoName: TEdit; JGFactoryName: TEdit; OrdPerson1: TEdit; MPRTCF: TEdit; PRTColor: TEdit; MPRTCodeName: TEdit; ConNo: TEdit; MPRTSpec: TEdit; OrdDefStr1: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column4: TcxGridDBColumn; v1OrderNo: TcxGridDBColumn; v1ConNo: TcxGridDBColumn; v1OrdDefStr1: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1OrdPerson1: TcxGridDBColumn; v1JGFactoryName: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1DeliveryDate: TcxGridDBColumn; v1CustomerNoName: TcxGridDBColumn; v1MPRTCodeName: TcxGridDBColumn; v1MPRTSpec: TcxGridDBColumn; v1MPRTCF: TcxGridDBColumn; v1MPRTMF: TcxGridDBColumn; v1MPRTKZ: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; PopupMenu1: TPopupMenu; N2: TMenuItem; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; 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 v1DlyDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure OrderNoMChange(Sender: TObject); procedure OrderNoMKeyPress(Sender: TObject; var Key: Char); private DQdate:TDateTime; procedure InitGrid(); procedure InitForm(); function DelData():Boolean; procedure InitGridFH(); { Private declarations } public FFInt,FCloth:Integer; { Public declarations } end; var frmContractListZS: TfrmContractListZS; implementation uses U_DataLink,U_Fun; {$R *.dfm} procedure TfrmContractListZS.FormDestroy(Sender: TObject); begin frmContractListZS:=nil; end; procedure TfrmContractListZS.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmContractListZS.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; DQdate:=SGetServerDate(ADOQueryTemp); end; procedure TfrmContractListZS.TBCloseClick(Sender: TObject); begin Close; if FCloth<>1 then WriteCxGrid('指示单列表10',Tv1,'生产指示单管理') else WriteCxGrid('指示单列表选择',Tv1,'生产指示单管理'); end; procedure TfrmContractListZS.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; if Trim(DParameters1)<>'高权限' then begin Parameters.ParamByName('WSql').Value:=' and A.Filler='''+Trim(DName)+''''; end else begin Parameters.ParamByName('WSql').Value:=''; end; Parameters.ParamByName('begdate').Value:=FormatDateTime('yyyy-MM-dd',BegDate.DateTime); Parameters.ParamByName('enddate').Value:=FormatDateTime('yyyy-MM-dd',enddate.DateTime+1); ExecSQL; Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmContractListZS.InitGridFH(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('exec Order_QryList :MainId,:WSql'); Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''' +' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''; Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmContractListZS.InitForm(); begin if FCloth<>1 then ReadCxGrid('指示单列表10',Tv1,'生产指示单管理') else ReadCxGrid('指示单列表选择',Tv1,'生产指示单管理'); BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); InitGrid(); end; procedure TfrmContractListZS.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; function TfrmContractListZS.DelData():Boolean; begin end; procedure TfrmContractListZS.TBRafreshClick(Sender: TObject); begin if FFInt=1 then begin InitGridFH(); end else begin InitGrid(); end; end; procedure TfrmContractListZS.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmContractListZS.TBTPClick(Sender: TObject); var FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; begin end; procedure TfrmContractListZS.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmContractListZS.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmContractListZS.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 TfrmContractListZS.v1DlyDateCustomDrawCell( 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]-SGetServerDate10(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then ACanvas.Brush.Color:=clYellow else if (AViewInfo.GridRecord.Values[id])-(SGetServerDate10(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 TfrmContractListZS.N1Click(Sender: TObject); var fPrintFile:string; Porderno:string; begin if Order_Main.IsEmpty then Exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\生产指示单10.rmf' ; SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); if FileExists(fPrintFile) then begin //RMVariables['begindate']:=begindate.DateTime; //RMVariables['enddate']:=enddate.DateTime; //RMVariables['printtime']:=Now; //RMVariables['printer']:=Trim(gUserName); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\生产指示单10.rmf'),'提示',0); end; SDofilter(ADOQueryMain,''); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); Order_Main.Locate('ordernoM',Porderno,[]); end; procedure TfrmContractListZS.N2Click(Sender: TObject); var fPrintFile:string; Porderno:string; begin if Order_Main.IsEmpty then Exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\生产指示单.rmf' ; SDofilter(ADOQueryMain,' OrderNoM='''+Trim(Order_Main.fieldbyname('OrderNoM').AsString)+''''); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); Porderno:=Trim(Order_Main.fieldbyname('OrderNoM').AsString); if FileExists(fPrintFile) then begin //RMVariables['begindate']:=begindate.DateTime; //RMVariables['enddate']:=enddate.DateTime; //RMVariables['printtime']:=Now; //RMVariables['printer']:=Trim(gUserName); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\生产指示单.rmf'),'提示',0); end; SDofilter(ADOQueryMain,''); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); Order_Main.Locate('ordernoM',Porderno,[]); end; procedure TfrmContractListZS.ToolButton3Click(Sender: TObject); begin ModalResult:=1; end; procedure TfrmContractListZS.Tv1CellClick( Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin ToolButton3.Click; end; procedure TfrmContractListZS.OrderNoMChange(Sender: TObject); begin if ADOQueryMain.Active=False then Exit; SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); end; procedure TfrmContractListZS.OrderNoMKeyPress(Sender: TObject; var Key: Char); var fsj:string; begin if Key=#13 then begin if Length(Trim(OrderNoM.Text))<4 then Exit; fsj:='%'+Trim(OrderNoM.Text)+'%'; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; if Trim(DParameters1)<>'高权限' then begin Parameters.ParamByName('WSql').Value:=' and A.Filler='''+Trim(DName)+''''; end else begin Parameters.ParamByName('WSql').Value:=' and A.OrderNo like '''+fsj+''''; end; Parameters.ParamByName('begdate').Value:='1900-01-01'; Parameters.ParamByName('enddate').Value:='2050-01-01'; ExecSQL; Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; end; end.