unit U_KkAndDjList; 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, dxBarBuiltInMenu, cxPC; type TfrmKkAndDjList = 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; ToolButton1: TToolButton; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1Column21: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column26: TcxGridDBColumn; v1Column4: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v1Column22: TcxGridDBColumn; v1Column9: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v1Column11: TcxGridDBColumn; v1Column14: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column16: TcxGridDBColumn; v1Column12: TcxGridDBColumn; v1Column15: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column20: TcxGridDBColumn; v1Column23: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Column24: TcxGridDBColumn; v1Column25: TcxGridDBColumn; v1Column27: TcxGridDBColumn; v1Column28: TcxGridDBColumn; v1Column29: TcxGridDBColumn; v1Column30: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; Panel1: TPanel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label8: TLabel; Label6: TLabel; Label7: TLabel; Label12: TLabel; Label11: TLabel; Label16: TLabel; Label1: TLabel; Label10: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; SPcode: TEdit; FactoryName: TEdit; SPID: TEdit; SPSpec: TEdit; pihao: TEdit; ConNo: TEdit; rkType: TComboBox; RCGangNo: TEdit; PBFactoryName: TEdit; CheckBox1: TCheckBox; chkdate: TCheckBox; lidan: TEdit; YWY: TEdit; DJType: TEdit; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; cxTabControl1: TcxTabControl; ToolButton2: TToolButton; ToolButton3: TToolButton; 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 TBFindClick(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure SPIDKeyPress(Sender: TObject; var Key: Char); procedure SPIDChange(Sender: TObject); procedure SPSpecChange(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 ConNoKeyPress(Sender: TObject; var Key: Char); procedure ToolButton1Click(Sender: TObject); procedure Panel2Click(Sender: TObject); procedure Panel3Click(Sender: TObject); procedure Panel4Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); private procedure SetStatus(); procedure InitGrid(); { Private declarations } public canshu1: string; { Public declarations } end; var frmKkAndDjList: TfrmKkAndDjList; implementation uses U_DataLink, U_RTFun, U_ZDYHelp; {$R *.dfm} procedure TfrmKkAndDjList.SetStatus(); begin ToolButton2.Visible := False; ToolButton3.Visible := False; if cxTabControl1.TabIndex = 0 then begin ToolButton2.Visible := true; end else if cxTabControl1.TabIndex = 1 then begin ToolButton3.Visible := true; end; end; procedure TfrmKkAndDjList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmKkAndDjList.FormCreate(Sender: TObject); begin EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; end; procedure TfrmKkAndDjList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add('select A.*,sunhaoqty=(case when QtyUnit=''KG'' THEN ISNULL(ZPMJ,0)-ISNULL(QTY,0) ELSE ISNULL(ZPSL,0)-ISNULL(QTY,0) END ) '); 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(',rktype=(select crtype from CK_SXPB_CR b where B.SPID=A.FZSPID) '); 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.CRTime>=' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', Begdate.DateTime)))); sql.Add(' and A.CRTime<' + quotedstr(trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)))); end else begin end; if cxTabControl1.TabIndex = 0 then begin sql.Add('and ISNULL(ISXS,''0'')<>''1'''); end else begin sql.Add('and ISXS=''1'''); end; Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmKkAndDjList.TBRafreshClick(Sender: TObject); begin BegDate.SetFocus; InitGrid(); end; procedure TfrmKkAndDjList.ConNoMChange(Sender: TObject); begin if ADOQueryMain.Active then begin SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); end; end; procedure TfrmKkAndDjList.TBCloseClick(Sender: TObject); begin // WriteCxGrid(trim(self.Caption), Tv1, '开卡管理'); WriteCxGrid(trim(self.Caption), Tv1, '开卡与打卷对比'); Close; end; procedure TfrmKkAndDjList.FormShow(Sender: TObject); begin SetStatus(); ReadCxGrid(trim(self.Caption), Tv1, '开卡与打卷对比'); InitGrid(); end; procedure TfrmKkAndDjList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then exit; TcxGridToExcel('待检布入库列表', cxGrid2); end; procedure TfrmKkAndDjList.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 TfrmKkAndDjList.N1Click(Sender: TObject); begin SelOKNo(CDS_Main, True); end; procedure TfrmKkAndDjList.N2Click(Sender: TObject); begin SelOKNo(CDS_Main, False); end; procedure TfrmKkAndDjList.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 TfrmKkAndDjList.SPIDChange(Sender: TObject); begin if Length(Trim(SPID.Text)) < 4 then begin if Trim(SPID.Text) <> '' then Exit; end; TBFind.Click; end; procedure TfrmKkAndDjList.SPSpecChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmKkAndDjList.FactoryNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmKkAndDjList.FormDestroy(Sender: TObject); begin frmKkAndDjList := nil; end; procedure TfrmKkAndDjList.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 TfrmKkAndDjList.CheckBox1Click(Sender: TObject); begin // if chkdate.Checked then // CheckBox1.Checked := False; InitGrid(); end; procedure TfrmKkAndDjList.ConNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then 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=''入库'' '); sql.Add(' and A.ConNo like ' + quotedstr('%' + trim(ConNo.Text) + '%')); Open; end; SCreateCDS20(ADOQueryMain, CDS_Main); SInitCDSData20(ADOQueryMain, CDS_Main); finally ADOQueryMain.EnableControls; end; end; end; procedure TfrmKkAndDjList.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 TfrmKkAndDjList.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 TfrmKkAndDjList.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 TfrmKkAndDjList.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 TfrmKkAndDjList.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmKkAndDjList.ToolButton2Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' UPDATE CK_SXPB_CR SET ISXS=''1'' WHERE SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); execsql; end; CDS_Main.Delete; end; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.EnableControls; Application.MessageBox('操作成功!', '提示', 0); except ADOQueryCmd.Connection.RollbackTrans; CDS_Main.EnableControls; Application.MessageBox('更新异常!', '提示', 0); end; InitGrid(); end; procedure TfrmKkAndDjList.ToolButton3Click(Sender: TObject); begin if CDS_Main.IsEmpty then Exit; if CDS_Main.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; try ADOQueryCmd.Connection.BeginTrans; CDS_Main.DisableControls; with CDS_Main do begin First; while CDS_Main.Locate('SSel', True, []) do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' UPDATE CK_SXPB_CR SET ISXS=NULL WHERE SPID=''' + Trim(CDS_Main.fieldbyname('SPID').AsString) + ''''); execsql; end; CDS_Main.Delete; end; end; ADOQueryCmd.Connection.CommitTrans; CDS_Main.EnableControls; Application.MessageBox('操作成功!', '提示', 0); except ADOQueryCmd.Connection.RollbackTrans; CDS_Main.EnableControls; Application.MessageBox('更新异常!', '提示', 0); end; InitGrid(); end; end.