unit U_ContractListXF_CX; 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, cxTextEdit, cxCurrencyEdit, RM_e_Graphic, RM_e_Jpeg; type TfrmContractList_XF_CX = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; v1YWY: TcxGridDBColumn; v1XHNo: TcxGridDBColumn; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; v1FLZQty: TcxGridDBColumn; PopupMenu1: TPopupMenu; N2: TMenuItem; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; PopupMenu2: TPopupMenu; N11: TMenuItem; N21: TMenuItem; N31: TMenuItem; Panel1: TPanel; Label8: TLabel; Label9: TLabel; Label12: TLabel; Label13: TLabel; MPRTCodeName: TEdit; YWY: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; cxTabControl1: TcxTabControl; ADOQuerySub: TADOQuery; DataSource2: TDataSource; Panel4: TPanel; Label14: TLabel; Panel10: TPanel; Image2: TImage; Button1: TButton; RadioGroup1: TRadioGroup; RMJPEGExport1: TRMJPEGExport; Label7: TLabel; GCName: TEdit; v1GCName: TcxGridDBColumn; order_Sub: TClientDataSet; v1FKType: TcxGridDBColumn; vXFBFB: TcxGridDBColumn; vNote: TcxGridDBColumn; v1KSFee: TcxGridDBColumn; Label1: TLabel; Label3: TLabel; TBPrint: TToolButton; v1GLQty: TcxGridDBColumn; Note: TMemo; FKType: TMemo; v1QDDate: TcxGridDBColumn; v1SYFLQty: TcxGridDBColumn; Label2: TLabel; BDays: TComboBox; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBExportClick(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 N2Click(Sender: TObject); procedure CustomerNoChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Image2Click(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure v1SYFLQtyPropertiesEditValueChanged(Sender: TObject); procedure GCNameKeyPress(Sender: TObject; var Key: Char); private DQdate:TDateTime; procedure InitGrid(); procedure InitForm(); function DelData():Boolean; procedure InitGridFH(); procedure SetStatus(); procedure InitSub(); { Private declarations } public FFInt,FCloth:Integer; canshu1:string; { Public declarations } end; var frmContractList_XF_CX: TfrmContractList_XF_CX; implementation uses U_DataLink,U_ConInPutXF,U_Fun,U_ZDYHelp,U_SKCR_CX,U_FjList_RZ; {$R *.dfm} procedure TfrmContractList_XF_CX.InitSub(); begin IF Order_Main.IsEmpty then exit; with ADOQuerySub do begin close; sql.Clear; sql.Add('select * from JYOrderCon_sub '); sql.Add('where mainID ='+quotedstr((Order_Main.fieldbyname('mainID').AsString))); open; end; SCreateCDS20(ADOQuerySub,Order_Sub); SInitCDSData20(ADOQuerySub,Order_Sub); end; procedure TfrmContractList_XF_CX.SetStatus(); begin end; procedure TfrmContractList_XF_CX.FormDestroy(Sender: TObject); begin frmContractList_XF_CX:=nil; end; procedure TfrmContractList_XF_CX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmContractList_XF_CX.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); DQdate:=SGetServerDate(ADOQueryTemp); cxTabControl1.TabIndex:=0; canshu1:=trim(DParameters1); end; procedure TfrmContractList_XF_CX.TBCloseClick(Sender: TObject); begin Close; if FCloth<>1 then WriteCxGrid('订单合同列表',Tv1,'生产指示单管理') else WriteCxGrid('订单合同列表选择',Tv1,'生产指示单管理'); end; procedure TfrmContractList_XF_CX.InitGrid(); var i:Integer; begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.*,Cast(0 as int) XHNo '); SQL.Add(',FLZQty=(select Sum(FLQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); sql.add(',XFBFB=(select Top 1 XFBFB from JYOrderCon_Sub B where B.MainId=A.MainId)'); sql.add(',KSFee=(select Top 1 KSFee from JYOrderCon_Sub B where B.MainId=A.MainId)'); sql.Add(' from JYOrderCon_Main A '); SQL.Add('where isnull(A.status,''0'')<>''3'' '); if cxTabControl1.TabIndex<>4 then sql.Add(' and isnull(A.ConType,'''')='''+Trim(cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption)+''''); sql.Add(' order by A.QDDate'); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); with Order_Main do begin first; i:=1; while not Eof do begin Edit; FieldByName('XHNo').AsInteger:=i; i:=i+1; next; end; end; finally; ADOQueryMain.EnableControls; end; end; procedure TfrmContractList_XF_CX.InitGridFH(); begin end; procedure TfrmContractList_XF_CX.InitForm(); begin if FCloth<>1 then ReadCxGrid('订单合同列表',Tv1,'生产指示单管理') else ReadCxGrid('订单合同列表选择',Tv1,'生产指示单管理'); InitGrid(); end; procedure TfrmContractList_XF_CX.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 TfrmContractList_XF_CX.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)+''''); sql.Add('delete JYOrderCon_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' '+quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(','+quotedstr(trim(self.Caption))); sql.Add(','+quotedstr(trim('外销合同删除'))); sql.Add(','+quotedstr(trim('合同号:'+trim(Order_Main.FieldByName('conNo').AsString)))); sql.Add(','+quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('数据删除异常!','提示',0); end; end; procedure TfrmContractList_XF_CX.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; SelExportData(Tv1,ADOQueryMain,'合同列表'); end; procedure TfrmContractList_XF_CX.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmContractList_XF_CX.FormShow(Sender: TObject); begin SetStatus(); InitForm(); end; procedure TfrmContractList_XF_CX.TBTPClick(Sender: TObject); var FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; begin end; procedure TfrmContractList_XF_CX.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmContractList_XF_CX.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmContractList_XF_CX.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 TfrmContractList_XF_CX.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]-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 TfrmContractList_XF_CX.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 TfrmContractList_XF_CX.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 TfrmContractList_XF_CX.CustomerNoChange(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 TfrmContractList_XF_CX.cxTabControl1Change(Sender: TObject); begin SetStatus(); if cxTabControl1.TabIndex>1 then begin if cxTabControl1.TabIndex<4 then begin BDays.Text:='60'; end; end; TBRafresh.Click; end; procedure TfrmContractList_XF_CX.Image2Click(Sender: TObject); begin Panel4.Visible:=False; end; procedure TfrmContractList_XF_CX.TBPrintClick(Sender: TObject); var fPrintFile:string; EngMoney:string; begin if Order_Main.IsEmpty then Exit; Button1.Click; end; procedure TfrmContractList_XF_CX.Button1Click(Sender: TObject); var fPrintFile:string; EngMoney:string; FimageFile: string; begin FimageFile:=''; if Order_Main.IsEmpty then Exit; if radiogroup1.ItemIndex=0 then fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\外销合同.rmf' ; with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select A.*,B.* '); sql.Add(',SumFLQty=(select Sum(C.FLQty) from JYOrderCon_Sub C where C.Mainid=A.Mainid)'); sql.Add(' from JYOrderCon_Main A inner join JYOrderCon_Sub B on A.MainId=B.MainId '); sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); Open; end; SCreateCDS20(ADOQueryPrint,CDS_Print); SInitCDSData20(ADOQueryPrint,CDS_Print); if FileExists(fPrintFile) then begin RMVariables['ImageFile']:=trim(FimageFile); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\外销合同.rmf'),'提示',0); end; end; procedure TfrmContractList_XF_CX.Tv1FocusedRecordChanged( Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin if Order_Main.IsEmpty then Exit; Note.Text:=Trim(Order_Main.fieldbyname('Note').AsString); FKType.Text:=Trim(Order_Main.fieldbyname('FKType').AsString); end; procedure TfrmContractList_XF_CX.v1SYFLQtyPropertiesEditValueChanged( Sender: TObject); var mavlue: string; begin mavlue:=TcxTextEdit(Sender).EditingText; if mavlue='' then mavlue:='0'; with Order_Main do begin edit; FieldByName('SYFLQty').Value:=mavlue; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update JYOrderCon_Main set '); sql.Add('SYFLQty='''+trim(mavlue)+''' '); sql.Add('where mainid='''+trim(Order_Main.fieldbyname('Mainid').AsString)+''''); execsql; end; end; procedure TfrmContractList_XF_CX.GCNameKeyPress(Sender: TObject; var Key: Char); var i:Integer; begin if Key=#13 then begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.*,Cast(0 as int) XHNo '); SQL.Add(',FLZQty=(select Sum(FLQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); sql.add(',XFBFB=(select Top 1 XFBFB from JYOrderCon_Sub B where B.MainId=A.MainId)'); sql.add(',KSFee=(select Top 1 KSFee from JYOrderCon_Sub B where B.MainId=A.MainId)'); sql.Add(' from JYOrderCon_Main A '); SQL.Add('where isnull(A.status,''0'')<>''3'' and A.GCName like '''+'%'+trim(GCName.Text)+'%'+''' '); if cxTabControl1.TabIndex<>4 then sql.Add(' and isnull(A.ConType,'''')='''+Trim(cxTabControl1.Tabs[cxTabControl1.TabIndex].Caption)+''''); sql.Add(' order by A.QDDate'); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); with Order_Main do begin first; i:=1; while not Eof do begin Edit; FieldByName('XHNo').AsInteger:=i; i:=i+1; next; end; end; finally; ADOQueryMain.EnableControls; end; end; end; end.