unit U_YPKC; 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, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmYPKC = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Order_Main: TClientDataSet; RM1: TRMGridReport; RMDBDataSet1: TRMDBDataSet; RMXLSExport1: TRMXLSExport; PopupMenu1: TPopupMenu; N2: TMenuItem; ADOQueryPrint: TADOQuery; Panel1: TPanel; Label8: TLabel; Label12: TLabel; Label13: TLabel; MPRTCodeName: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; cxGrid1: TcxGrid; TV1: TcxGridDBTableView; v1Column5: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; v1Column7: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; V2Column4: TcxGridDBColumn; V2Column3: TcxGridDBColumn; N1: TMenuItem; V1Column1: TcxGridDBColumn; ToolButton2: TToolButton; V1Column2: TcxGridDBColumn; cV1Column4: TcxGridDBColumn; cV1Column3: TcxGridDBColumn; lbl1: TLabel; p_Color: TEdit; lbl2: TLabel; yptype: TEdit; lbl3: TLabel; kuwei: TEdit; lbl4: TLabel; fromFactoryName: TEdit; V1Column3: TcxGridDBColumn; TV1Column1: 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 BuyNameChange(Sender: TObject); procedure ConNoKeyPress(Sender: TObject; var Key: Char); procedure cxTabControl1Change(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure N2Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure p_ColorChange(Sender: TObject); procedure TV1DblClick(Sender: TObject); private DQdate: TDateTime; fuserName: string; procedure InitGrid(); procedure InitForm(); function DelData(): Boolean; { Private declarations } public FFInt, FCloth: Integer; canshu1, FConNo, FGSTT: string; fcode: string; { Public declarations } end; var frmYPKC: TfrmYPKC; implementation uses U_DataLink, U_Fun, U_ZDYHelp; {$R *.dfm} procedure TfrmYPKC.FormDestroy(Sender: TObject); begin frmYPKC := nil; end; procedure TfrmYPKC.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caHide; end; procedure TfrmYPKC.FormCreate(Sender: TObject); begin cxgrid1.Align := alClient; DQdate := SGetServerDate(ADOQueryTemp); canshu1 := trim(DParameters1); end; procedure TfrmYPKC.TBCloseClick(Sender: TObject); begin Close; writeCxGrid(self.Caption + tv1.Name, Tv1, '样品选择1'); end; procedure TfrmYPKC.InitGrid(); begin with ADOQueryTemp do begin close; sql.Clear; SQL.Add('exec P_Get_YPKC @Scan=' + quotedstr(trim(fcode))); SQL.Add(',@ScanType=''样品编号'''); // showmessage(sql.text); open; end; SCreateCDS20(ADOQueryTemp, Order_Main); SInitCDSData20(ADOQueryTemp, Order_Main); // if ADOQueryTemp.IsEmpty then // begin // // Application.MessageBox('编号错误!', '提示', 0); // Exit; // // end // else // begin // // SCreateCDS20(ADOQueryTemp, Order_Main); // SInitCDSData20(ADOQueryTemp, Order_Main); // // end; end; procedure TfrmYPKC.InitForm(); begin readCxGrid(self.Caption + tv1.Name, Tv1, '样品选择1'); InitGrid(); end; procedure TfrmYPKC.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 TfrmYPKC.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) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete JYOrderCon_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmYPKC.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmYPKC.FormShow(Sender: TObject); begin InitForm(); end; procedure TfrmYPKC.TBTPClick(Sender: TObject); var FQty, FQty1, FMxQty, FPQty, FMxQtyS, FPQtyS: string; begin end; procedure TfrmYPKC.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmYPKC.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmYPKC.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 TfrmYPKC.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 TfrmYPKC.N1Click(Sender: TObject); begin SelOKNo(Order_Main, false); end; procedure TfrmYPKC.BuyNameChange(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 TfrmYPKC.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(',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(DParameters1) <> '高权限' then begin sql.Add('and A.Filler=''' + Trim(DName) + ''''); end; // sql.Add(' and ConNo like '''+'%'+Trim(ConNoM.Text)+'%'+''''); sql.Add(' and ' + Tedit(Sender).Name + ' like ' + quotedstr(trim('%' + trim(Tedit(Sender).Text) + '%'))); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmYPKC.cxTabControl1Change(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmYPKC.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('status').Index] = '2' then ACanvas.Brush.Color := clLime; end; procedure TfrmYPKC.N2Click(Sender: TObject); begin SelOKNo(Order_Main, true); end; procedure TfrmYPKC.ToolButton2Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; ModalResult := 1; end; procedure TfrmYPKC.p_ColorChange(Sender: TObject); begin if ADOQueryTemp.Active = False then Exit; SDofilter(ADOQueryTemp, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryTemp, Order_Main); SInitCDSData20(ADOQueryTemp, Order_Main); end; procedure TfrmYPKC.TV1DblClick(Sender: TObject); begin // if Trim(Order_Main.fieldbyname('MJID').AsString) = '' then // begin // Exit; // end; ModalResult := 1; end; end.