unit U_OrderLRList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, MovePanel, cxButtonEdit, cxCalendar, cxPC, cxCheckBox, Menus, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport; type TfrmOrderLRList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Panel1: TPanel; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; Label1: TLabel; Label2: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CDS_Main: TClientDataSet; Label8: TLabel; MPRTKZ: TEdit; Label9: TLabel; MPRTMF: TEdit; Label7: TLabel; CPType: TComboBox; MovePanel2: TMovePanel; Label10: TLabel; Label11: TLabel; Label12: TLabel; YWY: TEdit; OrdPerson1: TEdit; orderNo: TEdit; Label5: TLabel; Label3: TLabel; MPRTCodeName: TEdit; Label13: TLabel; CustomerNoName: TEdit; conNo: TEdit; Label4: TLabel; KHCONNO: TEdit; Label15: TLabel; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1OrderNo: TcxGridDBColumn; v1ConNo: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1CustomerNoName: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1DeliveryDate: TcxGridDBColumn; v1MPRTCodeName: TcxGridDBColumn; v1MPRTSpec: TcxGridDBColumn; v1MPRTMF: TcxGridDBColumn; v1MPRTKZ: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column8: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Column4: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column20: TcxGridDBColumn; ADOQuerySub: TADOQuery; CDS_Sub: TClientDataSet; DataSource2: TDataSource; cxGridPopupMenu2: TcxGridPopupMenu; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; v2Column1: TcxGridDBColumn; v2Column2: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column4: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v2Column7: TcxGridDBColumn; v2Column8: TcxGridDBColumn; v2Column9: TcxGridDBColumn; v2Column10: TcxGridDBColumn; v2Column11: TcxGridDBColumn; v2Column12: TcxGridDBColumn; Label6: TLabel; Edit1: TEdit; Button1: TButton; v1SSel: TcxGridDBColumn; v1Column21: TcxGridDBColumn; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; ADOQuery1: TADOQuery; ADOQuery2: TADOQuery; ADOQuery3: TADOQuery; RM1: TRMGridReport; RMDBDataSet3: TRMDBDataSet; RMDBDataSet1: TRMDBDataSet; RMDBDataSet2: TRMDBDataSet; v2Column13: TcxGridDBColumn; v2Column14: TcxGridDBColumn; RMDBDataSet4: TRMDBDataSet; ADOQuery4: TADOQuery; v1Column22: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v1Column24: TcxGridDBColumn; v1Column25: TcxGridDBColumn; v1Column26: TcxGridDBColumn; v2Column15: TcxGridDBColumn; v2Column16: TcxGridDBColumn; v2Column17: TcxGridDBColumn; RMDBDataSet5: TRMDBDataSet; ADOQuery5: TADOQuery; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure MPRTCodeNameChange(Sender: TObject); procedure PRTColorChange(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Button1Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private procedure InitGrid(); { Private declarations } public { Public declarations } end; var frmOrderLRList: TfrmOrderLRList; implementation uses U_DataLink,U_Fun,U_ZDYHelp; {$R *.dfm} procedure TfrmOrderLRList.FormDestroy(Sender: TObject); begin frmOrderLRList:=nil; end; procedure TfrmOrderLRList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmOrderLRList.FormCreate(Sender: TObject); begin cxGrid1.Align:=alClient; EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); BegDate.DateTime:=EndDate.DateTime-90; end; procedure TfrmOrderLRList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; Filtered:=False; sql.Add(' exec P_Get_Order_lr'); sql.Add(' @begdate='''+formatdateTime('yyyy-MM-dd',begdate.DateTime)+''''); sql.Add(',@enddate='''+formatdateTime('yyyy-MM-dd',enddate.DateTime+1)+''''); Open; end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmOrderLRList.TBRafreshClick(Sender: TObject); begin //BegDate.SetFocus; MovePanel2.Visible:=True; MovePanel2.Refresh; InitGrid(); MovePanel2.Visible:=False; end; procedure TfrmOrderLRList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); end; end; procedure TfrmOrderLRList.TBCloseClick(Sender: TObject); begin WriteCxGrid(self.Caption+tv1.Name+'1',Tv1); WriteCxGrid(self.Caption+tv2.Name+'1',Tv2); Close; end; procedure TfrmOrderLRList.FormShow(Sender: TObject); begin ReadCxGrid(self.Caption+tv1.Name+'1',Tv1); ReadCxGrid(self.Caption+tv2.Name+'1',Tv2); end; procedure TfrmOrderLRList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel(self.Caption,cxGrid1); end; procedure TfrmOrderLRList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2)); SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); end; end; procedure TfrmOrderLRList.MPRTCodeNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmOrderLRList.PRTColorChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmOrderLRList.cxTabControl1Change(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmOrderLRList.Tv1FocusedRecordChanged( Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); var FMainId:string; begin // if CDS_Main.IsEmpty then Exit; // FMainId:=Trim(CDS_Main.FieldByName('MainId').AsString); // try // ADOQuerySub.DisableControls; // with ADOQuerySub do // begin // Close; // SQL.Clear; // sql.Add('EXEC P_Get_Order_LR1'); // sql.Add('@MainID='+QuotedStr(FMainId)); // sql.Add(',@flag='+QuotedStr('0')); // Open; // end; // SCreateCDS20(ADOQuerySub,CDS_Sub); // SInitCDSData20(ADOQuerySub,CDS_Sub); // finally // ADOQuerySub.EnableControls; // end; end; procedure TfrmOrderLRList.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in[#8,#127,'.','0'..'9']) then Key:=#0; end; procedure TfrmOrderLRList.Button1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel',True,[])=False then begin Application.MessageBox('没有选择数据!','提示',0); Exit; end; if Trim(Edit1.Text)='' then Exit; if Trim(Edit1.Text)='0' then begin Application.MessageBox('计算汇率不能为0!','提示',0); Exit; end; CDS_Main.DisableControls; with CDS_Main do begin while Locate('SSel',True,[]) do begin with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('update JYOrder_Main set LRJSHuiLv='+QuotedStr(Trim(Edit1.Text))); SQL.Add('where MainId='+QuotedStr(Trim(CDS_Main.FieldByName('MainId').AsString))); ExecSQL; end; Edit; FieldByName('SSel').Value:=False; Post; end; end; CDS_Main.EnableControls; TBRafresh.Click; end; procedure TfrmOrderLRList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main,True); end; procedure TfrmOrderLRList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main,False); end; procedure TfrmOrderLRList.TBPrintClick(Sender: TObject); var FPrintFile:string; begin if CDS_Main.IsEmpty then Exit; CDS_Main.DisableControls; with ADOQuery1 do begin // Close; // SQL.Clear; // SQL.Add('select A.*,B.*,CONVERT(char(10),A.OrdDate,120) as ZDDate'); // SQL.Add(',CONVERT(char(10),A.DlyDate,120) as JHDate'); // SQL.Add(',isnull(A.MPRTCode,B.PRTCode) as CPCode'); // SQL.Add(',isnull(A.MPRTCodeName,B.PRTCodeName) as CPCodeName'); // SQL.Add(',isnull(A.MPRTSpec,B.PRTSpec) as CPSpec'); // SQL.Add(',isnull(A.MPRTMF,B.PRTMF) as CPMF'); // SQL.Add(',isnull(A.MPRTKZ,B.PRTKZ) as CPKZ'); // SQL.Add('from JYOrder_Main A'); // SQL.Add('inner join JYOrder_Sub B on B.MainId=A.MainId'); // SQL.Add('where A.MainId='+QuotedStr(Trim(CDS_Main.FieldByName('MainId').AsString))); // Open; Close; SQL.Clear; SQL.Add('EXEC P_Get_Order_LR2'); SQL.Add('@conno='+QuotedStr(Trim(CDS_Main.FieldByName('conno').AsString))); SQL.Add(',@Flag=0'); Open; end; with ADOQuery2 do begin Close; SQL.Clear; SQL.Add('EXEC P_Get_Order_LR2'); SQL.Add('@conno='+QuotedStr(Trim(CDS_Main.FieldByName('conno').AsString))); SQL.Add(',@Flag=1'); Open; // ShowMessage(sql.Text); end; with ADOQuery3 do begin Close; SQL.Clear; SQL.Add('EXEC P_Get_Order_LR2'); SQL.Add('@conno='+QuotedStr(Trim(CDS_Main.FieldByName('orderno').AsString))); SQL.Add(',@Flag=3'); Open; end; with ADOQuery5 do begin Close; SQL.Clear; SQL.Add('EXEC P_Get_Order_LR2'); SQL.Add('@conno='+QuotedStr(Trim(CDS_Main.FieldByName('orderno').AsString))); SQL.Add(',@Flag=4'); Open; end; with ADOQuery4 do begin Close; SQL.Clear; SQL.Add('select A.*,B.*,CONVERT(char(10),A.OrdDate,120) as ZDDate'); SQL.Add(',CONVERT(char(10),A.DlyDate,120) as JHDate'); SQL.Add(',isnull(A.MPRTCode,B.PRTCode) as CPCode'); SQL.Add(',isnull(A.MPRTCodeName,B.PRTCodeName) as CPCodeName'); SQL.Add(',isnull(A.MPRTSpec,B.PRTSpec) as CPSpec'); SQL.Add(',isnull(A.MPRTMF,B.PRTMF) as CPMF'); SQL.Add(',isnull(A.MPRTKZ,B.PRTKZ) as CPKZ'); SQL.Add('from JYOrder_Main A'); SQL.Add('inner join JYOrder_Sub B on B.MainId=A.MainId'); SQL.Add('where A.MainId='+QuotedStr(Trim(CDS_Main.FieldByName('MainId').AsString))); Open; end; FPrintFile:=ExtractFilePath(Application.ExeName)+'Report\订单成本利润估算表.rmf'; if FileExists(FPrintFile) then begin RM1.LoadFromFile(FPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('没有找到'+FPrintFile+'!'),'提示',0); end; CDS_Main.EnableControls; end; procedure TfrmOrderLRList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var FMainId:string; begin if CDS_Main.IsEmpty then Exit; FMainId:=Trim(CDS_Main.FieldByName('MainId').AsString); try ADOQuerySub.DisableControls; with ADOQuerySub do begin Close; SQL.Clear; sql.Add('EXEC P_Get_Order_LR1'); sql.Add('@MainID='+QuotedStr(FMainId)); sql.Add(',@flag='+QuotedStr('0')); Open; end; SCreateCDS20(ADOQuerySub,CDS_Sub); SInitCDSData20(ADOQuerySub,CDS_Sub); finally ADOQuerySub.EnableControls; end; end; end.