unit U_KnitPlanCard; 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 TfrmKnitPlanCard = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBClose: TToolButton; Panel1: TPanel; GPM_1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; Label3: TLabel; ConNo: TEdit; ADOQueryPrint: TADOQuery; CarNo: TEdit; Label1: TLabel; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; cxGridLevel2: TcxGridLevel; v3Column1: TcxGridDBColumn; v3Column2: TcxGridDBColumn; Label2: TLabel; C_Name: TEdit; DS_1: TDataSource; CDS_1: TClientDataSet; Label4: TLabel; C_Code: TEdit; v3Column6: TcxGridDBColumn; v3Column8: TcxGridDBColumn; v3Column14: TcxGridDBColumn; v3Column15: TcxGridDBColumn; v3Column16: TcxGridDBColumn; cxTabControl1: TcxTabControl; Tv1Column1: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; ToolButton1: TToolButton; ToolButton2: TToolButton; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Label5: TLabel; OrderNo: TEdit; Tv1Column9: TcxGridDBColumn; Label6: TLabel; BatchNo: TEdit; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; ToolButton3: TToolButton; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; Tv1Column13: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; Tv1Column15: TcxGridDBColumn; Tv1Column16: TcxGridDBColumn; Tv1Column17: TcxGridDBColumn; Tv1Column18: TcxGridDBColumn; IsOffMachine: TComboBox; Label7: TLabel; ToolButton4: TToolButton; Panel3: TPanel; Label8: TLabel; JTH: TComboBox; Button1: TButton; Button2: TButton; Tv1Column19: TcxGridDBColumn; Tv1Column20: TcxGridDBColumn; Tv1Column21: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoChange(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 ToolButton4Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private FInt, PFInt: Integer; FFMainID, BPFlag, FFPCID: string; procedure InitGrid(); { Private declarations } public canshu1: string; { Public declarations } end; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_LabelPrint; {$R *.dfm} procedure TfrmKnitPlanCard.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; WriteCxGrid('DCG13', Tv1, '坯布生产2'); end; procedure TfrmKnitPlanCard.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmKnitPlanCard.InitGrid(); begin FFMainID := ''; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; sql.Clear; sql.Add('select isnull(IsOffMachine,''否'') AS IsOffMachine '); sql.Add(' ,A.*,C.*,D.*,ISJY=cast(A.Status AS bit)'); sql.Add(' from Knit_Plan_Card A '); sql.Add(' inner join knit_Plan_Sub C on A.SubId=C.SubId'); sql.Add(' inner join knit_Plan_Main D on A.MainId=D.MainId'); sql.Add(' where A.Status = ''0'' '); case cxTabControl1.TabIndex of 0: begin sql.Add(' and PRTCount=0'); sql.Add(' Order by A.Filltime Desc'); end; 1: begin sql.Add(' and PRTCount>0'); sql.Add(' Order by A.PRTDate Desc'); end; 2: begin sql.Add(' Order by A.PRTDate Desc,A.Filltime Desc'); end; end; // ShowMessage(sql.text); Open; end; SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); finally ADOQueryMain.EnableControls; end; end; procedure TfrmKnitPlanCard.N1Click(Sender: TObject); begin SelOKNo(cds_1, true) end; procedure TfrmKnitPlanCard.N2Click(Sender: TObject); begin SelOKNo(cds_1, false); end; procedure TfrmKnitPlanCard.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmKnitPlanCard.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('PCID').AsString)); end else begin WSql := QuotedStr(Trim(CDS_1.fieldbyname('PCID').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 := 'KnitPlanCard'; FFiltration1 := WSql; if ShowModal = 1 then begin // Self.InitGrid(); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('update Knit_Plan_Card '); sql.Add('set PRTer=' + quotedstr(DName)); sql.Add(', PRTCount=PRTCount+1'); sql.Add(', PRTDate=getdate()'); sql.Add(' where PCID in (' + WSql + ')'); ExecSQL; end; end; end; finally frmLabelPrint.Free; end; end; procedure TfrmKnitPlanCard.ToolButton2Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption), Tv1, '坯布生产2'); end; procedure TfrmKnitPlanCard.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 TfrmKnitPlanCard.ToolButton4Click(Sender: TObject); begin if CDS_1.IsEmpty then Exit; if CDS_1.Locate('SSel', True, []) = False then begin Application.MessageBox('没有选择数据!', '提示', 0); Exit; end; panel3.Visible := True; FFPCID := Trim(CDS_1.fieldbyname('PCID').AsString); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select MCNO as name from BS_Machine order by [dbo].[getNum](MCNO)'); Open; end; JTH.Items.Clear; //清空 while not ADOQueryCmd.eof do begin JTH.Items.Add(ADOQueryCmd.fieldbyname('name').AsString); ADOQueryCmd.next; end; end; procedure TfrmKnitPlanCard.Button1Click(Sender: TObject); begin if trim(JTH.text) = '' 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 with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update knit_Plan_Card set XGer =''' + trim(DName) + ''''); sql.Add(' ,XGTime =getdate() '); sql.Add(' ,YuanCarNo =CarNo'); sql.Add(' ,CarNo =''' + trim(JTH.Text) + ''''); sql.Add(' where PCID=''' + Trim(CDS_1.fieldbyname('PCID').AsString) + ''''); sql.Add(' and Status =''0'' '); // ShowMessage(sql.text); ExecSQL; end; Edit; CDS_1.FieldByName('CarNo').Value := trim(JTH.Text); CDS_1.FieldByName('SSel').Value := false; end; end; end; CDS_1.EnableControls; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; CDS_1.EnableControls; Application.MessageBox('修改失败!', '提示', 0); Exit; end; panel3.Visible := false; CDS_1.Locate('PCID', FFPCID, []); end; procedure TfrmKnitPlanCard.Button2Click(Sender: TObject); begin panel3.Visible := false; end; procedure TfrmKnitPlanCard.ConNoChange(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 TfrmKnitPlanCard.FormShow(Sender: TObject); begin inherited; ReadCxGrid(trim(self.Caption), Tv1, '坯布生产2'); // fsj := 'select distinct Code=Null,Name=MCCJ from Machine Group by MCCJ '; // SInitComBoxBySql(ADOQueryTemp, CheJian, False, fsj); InitGrid(); end; procedure TfrmKnitPlanCard.cxTabControl1Change(Sender: TObject); begin InitGrid(); end; end.