unit U_PBJCList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridCustomTableView, cxGridTableView, cxGridBandedTableView, cxGridDBBandedTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridDBTableView, cxGrid, StdCtrls, ComCtrls, ExtCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxDropDownEdit, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, Menus, cxCalendar, cxButtonEdit, cxTextEdit, BtnEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator; type TfrmPBJCList = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBExport: TToolButton; TBClose: TToolButton; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; cxGridPopupMenu1: TcxGridPopupMenu; CDS_Main: TClientDataSet; RM1: TRMGridReport; RMDBMain: TRMDBDataSet; RMXLSExport1: TRMXLSExport; RMDBHZ: TRMDBDataSet; CDS_HZ: TClientDataSet; CDS_PRT: TClientDataSet; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; ADOQueryPrint: TADOQuery; Panel1: TPanel; Label2: TLabel; Label3: TLabel; Label8: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; SPcode: TEdit; PIHAO: TEdit; CheckBox1: TCheckBox; chkdate: TCheckBox; cxGrid1: TcxGrid; TV1: TcxGridDBBandedTableView; cxGridDBBandedColumn35: TcxGridDBBandedColumn; cxGridDBBandedColumn51: TcxGridDBBandedColumn; cxGridDBBandedColumn52: TcxGridDBBandedColumn; cxGridDBBandedColumn56: TcxGridDBBandedColumn; cxGridDBBandedColumn57: TcxGridDBBandedColumn; cxGridDBBandedColumn59: TcxGridDBBandedColumn; cxGridDBBandedColumn61: TcxGridDBBandedColumn; cxGridDBBandedColumn63: TcxGridDBBandedColumn; cxGridDBBandedColumn77: TcxGridDBBandedColumn; cxGridDBBandedColumn79: TcxGridDBBandedColumn; cxGridDBBandedColumn81: TcxGridDBBandedColumn; cxGridDBBandedColumn87: TcxGridDBBandedColumn; cxGridDBBandedColumn91: TcxGridDBBandedColumn; V1Column6: TcxGridDBBandedColumn; V1Column27: TcxGridDBBandedColumn; V1Column7: TcxGridDBBandedColumn; V1Column3: TcxGridDBBandedColumn; V1Column8: TcxGridDBBandedColumn; cxGridLevel2: TcxGridLevel; TV1Column1: TcxGridDBBandedColumn; TV1Column2: TcxGridDBBandedColumn; TV1Column3: TcxGridDBBandedColumn; TV1Column4: TcxGridDBBandedColumn; TV1Column5: TcxGridDBBandedColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoMChange(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure SPIDKeyPress(Sender: TObject; var Key: Char); procedure PIHAOChange(Sender: TObject); procedure FactoryNameChange(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure CheckBox1Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure Panel2Click(Sender: TObject); procedure Panel3Click(Sender: TObject); procedure Panel4Click(Sender: TObject); procedure V1Column27CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); procedure TBFindClick(Sender: TObject); procedure SPcodeChange(Sender: TObject); private procedure SetStatus(); procedure InitGrid(); { Private declarations } public canshu1: string; { Public declarations } end; var frmPBJCList: TfrmPBJCList; implementation uses U_DataLink, U_RTFun, U_ZDYHelp; {$R *.dfm} procedure TfrmPBJCList.SetStatus(); begin end; procedure TfrmPBJCList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmPBJCList.FormCreate(Sender: TObject); begin EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; end; procedure TfrmPBJCList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add('select * from ('); SQL.Add('select A.SPID,convert(varchar(10),a.crtime,120) AS RKDATE,A.SPCODE,A.PIHAO,A.FactoryName,A.PIQTY AS RKPS,A.QTY AS RKQTY ,B.PIQTY AS CKPS ,B.QTY AS CKQTY '); SQL.Add(',B.ToFactoryName,convert(varchar(10),b.crtime,120) AS CKDATE'); SQL.Add(',A.QTYUNIT ,KCPS=(select sum(crqtyflag*ISNULL(piqty,0)) from CK_SXPB_CR c where c.fzspid=a.spid ),KCQty=(select sum(crqtyflag*ISNULL(qty,0)) from CK_SXPB_CR c where c.fzspid=a.spid )'); SQL.Add('from CK_SXPB_CR A '); SQL.Add('LEFT JOIN CK_SXPB_CR B ON A.SPID=B.FZSPID AND B.CRFlag=''出库'' AND B.CKName=''坯布'''); SQL.Add('where A.CKName=''坯布'' and A.CRFlag=''入库'''); if chkdate.Checked then begin sql.Add(' and A.CRTime>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' and A.CRTime<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); end; sql.Add(')AA WHERE 1=1'); if CheckBox1.Checked = True then begin SQL.Add('AND KCPS>0 AND KCQTY>0'); end; SQL.Add('ORDER BY RKDATE DESC'); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmPBJCList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmPBJCList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmPBJCList.TBCloseClick(Sender: TObject); begin WriteCxBandedGrid(trim(self.Caption), Tv1, '坯布进出对照表'); Close; end; procedure TfrmPBJCList.FormShow(Sender: TObject); begin ReadCxBandedGrid(trim(self.Caption), Tv1, '坯布进出对照表'); // ReadCxGrid(trim(self.Caption), Tv1, '开卡管理'); InitGrid(); end; procedure TfrmPBJCList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('坯布进出对照表', cxGrid1); end; procedure TfrmPBJCList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmPBJCList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmPBJCList.SPIDKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin {if Length(Trim(SPID.Text))<4 then Exit; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered:=False; Close; sql.Clear; sql.Add(' select A.* '); sql.Add(',ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId)'); //sql.Add(' ,ConNo=(select ConNo from Contract_Main CM where CM.MainId=A.CGMainId )'); sql.Add(' from CK_SXPB_CR A'); sql.add(' where SPID like :SXID'); Parameters.ParamByName('SXID').Value:='%'+Trim(SXID.Text)+'%'; Open; //ShowMessage(SQL.Text); end; SCreateCDS20(ADOQueryMain,CDS_Main); SInitCDSData20(ADOQueryMain,CDS_Main); finally ADOQueryMain.EnableControls; end; } end; end; procedure TfrmPBJCList.PIHAOChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmPBJCList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmPBJCList.FormDestroy(Sender: TObject); begin frmPBJCList := nil; end; procedure TfrmPBJCList.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var Fsunhao: double; begin if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('sunhao').Index] = null then Exit; Fsunhao := AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('sunhao').Index]; if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('ZPPS').Index] = null then Exit; if (AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('ZPPS').Index]) > 0 then begin //损耗±2% 绿色、 损耗±2% ~ ±5% 黄色、 损耗大于±5% 红色 if Fsunhao < 0 then Fsunhao := -Fsunhao; if Fsunhao <= 2 then ACanvas.Brush.Color := clMoneyGreen; if (Fsunhao > 2) and (Fsunhao <= 5) then ACanvas.Brush.Color := $00FFFF80; if Fsunhao > 5 then ACanvas.Brush.Color := $008080FF; end; end; procedure TfrmPBJCList.CheckBox1Click(Sender: TObject); begin if chkdate.Checked then CheckBox1.Checked := False; InitGrid(); end; procedure TfrmPBJCList.ToolButton1Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin First; while not eof do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' exec P_UPdate_LCKJY ''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); execsql; end; CDS_Main.Next; end; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.EnableControls; except ADOQueryCmd.Connection.RollbackTrans; CDS_Main.EnableControls; Application.MessageBox('更新异常!', '提示', 0); end; InitGrid(); end; procedure TfrmPBJCList.Panel2Click(Sender: TObject); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add('select A.* '); sql.Add(',lidan=(select lidan from JYOrder_Main X where X.orderNo=A.QCorderNo) '); sql.Add(',YWY=(select YWY from JYOrder_Main X where X.orderNo=A.QCorderNo) '); sql.Add(',DJType=(select DJType from JYOrder_Main X where X.orderNo=A.QCorderNo) '); sql.Add(' from CK_SXPB_CR A'); sql.Add(' where isnull(CKName,'''')=''待检布'' and CRFlag=''入库'' '); if CheckBox1.Checked then begin sql.Add(' and isnull(DJJS,0)=0 '); end; if chkdate.Checked then begin sql.Add(' and A.DJDate>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' and A.DJDate<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); end else begin sql.Add(' and A.CRTime>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' and A.CRTime<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); end; sql.Add(' and ABS(A.sunhao)<=2'); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmPBJCList.Panel3Click(Sender: TObject); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add('select A.* '); sql.Add(',lidan=(select lidan from JYOrder_Main X where X.orderNo=A.QCorderNo) '); sql.Add(',YWY=(select YWY from JYOrder_Main X where X.orderNo=A.QCorderNo) '); sql.Add(',DJType=(select DJType from JYOrder_Main X where X.orderNo=A.QCorderNo) '); sql.Add(' from CK_SXPB_CR A'); sql.Add(' where isnull(CKName,'''')=''待检布'' and CRFlag=''入库'' '); if CheckBox1.Checked then begin sql.Add(' and isnull(DJJS,0)=0 '); end; if chkdate.Checked then begin sql.Add(' and A.DJDate>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' and A.DJDate<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); end else begin sql.Add(' and A.CRTime>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' and A.CRTime<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); end; sql.Add(' and ABS(A.sunhao)>2 and ABS(A.sunhao)<=5 '); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmPBJCList.Panel4Click(Sender: TObject); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add('select A.* '); sql.Add(',lidan=(select lidan from JYOrder_Main X where X.orderNo=A.QCorderNo) '); sql.Add(',YWY=(select YWY from JYOrder_Main X where X.orderNo=A.QCorderNo) '); sql.Add(',DJType=(select DJType from JYOrder_Main X where X.orderNo=A.QCorderNo) '); sql.Add(' from CK_SXPB_CR A'); sql.Add(' where isnull(CKName,'''')=''待检布'' and CRFlag=''入库'' '); if CheckBox1.Checked then begin sql.Add(' and isnull(DJJS,0)=0 '); end; if chkdate.Checked then begin sql.Add(' and A.DJDate>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' and A.DJDate<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); end else begin sql.Add(' and A.CRTime>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' and A.CRTime<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); end; sql.Add(' and ABS(A.sunhao)>5 '); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmPBJCList.V1Column27CompareRowValuesForCellMerging(Sender: TcxGridColumn; ARow1: TcxGridDataRow; AProperties1: TcxCustomEditProperties; const AValue1: Variant; ARow2: TcxGridDataRow; AProperties2: TcxCustomEditProperties; const AValue2: Variant; var AAreEqual: Boolean); begin if ARow1.Values[TV1Column4.Index] = ARow2.Values[TV1Column4.Index] then AAreEqual := True else AAreEqual := False; end; procedure TfrmPBJCList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); end; end; procedure TfrmPBJCList.SPcodeChange(Sender: TObject); begin TBFind.Click(); end; end.