unit U_PRTOrderViewList; 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 TfrmPRTOrderViewList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; Label1: TLabel; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Label3: TLabel; OrderNo: TEdit; TBExport: TToolButton; v1OrderNo: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1DeliveryDate: TcxGridDBColumn; v1MPRTSpec: TcxGridDBColumn; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; v1CustomerNoName: TcxGridDBColumn; Label4: TLabel; CustomerNoName: TEdit; v1MPRTCodeName: TcxGridDBColumn; v1MPRTMF: TcxGridDBColumn; TBView: TToolButton; Label8: TLabel; MPRTCodeHZ: TEdit; v1MPRTKZ: TcxGridDBColumn; Label10: TLabel; MPRTSpec: TEdit; Label12: TLabel; MPRTKZ: TEdit; Label13: TLabel; MPRTMF: TEdit; ToolButton2: TToolButton; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; ComboBox1: TComboBox; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; Label9: TLabel; Label2: TLabel; ConNo: TEdit; LiDanPerson: TEdit; v1Column1: TcxGridDBColumn; ComboBox2: TComboBox; ToolButton1: TToolButton; RMDBDataSet1: TRMDBDataSet; RM2: TRMGridReport; ToolButton3: TToolButton; ComboBox3: TComboBox; v1Column4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; CheckBox1: TCheckBox; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure OrderNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); 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 TBViewClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); procedure ConNoKeyPress(Sender: TObject; var Key: Char); procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton1Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); private CanShu1,CanShu2:string; DQdate:TDateTime; procedure InitGrid(); procedure InitForm(); function DelData():Boolean; procedure InitGridFH(); { Private declarations } public FFInt,FCloth:Integer; { Public declarations } end; var frmPRTOrderViewList: TfrmPRTOrderViewList; implementation uses U_DataLink,U_OrderInPut,U_RTFun, U_ZDYHelp, U_ZDYHelpSel, U_ModuleNote; {$R *.dfm} procedure TfrmPRTOrderViewList.FormDestroy(Sender: TObject); begin frmPRTOrderViewList:=nil; end; procedure TfrmPRTOrderViewList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmPRTOrderViewList.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); DQdate:=SGetServerDate(ADOQueryTemp); end; procedure TfrmPRTOrderViewList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('ָʾ���б�',Tv1,'����ָʾ������'); end; procedure TfrmPRTOrderViewList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; Parameters.ParamByName('WSql').Value:=''; 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 TfrmPRTOrderViewList.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 TfrmPRTOrderViewList.InitForm(); begin ReadCxGrid('ָʾ���б�',Tv1,'����ָʾ������'); BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-92; EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Top 10* from JYOrder_Main Order by FillTime desc'); Open; end; ComboBox1.Clear; with ADOQueryTemp do begin First; while not Eof do begin ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('OrderNO').AsString)); Next; end; end; //InitGrid(); end; procedure TfrmPRTOrderViewList.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; procedure TfrmPRTOrderViewList.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(CanShu1)<>'��Ȩ��' then begin if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then begin Application.MessageBox('���ܲ������˵�����!','��ʾ',0); Exit; end; end; try frmOrderInPut:=TfrmOrderInPut.Create(Application); with frmOrderInPut do begin PState:=1; FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); FOrderNo:=Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); if ShowModal=1 then begin end; end; finally frmOrderInPut.Free; end; end; procedure TfrmPRTOrderViewList.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(Order_Main.fieldbyname('Filler').AsString)<>Trim(DName) then begin Application.MessageBox('���ܲ������˵�����!','��ʾ',0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main_MD where ORDMainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty=false then begin Application.MessageBox('�Ѿ�¼���뵥����ɾ������!','��ʾ',0); Exit; end; if Application.MessageBox('ȷ��Ҫɾ��������','��ʾ',32+4)<>IDYES then Exit; if DelData() then begin Order_Main.Delete; end; end; function TfrmPRTOrderViewList.DelData():Boolean; begin try Result:=false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); sql.Add('delete JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); ExecSQL; end; {with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); Open; if IsEmpty then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); ExecSQL; end; end; end; if Trim(Order_Main.fieldbyname('SubId').AsString)='' then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrder_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); ExecSQL; end; end; } ADOQueryCmd.Connection.CommitTrans; Result:=True; except ADOQueryCmd.Connection.RollbackTrans; Result:=False; Application.MessageBox('����ɾ���쳣��','��ʾ',0); end; end; procedure TfrmPRTOrderViewList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; end; procedure TfrmPRTOrderViewList.TBPrintClick(Sender: TObject); var fPrintFile:string; Porderno,PFTPUnit,LD,LDTel,GD,GDTel,CPQtyStr,BPQtyStr,QtyUnit:string; i,j:Integer; begin if Order_Main.IsEmpty then Exit; if Trim(ComboBox2.Text)='' then Exit; if Trim(ComboBox3.Text)='' then Exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(ComboBox3.Text)+'.rmf' ; with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select A.*,B.PSName,B.PSNote,C.ClothOneQty,C.MPRTOneQty,C.OneQtyUnit,C.OrderNo,C.MPRTCode,C.MPRTCodeName,C.MPRTCF '); sql.Add(' ,C.MPRTSpec,C.MPRTMF,C.MPRTKZ,C.ChuanY,C.MPRTGY,C.MPRTGYHZ,D.*'); sql.Add(',GSTT=(select Top 1 ZdyStr1 from KH_Zdy A where A.ZdyName=C.ComTaiTou)'); sql.Add(',Case when RTrim(A.PFTPUnit)=''KG'' then '',''+Cast(Cast(A.PFTPQty*B.KgZM as int) as varchar(20))+''M'' '); sql.Add(' else '''' end as MStr'); sql.Add(',C.LiDanPerson,LDTel10=(select Top 1 Note from KH_Zdy KZ where KZ.ZdyName=C.LiDanPerson and KZ.Type=''LiDanPerson'' )'); sql.Add(',GDTel10=(select Top 1 Note from KH_Zdy KZ where KZ.ZdyName=A.PFGenDanPerson and KZ.Type=''PFGenDanPerson'' )'); sql.Add(' from JYOrder_PCS_Sub A'); SQL.Add(' inner join JYOrder_Process B on A.PSID=B.PSID'); sql.Add(' inner join JYOrder_Main C on A.MainId=C.Mainid'); sql.Add(' left join JYOrder_Sub D on A.Subid=D.SubId'); sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); SQL.Add(' and A.FactoryName='''+Trim(ComboBox2.Text)+''''); SQL.Add(' order by D.SubId'); Open; end; SCreateCDS20(ADOQueryPrint,CDS_Print); SInitCDSData20(ADOQueryPrint,CDS_Print); PFTPUnit:=Trim(CDS_Print.fieldbyname('PFTPUnit').AsString); LD:=Trim(CDS_Print.fieldbyname('LiDanPerson').AsString); LDTel:=Trim(CDS_Print.fieldbyname('LDTel10').AsString); GD:=Trim(CDS_Print.fieldbyname('PFGenDanPerson').AsString); GDTel:=Trim(CDS_Print.fieldbyname('GDTel10').AsString); if (CDS_Print.RecordCount mod 2)=1 then begin CDS_Print.Append; CDS_Print.Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select sum(PFTPQty) PFTPQtyHZ,sum(PFTPPS) PFTPPSHZ '); sql.Add(' from JYOrder_PCS_Sub A'); SQL.Add(' inner join JYOrder_Process B on A.PSID=B.PSID'); sql.Add(' inner join JYOrder_Main C on A.MainId=C.Mainid'); sql.Add(' left join JYOrder_Sub D on A.Subid=D.SubId'); sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); SQL.Add(' and A.FactoryName='''+Trim(ComboBox2.Text)+''''); sql.Add(' group by A.FactoryName'); Open; end; if FileExists(fPrintFile) then begin RMVariables['PFTPQtyHZ']:=ADOQueryTemp.fieldbyname('PFTPQtyHZ').Value; RMVariables['PFTPPSHZ']:=ADOQueryTemp.fieldbyname('PFTPPSHZ').Value; RMVariables['ZQty']:=Order_Main.fieldbyname('ZQty').Value; RMVariables['OrderUnit']:=Order_Main.fieldbyname('OrderUnit').Value; RMVariables['QtyUnit']:=Order_Main.fieldbyname('OneQtyUnit').Value; RMVariables['CPQtyStr']:=Order_Main.fieldbyname('MPRTOneQty').Value; RMVariables['BPQtyStr']:=Order_Main.fieldbyname('ClothOneQty').Value; RMVariables['PFTPUnitHZ']:=Trim(PFTPUnit); RMVariables['LD']:=Trim(LD); RMVariables['LDTel']:=Trim(LDTel); RMVariables['GD']:=Trim(GD); RMVariables['GDTel']:=Trim(GDTel); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('û����'+ExtractFilePath(Application.ExeName)+'Report\����ָʾ��.rmf'),'��ʾ',0); end; // Panel4.Visible:=True; end; procedure TfrmPRTOrderViewList.TBRafreshClick(Sender: TObject); begin InitGrid(); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Top 10* from JYOrder_Main Order by FillTime desc'); Open; end; ComboBox1.Clear; with ADOQueryTemp do begin First; while not Eof do begin ComboBox1.Items.Add(Trim(ADOQueryTemp.fieldbyname('OrderNO').AsString)); Next; end; end; if Order_Main.IsEmpty=False then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select distinct(FactoryName) FactoryName from JYOrder_PCS_Sub '); sql.Add(' where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); Open; end; ComboBox2.Clear; with ADOQueryTemp do begin First; while not Eof do begin ComboBox2.Items.Add(Trim(ADOQueryTemp.fieldbyname('FactoryName').AsString)); Next; end; end; end; end; procedure TfrmPRTOrderViewList.TBAddClick(Sender: TObject); var maxno:string; begin try frmOrderInPut:=TfrmOrderInPut.Create(Application); with frmOrderInPut do begin PState:=0; FMainId:=''; if ShowModal=1 then begin end; end; finally frmOrderInPut.Free; end; end; procedure TfrmPRTOrderViewList.OrderNoChange(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 TfrmPRTOrderViewList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmPRTOrderViewList.Tv1CellDblClick( Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if TBView.Visible=False then Exit; TBView.Click; end; procedure TfrmPRTOrderViewList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmPRTOrderViewList.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmPRTOrderViewList.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 TfrmPRTOrderViewList.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 TfrmPRTOrderViewList.TBViewClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmOrderInPut:=TfrmOrderInPut.Create(Application); with frmOrderInPut do begin PState:=1; FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); ToolBar2.Visible:=False; //ToolBar3.Visible:=False; ToolBar4.Visible:=False; ToolBar5.Visible:=False; TBSave.Visible:=False; ToolButton4.Visible:=False; ToolButton5.Visible:=False; ToolButton8.Visible:=False; ToolButton10.Visible:=False; ToolButton11.Visible:=False; //ScrollBox1.Enabled:=False; Tv1.OptionsSelection.CellSelect:=False; ToolBar6.Visible:=False; ToolButton20.Visible:=False; ToolButton21.Visible:=False; if ShowModal=1 then begin end; end; finally frmOrderInPut.Free; end; end; procedure TfrmPRTOrderViewList.ToolButton2Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmOrderInPut:=TfrmOrderInPut.Create(Application); with frmOrderInPut do begin PState:=1; CopyInt:=99; FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); if ShowModal=1 then begin end; end; finally frmOrderInPut.Free; end; end; procedure TfrmPRTOrderViewList.OrderNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if Length(OrderNo.Text)<3 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; Parameters.ParamByName('WSql').Value:=' and orderno like '''+'%'+Trim(OrderNo.Text)+'%'+''''; Parameters.ParamByName('begdate').Value:='1899-01-01'; Parameters.ParamByName('enddate').Value:='2050-01-01'; Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmPRTOrderViewList.ConNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if Length(conno.Text)<3 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.add('exec P_View_Order :begdate,:enddate,:WSql') ; Parameters.ParamByName('WSql').Value:=' and conno like '''+'%'+Trim(conno.Text)+'%'+''''; Parameters.ParamByName('begdate').Value:='1899-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; procedure TfrmPRTOrderViewList.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if Order_Main.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select distinct(FactoryName) FactoryName from JYOrder_PCS_Sub '); sql.Add(' where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); Open; end; ComboBox2.Clear; with ADOQueryTemp do begin First; while not Eof do begin ComboBox2.Items.Add(Trim(ADOQueryTemp.fieldbyname('FactoryName').AsString)); Next; end; end; end; procedure TfrmPRTOrderViewList.ToolButton1Click(Sender: TObject); var fPrintFile:string; Porderno,PFTPUnit,LD,LDTel,GD,GDTel,PSID:string; i,j:Integer; begin if Order_Main.IsEmpty then Exit; //if Trim(ComboBox2.Text)='' then Exit; if CheckBox1.Checked=False then fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\��װָʾ��.rmf' else fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\��װָʾ��Ⱦɫ.rmf'; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Process where Mainid='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); sql.Add(' and PSName=''�����װ'' '); Open; end; if ADOQueryTemp.IsEmpty then Exit; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Process where Mainid='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); sql.Add(' and PSName=''��Ʒ'' '); Open; end; if ADOQueryTemp.IsEmpty then begin i:=1;//�����װǰһ�� end else begin if ADOQueryTemp.FieldByName('PSXH').AsInteger=1 then begin i:=1; end else begin i:=2;//�����װǰ���� end; end; with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select A.*,B.PSName,B.PSNote,C.OrderNo,C.MPRTCode,C.MPRTCodeName,C.MPRTCF, '); sql.Add(' C.MPRTSpec,C.MPRTMF,C.MPRTKZ,C.ChuanY,C.MPRTGY,D.PRTHX,D.PRTColorNo'); sql.Add(',C.MPRTMFNOte,C.MPRTKZNote,C.CJNote,C.DHNote,C.BZNote,C.CHNote,C.MPRTGYHZ,D.*'); sql.Add(',GSTT=(select Top 1 ZdyStr1 from KH_Zdy A where A.ZdyName=C.ComTaiTou)'); sql.Add(',Case when RTrim(A.PFTPUnit)=''KG'' then '',''+Cast(Cast(A.PFTPQty*B.KgZM as int) as varchar(20))+''M'' '); sql.Add(' else '''' end as MStr'); sql.Add(',C.LiDanPerson,LDTel10=(select Top 1 Note from KH_Zdy KZ where KZ.ZdyName=C.LiDanPerson and KZ.Type=''LiDanPerson'' )'); sql.Add(',GDTel10=(select Top 1 Note from KH_Zdy KZ where KZ.ZdyName=A.PFGenDanPerson and KZ.Type=''PFGenDanPerson'' )'); sql.Add(' from JYOrder_PCS_Sub A'); SQL.Add(' inner join JYOrder_Process B on A.PSID=B.PSID'); sql.Add(' inner join JYOrder_Main C on A.MainId=C.Mainid'); sql.Add(' inner join JYOrder_Sub D on A.Subid=D.SubId'); //sql.Add(' left join JYOrder_Sub D on A.Subid=D.SubId'); sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); if i=1 then begin sql.Add(' and B.PSID=(select Top 1 PSID from JYOrder_Process JP where JP.MainId=C.MainId'); sql.Add(' and JP.PSXH<(select PSXH from JYOrder_Process JPP where JPP.MainId=C.MainId and JPP.PSName=''�����װ'' )'); sql.Add(' order by PSXH DESC)'); end else if i=2 then begin sql.Add(' and B.PSID in (select Top 2 PSID from JYOrder_Process JP where JP.MainId=C.MainId'); sql.Add(' and JP.PSXH<(select PSXH from JYOrder_Process JPP where JPP.MainId=C.MainId and JPP.PSName=''�����װ'' )'); sql.Add(' order by PSXH DESC)'); end; //SQL.Add(' and A.FactoryName='''+Trim(ComboBox2.Text)+''''); sql.Add(' order by D.SubId'); //ShowMessage(sql.Text); Open; end; SCreateCDS20(ADOQueryPrint,CDS_Print); SInitCDSData20(ADOQueryPrint,CDS_Print); PFTPUnit:=Trim(CDS_Print.fieldbyname('PFTPUnit').AsString); LD:=Trim(CDS_Print.fieldbyname('LiDanPerson').AsString); LDTel:=Trim(CDS_Print.fieldbyname('LDTel10').AsString); GD:=Trim(CDS_Print.fieldbyname('PFGenDanPerson').AsString); GDTel:=Trim(CDS_Print.fieldbyname('GDTel10').AsString); if (CDS_Print.RecordCount mod 2)=1 then begin CDS_Print.Append; CDS_Print.Post; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select sum(PFTPQty) PFTPQtyHZ,sum(PFTPPS) PFTPPSHZ '); sql.Add(' from JYOrder_PCS_Sub A'); SQL.Add(' inner join JYOrder_Process B on A.PSID=B.PSID'); sql.Add(' inner join JYOrder_Main C on A.MainId=C.Mainid'); //sql.Add(' left join JYOrder_Sub D on A.Subid=D.SubId'); sql.Add(' inner join JYOrder_Sub D on A.Subid=D.SubId'); sql.Add(' where A.MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); if i=1 then begin sql.Add(' and B.PSID=(select Top 1 PSID from JYOrder_Process JP where JP.MainId=C.MainId'); sql.Add(' and JP.PSXH<(select PSXH from JYOrder_Process JPP where JPP.MainId=C.MainId and JPP.PSName=''�����װ'' )'); sql.Add(' order by PSXH DESC)'); end else if i=2 then begin sql.Add(' and B.PSID in (select Top 2 PSID from JYOrder_Process JP where JP.MainId=C.MainId'); sql.Add(' and JP.PSXH<(select PSXH from JYOrder_Process JPP where JPP.MainId=C.MainId and JPP.PSName=''�����װ'' )'); sql.Add(' order by PSXH DESC)'); end; // sql.Add(' group by A.FactoryName'); Open; end; if FileExists(fPrintFile) then begin RMVariables['PFTPQtyHZ']:=ADOQueryTemp.fieldbyname('PFTPQtyHZ').Value; RMVariables['PFTPPSHZ']:=ADOQueryTemp.fieldbyname('PFTPPSHZ').Value; RMVariables['ZQty']:=Order_Main.fieldbyname('ZQty').Value; RMVariables['OrderUnit']:=Order_Main.fieldbyname('OrderUnit').Value; RMVariables['QtyUnit']:=Order_Main.fieldbyname('OneQtyUnit').Value; RMVariables['CPQtyStr']:=Order_Main.fieldbyname('MPRTOneQty').Value; RMVariables['BPQtyStr']:=Order_Main.fieldbyname('ClothOneQty').Value; RMVariables['PFTPUnitHZ']:=Trim(PFTPUnit); RMVariables['LD']:=Trim(LD); RMVariables['LDTel']:=Trim(LDTel); RMVariables['GD']:=Trim(GD); RMVariables['GDTel']:=Trim(GDTel); RM1.LoadFromFile(fPrintFile); RM1.ShowReport; end else begin Application.MessageBox(PChar('û����'+ExtractFilePath(Application.ExeName)+'Report\��װָʾ��.rmf'),'��ʾ',0); end; // Panel4.Visible:=True; end; procedure TfrmPRTOrderViewList.ToolButton3Click(Sender: TObject); begin try frmModuleNote:=TfrmModuleNote.Create(Application); with frmModuleNote do begin flag:='����ָʾ��'; if ShowModal=1 then begin end; end; finally frmModuleNote.Free; end; end; end.