unit U_LCKQuery; 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, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxCheckBox, BtnEdit, RM_BarCode, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu, U_BaseList, Vcl.Menus, dxSkinBasic, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkroom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinOffice2016Colorful, dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful, dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinTheBezier, dxSkinValentine, dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark, dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint, dxSkinWXI, dxSkinXmas2008Blue, dxScrollbarAnnotations; type TfrmLCKQuery = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; Panel1: TPanel; GPM_1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; Label3: TLabel; LCKID: TEdit; ADOQueryPrint: TADOQuery; DS_1: TDataSource; CDS_1: TClientDataSet; ToolButton1: TToolButton; ToolButton2: TToolButton; Label5: TLabel; OrderNo: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; cxgrdbclmnTv3Column8: TcxGridDBColumn; cxgrdbclmnTv3Column1: TcxGridDBColumn; cxgrdbclmnTv3Column2: TcxGridDBColumn; cxgrdbclmnTv3Column9: TcxGridDBColumn; cxgrdbclmnTv3Column4: TcxGridDBColumn; cxgrdbclmnTv3Column5: TcxGridDBColumn; cxgrdbclmnTv3Column3: TcxGridDBColumn; cxgrdbclmnTv3Column7: TcxGridDBColumn; cxgrdbclmnTv3Column6: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; lbl1: TLabel; lbl2: TLabel; cxgrdbclmnTv1Column1: TcxGridDBColumn; cxgrdbclmnTv1Column2: TcxGridDBColumn; cxgrdbclmnTv1Column3: TcxGridDBColumn; cxgrdbclmnTv1Column4: TcxGridDBColumn; cxgrdbclmnTv1Column5: TcxGridDBColumn; pnl1: TPanel; lbl3: TLabel; edt1: TEdit; btn1: TButton; btn2: TButton; btn3: TToolButton; cxgrdbclmnTv1Column6: TcxGridDBColumn; btn4: TToolButton; cxgrdbclmnTv1Column7: TcxGridDBColumn; cxgrdbclmnTv1Column8: TcxGridDBColumn; cxgrdbclmnTv1Column9: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure LCKIDChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); procedure btn3Click(Sender: TObject); procedure Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure btn4Click(Sender: TObject); private FInt, PFInt: Integer; FFMainID, BPFlag, FFPCID, FLCKID: string; procedure InitGrid(); { Private declarations } public canshu1: string; { Public declarations } end; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_LabelPrint; {$R *.dfm} procedure TfrmLCKQuery.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; WriteCxGrid('DCG13', Tv1, '流程卡查询'); end; procedure TfrmLCKQuery.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmLCKQuery.InitGrid(); begin FFMainID := ''; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add('select count(I.PCID) IONumber,count(H.PCID) InspectNumber,OutNumber=(select count(C.LCKID) OutNumber from PB_LCK C inner join PB_CK_LCK B on C.LCKID=B.LCKID where B.LCKID = A.LCKID),A.LCKID,A.MainID,A.C_Code '); sql.Add(',A.C_Name,A.KKDate,A.KKPS,A.HCLNote,A.CraFt,A.CarNumber,A.IFBL,E.C_Color,E.C_Width,E.C_GramWeight,F.CarNo'); sql.Add(' from PB_LCK A INNER JOIN PB_CK_LCK G on A.LCKID = G.LCKID '); sql.Add(' INNER JOIN knit_Plan_Main D on A.MainId = D.Mainid '); sql.Add(' INNER JOIN Knit_Plan_Sub E on D.MainId = E.MainId '); sql.Add(' INNER JOIN Knit_Plan_Card F on F.PCID = G.PCID '); sql.Add(' left JOIN Trade_Cloth_Inspect H on H.MainId = A.MainID and H.PCID = G.PCID '); sql.add(' left JOIN V_Trade_Cloth_Io I on H.MainId = A.MainID and I.PCID = G.PCID and I.IOFlag = '''+'出库'''); sql.Add(' where A.KKDate>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + ''''); sql.Add(' and A.KKDate<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)) + ''''); sql.Add(' GROUP BY A.LCKID,A.MainID,A.C_Code,A.C_Name,A.KKDate,A.KKPS,A.HCLNote,A.CraFt,A.CarNumber,A.IFBL,E.C_Color,E.C_Width,E.C_GramWeight,F.CarNo'); //ShowMessage(sql.text); Open; end; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); finally ADOQueryMain.EnableControls; end; end; procedure TfrmLCKQuery.N1Click(Sender: TObject); begin SelOKNo(cds_1, true) end; procedure TfrmLCKQuery.N2Click(Sender: TObject); begin SelOKNo(cds_1, false); end; procedure TfrmLCKQuery.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmLCKQuery.ToolButton1Click(Sender: TObject); var WSql: string; begin if CDS_1.IsEmpty then Exit; Tv1.OnFocusedRecordChanged := nil; if CDS_1.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; WSql := ''; CDS_1.DisableControls; with CDS_1 do begin First; while not Eof do begin if CDS_1.fieldbyname('SSel').AsBoolean then begin if WSql <> '' then begin WSql := WSql + ',' + QuotedStr(Trim(CDS_1.fieldbyname('LCKID').AsString)); end else begin WSql := QuotedStr(Trim(CDS_1.fieldbyname('LCKID').AsString)); end; end; Next; end; end; CDS_1.Locate('SSel', True, []); CDS_1.EnableControls; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FPreviewPrint := False; FLMType := 'LCKQuery'; FFiltration1 := WSql; if ShowModal = 1 then begin // Self.InitGrid(); with ADOQueryCmd do begin end; end; end; finally frmLabelPrint.Free; end; end; procedure TfrmLCKQuery.ToolButton2Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption), Tv1, '流程卡查询'); end; procedure TfrmLCKQuery.ToolButton3Click(Sender: TObject); begin if CDS_1.IsEmpty then Exit; if CDS_1.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要作废数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; CDS_1.DisableControls; with CDS_1 do begin First; while CDS_1.Locate('SSel', True, []) do begin while CDS_1.FieldByName('SSel').AsBoolean = True do begin if Trim(CDS_1.fieldbyname('IsOffMachine').AsString) <> '是' then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update knit_Plan_Card set Status =''-1'' '); sql.Add(' ,DelId =''' + trim(DCode) + ''''); sql.Add(' ,Deler =''' + trim(DName) + ''''); sql.Add(' ,Deltime =getdate() '); sql.Add(' where PCID=''' + Trim(CDS_1.fieldbyname('PCID').AsString) + ''''); sql.Add(' and Status =''0'' '); ExecSQL; end; end; CDS_1.Delete; end; end; end; CDS_1.EnableControls; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; CDS_1.EnableControls; Application.MessageBox('作废失败!', '提示', 0); Exit; end; end; procedure TfrmLCKQuery.Tv1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if AViewInfo.GridRecord.Values[tv1.GetColumnByFieldName('IFBL').Index] = '是' then begin //设置列的单元格颜色 if AViewInfo.Item.Index = 14 then begin // 设置背景颜色 ACanvas.Brush.Color := clYellow; end; end; end; procedure TfrmLCKQuery.LCKIDChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); end; procedure TfrmLCKQuery.FormShow(Sender: TObject); begin ReadCxGrid(trim(self.Caption), Tv1, '流程卡查询'); BegDate.DateTime := SGetServerDate(ADOQueryTemp); EndDate.DateTime := SGetServerDate(ADOQueryTemp); InitGrid(); end; procedure TfrmLCKQuery.btn1Click(Sender: TObject); begin with ADOQueryCmd do begin Close; Sql.Clear; Sql.Add('update PB_LCK set CarNumber = ' + quotedstr(trim(edt1.text))); Sql.Add(' where LCKID = ' + quotedstr(trim(FLCKID))); //showmessage(sql.Text); ExecSQL; end; edt1.Text := ''; pnl1.Visible := false; cxGrid1.Enabled := true; InitGrid(); end; procedure TfrmLCKQuery.btn2Click(Sender: TObject); begin pnl1.Visible := false; cxGrid1.Enabled := true; edt1.Text := ''; end; procedure TfrmLCKQuery.btn3Click(Sender: TObject); begin if not CDS_1.Locate('SSel', True, []) then begin application.MessageBox('请选择数据', '提示'); Exit; end; FLCKID := Trim(CDS_1.fieldbyname('LCKID').AsString); edt1.Text := Trim(CDS_1.fieldbyname('CarNumber').AsString); pnl1.Visible := true; cxGrid1.Enabled := false; edt1.SetFocus; end; procedure TfrmLCKQuery.btn4Click(Sender: TObject); begin if not CDS_1.Locate('SSel', True, []) then begin application.MessageBox('请选择数据', '提示'); Exit; end; FLCKID := Trim(CDS_1.fieldbyname('LCKID').AsString); with ADOQueryCmd do begin Close; Sql.Clear; if (CDS_1.fieldbyname('IFBL').AsString = '否') or (CDS_1.fieldbyname('IFBL').AsString = '') or (CDS_1.fieldbyname('IFBL').AsString = null) then begin Sql.Add('update PB_LCK set IFBL = ' + quotedstr('是')); end else begin Sql.Add('update PB_LCK set IFBL = ' + quotedstr('否')); end; Sql.Add(' where LCKID = ' + quotedstr(trim(FLCKID))); //showmessage(sql.Text); ExecSQL; end; TBRafresh.Click; end; procedure TfrmLCKQuery.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; end.