unit U_ContractViewList; 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 TfrmContractViewList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; PopupMenu1: TPopupMenu; N2: TMenuItem; ToolButton1: TToolButton; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; Panel1: TPanel; Label1: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; ComboBox1: TComboBox; cxTabControl1: TcxTabControl; ToolButton3: TToolButton; ToolButton4: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1Column4: TcxGridDBColumn; v1ConNo: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1CustomerNoName: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1MPRTCodeName: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1PRTPrice: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; v1MPRTCF: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1MPRTMF: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Label4: TLabel; Label6: TLabel; Label9: TLabel; Label2: TLabel; Label3: TLabel; Label5: TLabel; CustomerNoName: TEdit; SYRName: TEdit; ConNo: TEdit; PRTCode: TEdit; PRTSpec: TEdit; PRTCF: TEdit; CDS_PRT10: TClientDataSet; RMDBDataSet2: TRMDBDataSet; 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 ToolButton3Click(Sender: TObject); procedure ToolButton4Click(Sender: TObject); private DQdate:TDateTime; procedure InitGrid(); procedure InitForm(); function DelData():Boolean; { Private declarations } public FFInt,FCloth:Integer; { Public declarations } end; var frmContractViewList: TfrmContractViewList; implementation uses U_DataLink,U_ConInPut,U_RTFun; {$R *.dfm} procedure TfrmContractViewList.FormDestroy(Sender: TObject); begin frmContractViewList:=nil; end; procedure TfrmContractViewList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmContractViewList.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); DQdate:=SGetServerDate(ADOQueryTemp); end; procedure TfrmContractViewList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('������ͬ�б�ѡ��',Tv1,'����ָʾ������'); end; procedure TfrmContractViewList.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; } 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; Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmContractViewList.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 TfrmContractViewList.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 TfrmContractViewList.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 TfrmContractViewList.TBExportClick(Sender: TObject); begin //if ADOQueryMain.IsEmpty then Exit; //SelExportData(Tv1,ADOQueryMain,'����ָʾ���б�'); if Order_Main.IsEmpty then Exit; TcxGridToExcel('������ͬ',cxGrid1); end; procedure TfrmContractViewList.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 '); sql.Add(',KHName=(select KHName from ZH_KH_Info KH where KH.KHNameJC=A.CustomerNoName)'); sql.Add(',KHNameEng=(select KHNameEng from ZH_KH_Info KH where KH.KHNameJC=A.CustomerNoName)'); 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 * from JYOrderCon_Main where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); Open; end; SCreateCDS20(ADOQueryTemp,CDS_PRT10); SInitCDSData20(ADOQueryTemp,CDS_PRT10); if FileExists(fPrintFile) then begin //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 TfrmContractViewList.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 TfrmContractViewList.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmContractViewList.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 TfrmContractViewList.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 TfrmContractViewList.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 TfrmContractViewList.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 TfrmContractViewList.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 ConNo like '''+'%'+Trim(ConNo.Text)+'%'+''''); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmContractViewList.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmContractViewList.ToolButton3Click(Sender: TObject); var FFFId:String; begin if cxTabControl1.TabIndex<>0 then Exit; if Order_Main.IsEmpty then Exit; if Application.MessageBox('ȷ��Ҫִ�д˲�����','��ʾ',32+4)<>IDYES then exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrderCon_Main Set Chker='''+Trim(DName)+''''); SQL.Add(',ChkTime=getdate(),ChkStatus=''���ͨ��'' '); sql.Add(' where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); ExecSQL; end; FFFId:=Trim(Order_Main.fieldbyname('MainId').AsString); Order_Main.DisableControls; with Order_Main do begin while Locate('MainId',Trim(FFFId),[]) do begin Order_Main.Delete; end; end; Order_Main.EnableControls; end; procedure TfrmContractViewList.ToolButton4Click(Sender: TObject); var FFFId:String; begin if cxTabControl1.TabIndex<>1 then Exit; if Order_Main.IsEmpty then Exit; if Application.MessageBox('ȷ��Ҫ����������','��ʾ',32+4)<>IDYES then exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update JYOrderCon_Main Set Chker=NUll'); SQL.Add(',ChkTime=NUll,ChkStatus=Null '); sql.Add(' where MainId='''+Trim(Order_Main.fieldbyname('MainId').AsString)+''''); ExecSQL; end; FFFId:=Trim(Order_Main.fieldbyname('MainId').AsString); Order_Main.DisableControls; with Order_Main do begin while Locate('MainId',Trim(FFFId),[]) do begin Order_Main.Delete; end; end; Order_Main.EnableControls; end; end.