unit U_ContractSelList; 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; type TfrmContractSelList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; v1OrdDate: TcxGridDBColumn; v1ConNo: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; v1MPRTSpec: TcxGridDBColumn; v1MPRTCF: TcxGridDBColumn; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; v1CustomerNoName: TcxGridDBColumn; v1MPRTCodeName: TcxGridDBColumn; v1MPRTMF: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; PopupMenu1: TPopupMenu; N2: TMenuItem; v1PRTPrice: TcxGridDBColumn; ToolButton1: TToolButton; v1Column1: TcxGridDBColumn; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; v1Column4: TcxGridDBColumn; Panel1: TPanel; Label1: TLabel; Label4: TLabel; Label6: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CustomerNoName: TEdit; SYRName: TEdit; PRTGYHZ: TEdit; ConNo: TEdit; PRTGY: TEdit; v1Column2: TcxGridDBColumn; ComboBox1: TComboBox; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; Label2: TLabel; PRTCode: TEdit; Label3: TLabel; Label5: TLabel; PRTSpec: TEdit; PRTCF: TEdit; Panel2: TPanel; CheckBox1: TCheckBox; ToolButton2: TToolButton; 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 TBPrintClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure FormShow(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 ToolButton1Click(Sender: TObject); procedure CustomerNoNameChange(Sender: TObject); procedure ConNoKeyPress(Sender: TObject; var Key: Char); procedure cxTabControl1Change(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton2Click(Sender: TObject); private DQdate:TDateTime; procedure InitGrid(); procedure InitForm(); function DelData():Boolean; { Private declarations } public FFInt,FCloth:Integer; { Public declarations } end; var frmContractSelList: TfrmContractSelList; implementation uses U_DataLink,U_ConInPut,U_RTFun; {$R *.dfm} procedure TfrmContractSelList.FormDestroy(Sender: TObject); begin frmContractSelList:=nil; end; procedure TfrmContractSelList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmContractSelList.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); DQdate:=SGetServerDate(ADOQueryTemp); end; procedure TfrmContractSelList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('订单合同列表选择',Tv1,'生产指示单管理'); end; procedure TfrmContractSelList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.*,B.* '); sql.Add(' from JYOrderCon_Main A '); sql.Add(' inner join JYOrderCon_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)+''''); {if Trim(DParameters1)<>'高权限' then begin sql.Add('and A.Filler='''+Trim(DName)+''''); end; } Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmContractSelList.InitForm(); begin ReadCxGrid('订单合同列表选择',Tv1,'生产指示单管理'); BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); InitGrid(); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Top 10* from JYOrderCon_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('ConNO').AsString)); Next; end; end; end; procedure TfrmContractSelList.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 TfrmContractSelList.DelData():Boolean; begin try Result:=false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrderCon_Sub where SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+''''); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from JYOrderCon_Sub where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); Open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrderCon_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 TfrmContractSelList.TBExportClick(Sender: TObject); begin //if ADOQueryMain.IsEmpty then Exit; //SelExportData(Tv1,ADOQueryMain,'生产指示单列表'); if Order_Main.IsEmpty then Exit; TcxGridToExcel('订单合同',cxGrid1); end; procedure TfrmContractSelList.TBPrintClick(Sender: TObject); var fPrintFile:string; EngMoney:string; begin if Order_Main.IsEmpty then Exit; fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\英文合同.rmf' ; with ADOQueryPrint do begin Close; sql.Clear; sql.Add('select A.*,B.*,ConMoney=B.PRTOrderQty*B.PRTPrice,COL=''COL:'' '); 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); // with ADOQueryTemp do begin close; sql.Clear; sql.Add('select TolConMoney=Sum(PRTOrderQty*PRTPrice)'); 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; EngMoney:=num2cengnum(ADOQueryTemp.fieldbyname('TolConMoney').AsString); EngMoney:=UpperCase(EngMoney); if FileExists(fPrintFile) then begin RMVariables['EngMoney']:=EngMoney; //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; end; procedure TfrmContractSelList.TBRafreshClick(Sender: TObject); begin InitGrid(); with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select Top 10* from JYOrderCon_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('ConNO').AsString)); Next; end; end; end; procedure TfrmContractSelList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmContractSelList.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 TfrmContractSelList.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 TfrmContractSelList.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmConInPut:=TfrmConInPut.Create(Application); with frmConInPut do begin PState:=1; FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString); ToolBar2.Visible:=False; TBSave.Visible:=False; ScrollBox1.Enabled:=False; Tv1.OptionsSelection.CellSelect:=False; if ShowModal=1 then begin end; end; finally frmConInPut.Free; end; end; procedure TfrmContractSelList.CustomerNoNameChange(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 TfrmContractSelList.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('select A.*,B.* '); sql.Add(' from JYOrderCon_Main A '); sql.Add(' inner join JYOrderCon_Sub B on A.MainId=B.MainId'); SQL.Add('where 1=1'); {if Trim(DParameters1)<>'高权限' then begin sql.Add('and A.Filler='''+Trim(DName)+''''); end; } {if cxTabControl1.TabIndex=0 then begin SQL.Add(' and isnull(SChkTime,'''')<>'''' '); SQL.Add(' and isnull(ChkTime,'''')='''' '); end else if cxTabControl1.TabIndex=1 then begin SQL.Add(' and isnull(ChkTime,'''')<>'''' '); end; } sql.Add(' and A.ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''''); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmContractSelList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmContractSelList.Tv1CellDblClick( Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin if Order_Main.IsEmpty then Exit; ModalResult:=1; end; procedure TfrmContractSelList.ToolButton2Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; ModalResult:=1; end; end.