unit U_ContractList_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; type TfrmContractList_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; v1OrdDate: TcxGridDBColumn; v1DeliveryDate: TcxGridDBColumn; v1OrdPerson1: TcxGridDBColumn; v1ConNo: TcxGridDBColumn; v1MPRTSpec: TcxGridDBColumn; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; v1CustomerNoName: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; PopupMenu1: TPopupMenu; N2: TMenuItem; v1OrdDefStr1: TcxGridDBColumn; v1Column1: TcxGridDBColumn; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; PopupMenu2: TPopupMenu; N11: TMenuItem; N21: TMenuItem; N31: TMenuItem; Panel1: TPanel; Label1: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label9: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; CustomerNoName: TEdit; ConPerson1: TEdit; MPRTCodeName: TEdit; ConNo: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; v1Column2: TcxGridDBColumn; Label2: TLabel; v1Column3: TcxGridDBColumn; cxSplitter1: TcxSplitter; ADOQuerySub: TADOQuery; DataSource2: TDataSource; KHConNO: TEdit; Label3: TLabel; v1Column9: TcxGridDBColumn; Label6: TLabel; v1ConMoney: TcxGridDBColumn; ThreeColorBase: TcxStyleRepository; SHuangSe: TcxStyle; SkyBlue: TcxStyle; Default: TcxStyle; QHuangSe: TcxStyle; Red: TcxStyle; FontBlue: TcxStyle; TextSHuangSe: TcxStyle; FonePurple: TcxStyle; FoneClMaroon: TcxStyle; FoneRed: TcxStyle; RowColor: TcxStyle; handBlack: TcxStyle; cxBlue: TcxStyle; cxStyle1: TcxStyle; v1Column10: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column12: TcxGridDBColumn; cxGridPopupMenu2: TcxGridPopupMenu; N1: TMenuItem; Panel2: TPanel; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; V2Column2: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; V2Column4: TcxGridDBColumn; V2Column1: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; V2Column3: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; V2Column5: TcxGridDBColumn; V2prtprice: TcxGridDBColumn; V2Column7: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; cxGrid7: TcxGrid; TV11: TcxGridDBTableView; V11CengJi: TcxGridDBColumn; V1MLCode: TcxGridDBColumn; V11MLName: TcxGridDBColumn; V11HXNo: TcxGridDBColumn; cxGridLevel6: TcxGridLevel; cxSplitter5: TcxSplitter; cxGridPopupMenu15: TcxGridPopupMenu; CJ_Mianliao: TClientDataSet; DataSource16: TDataSource; ADOQuery1: TADOQuery; Order_SubCX: TClientDataSet; TSsel: TToolButton; V2Ssel: TcxGridDBColumn; V2CXTNo: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(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 CustomerNoNameChange(Sender: TObject); procedure ConNoKeyPress(Sender: TObject; var Key: Char); procedure cxTabControl1Change(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure N2Click(Sender: TObject); procedure TV2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure TSselClick(Sender: TObject); private DQdate:TDateTime; fuserName:string; 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_CX: TfrmContractList_CX; implementation uses U_DataLink,U_Fun,U_ZDYHelp, U_FjList_RZ; {$R *.dfm} procedure TfrmContractList_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_SubCX); SInitCDSData20(ADOQuerySub,Order_SubCX); end; procedure TfrmContractList_CX.SetStatus(); begin end; procedure TfrmContractList_CX.FormDestroy(Sender: TObject); begin frmContractList_CX:=nil; end; procedure TfrmContractList_CX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure TfrmContractList_CX.FormCreate(Sender: TObject); begin cxgrid1.Align:=alClient; //BegDate.DateTime:=SGetServerDateTime(ADOQueryTemp)-7; //EndDate.DateTime:=SGetServerDateTime(ADOQueryTemp); DQdate:=SGetServerDate(ADOQueryTemp); canshu1:=trim(DParameters1); end; procedure TfrmContractList_CX.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid(self.Caption+tv1.Name,Tv1,'生产指示单管理'); WriteCxGrid(self.Caption+tv2.Name,Tv2,'生产指示单管理'); end; procedure TfrmContractList_CX.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add('select A.*,A.ConNo ConNoM '); SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',ConMoney=(select Sum((PRTOrderQty*PRTPrice+sordQty1+sordQty2)*huilv) from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',case when isnull((select top 1 X.conNO from Contract_Main X where X.conNo=A.conNO) ,'''')='''' then ''否'' else ''是'' end as IScg '); sql.Add(',ISSC=cast((case when isnull((select count(WBID) from TP_File X where X.WBID=A.maiNID and X.TFType=''合同''),0)>0 then 1 else 0 end) as bit)'); sql.Add(' from JYOrderCon_Main A '); SQL.Add('where A.OrdDate>='''+FormatDateTime('yyyy-MM-dd',BegDate.DateTime)+''''); SQL.Add('and A.OrdDate<'''+FormatDateTime('yyyy-MM-dd',enddate.DateTime+1)+''''); //sql.Add(' and A.MPRTType=''外销'' '); if Trim(canshu1)<>'高权限' then begin sql.Add('and (A.Filler='''+Trim(DName)+''' or A.ConPerson1='''+Trim(DName)+''')'); end; sql.Add(' and (isnull(A.status,''0'')=''1'' or (select Max(B.PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)<100)'); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmContractList_CX.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 TfrmContractList_CX.InitForm(); begin readCxGrid(self.Caption+tv1.Name,Tv1,'生产指示单管理'); readCxGrid(self.Caption+tv2.Name,Tv2,'生产指示单管理'); BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7; EndDate.DateTime:=SGetServerDate10(ADOQueryTemp); InitGrid(); end; procedure TfrmContractList_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_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_CX.TBRafreshClick(Sender: TObject); begin InitGrid(); TBFind.Click; end; procedure TfrmContractList_CX.FormShow(Sender: TObject); begin InitForm(); SetStatus(); end; procedure TfrmContractList_CX.TBTPClick(Sender: TObject); var FQty,FQty1,FMxQty,FPQty,FMxQtyS,FPQtyS:String; begin end; procedure TfrmContractList_CX.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmContractList_CX.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmContractList_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_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_CX.N1Click(Sender: TObject); begin SelOKNo(Order_Main,false); end; procedure TfrmContractList_CX.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 TfrmContractList_CX.ConNoKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if Length(Tedit(Sender).Text)<1 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; SQL.Clear; sql.Add('select A.*,A.ConNo ConNoM '); SQL.Add(',PRTOrderQty=(select Sum(PRTOrderQty) from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',ConMoney=(select Sum(PRTOrderQty*PRTPrice) from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',OrderUnit=(select top 1 OrderUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',PriceUnit=(select top 1 PriceUnit from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',PRTPrice=(select top 1 PRTPrice from JYOrderCon_Sub B where B.MainId=A.MainId)'); SQL.Add(',case when isnull((select top 1 X.conNO from Contract_Main X where X.conNo=A.conNO) ,'''')='''' then ''否'' else ''是'' end as IScg '); sql.Add(',ISSC=cast((case when isnull((select count(WBID) from TP_File X where X.WBID=A.maiNID and X.TFType=''合同''),0)>0 then 1 else 0 end) as bit)'); sql.Add(' from JYOrderCon_Main A '); SQL.Add('where OrdDate>='''+'1899-01-01'+''''); SQL.Add('and OrdDate<'''+'2050-01-01'+''''); //sql.Add(' and MPRTType=''外销'' '); if Trim(canshu1)<>'高权限' then begin sql.Add('and A.Filler='''+Trim(DName)+''''); end; sql.Add(' and '+Tedit(Sender).Name+' like '+quotedstr(trim('%'+trim(Tedit(Sender).Text)+'%'))); // sql.Add(' and ConNo like '''+'%'+Trim(ConNoM.Text)+'%'+''''); Open; end; SCreateCDS20(ADOQueryMain,Order_Main); SInitCDSData20(ADOQueryMain,Order_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmContractList_CX.cxTabControl1Change(Sender: TObject); begin SetStatus(); TBRafresh.Click; end; procedure TfrmContractList_CX.Tv1FocusedRecordChanged( Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitSub(); end; procedure TfrmContractList_CX.N2Click(Sender: TObject); begin SelOKNo(Order_Main,true); end; procedure TfrmContractList_CX.TV2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin with ADOQuery1 do begin Close; sql.Clear; SQL.Add('select AA.* from (select HXNo=cast('''' as varchar(50)),A.CengJI,A.MLName,A.MLSeHao,A.MLID '); sql.Add(',GYDM=cast('''' as varchar(50))'); sql.Add('from CP_YDang_ML A '); SQL.Add('where A.CYID='''+trim(Order_SubCX.fieldbyname('CYID').AsString)+''''); //sql.Add(' and isnull(A.MLName,'''')<>'''''); sql.Add(' and A.IFSel=1 '); sql.Add('union all '); SQL.Add('select B.HXNo,B.CengJI,MLName=cast('''' as varchar(50)),B.MLSeHao,B.JGID MLID,B.GYDM '); sql.Add('from CP_YDang_JG B '); SQL.Add('where B.CYID='''+trim(Order_SubCX.fieldbyname('CYID').AsString)+''''); //sql.Add(' and isnull(B.MLName,'''')<>'''''); sql.Add(' and B.IFZY=1) AA '); sql.Add(' order by AA.Cengji,AA.MLID'); open; end; SCreateCDS20(ADOQuery1,CJ_Mianliao); SInitCDSData20(ADOQuery1,CJ_Mianliao); end; procedure TfrmContractList_CX.TSselClick(Sender: TObject); var FPRTCodeName:string; begin if Order_Main.IsEmpty then exit; if Order_SubCX.Locate('Ssel',True,[])=false then begin application.MessageBox('请选择明细数据','提示'); exit; end; with Order_SubCX do begin first; while not Eof do begin if FieldByName('Ssel').AsBoolean=true then begin if FPRTCodeName='' then begin FPRTCodeName:=Trim(Order_SubCX.fieldbyname('prtCodeName').AsString); end else begin if FPRTCodeName<>Trim(Order_SubCX.fieldbyname('prtCodeName').AsString) then begin application.MessageBox('不同产品不能选择','提示'); exit; end; end; end; next; end; end; ModalResult:=1; end; end.