unit U_KnitPlanMach; 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, cxPC, MovePanel, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, U_BaseList, Vcl.Menus; type TfrmKnitPlanMach = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBDel: TToolButton; TBClose: TToolButton; GPM_1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DS_1: TDataSource; CDS_1: TClientDataSet; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton6: TToolButton; DS_2: TDataSource; CDS_2: TClientDataSet; GPM_2: TcxGridPopupMenu; Panel4: TPanel; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridLevel1: TcxGridLevel; ToolButton12: TToolButton; PM_1: TPopupMenu; N1: TMenuItem; PM_2: TPopupMenu; N2: TMenuItem; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; ToolButton13: TToolButton; Panel1: TPanel; Label1: TLabel; Label3: TLabel; Label5: TLabel; Label4: TLabel; Label2: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; ConNo: TEdit; C_CodeName: TEdit; orderno: TEdit; C_Code: TEdit; BatchNoHZ: TEdit; GCCode: TEdit; JHChejian: TEdit; RTQYJTInfo: TEdit; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; Tv1Column1: TcxGridDBColumn; v1OrderNo: TcxGridDBColumn; Tv1Column2: TcxGridDBColumn; v1Column31: TcxGridDBColumn; v1Column20: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; v1Column8: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column5: TcxGridDBColumn; v1Qty1: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column4: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; TV2Column1: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; TV2Column3: TcxGridDBColumn; TV2Column6: TcxGridDBColumn; cxTabControl1: TcxTabControl; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure ConNoChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure ToolButton12Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure ToolButton13Click(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); private procedure InitGrid1(); procedure InitGrid2(); procedure UpdateJTInfo(RTMainId: string); function SaveJT(MCarNo, MCheJian: string): Boolean; { Private declarations } public canshu1: string; { Public declarations } end; implementation uses U_DataLink, U_RTFun, U_ZDYHelp, U_KnitPlanMachInPut; {$R *.dfm} procedure TfrmKnitPlanMach.InitGrid1(); var fwhere: string; begin BegDate.SetFocus; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; // sql.Add(' ,APPS=(select Count(*) from knit_Plan_Card AA where AA.MainId=A.MainId)'); // sql.Add(' ,JYPS=(select Count(*) from knit_Cloth_Inspect AA where AA.MainId=A.MainId)'); // sql.Add(' ,JYQtyKg=(select sum(MJMaoZ) from knit_Cloth_Inspect AA where AA.MainId=A.MainId)'); // sql.Add(' ,RKPS=(select Count(*) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''入库'')'); // sql.Add(' ,RKQtyKg=(select sum(KgQty) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''入库'')'); // sql.Add(' ,CKPS=(select Count(*) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''出库'')'); // sql.Add(' ,CKQtyKg=(select sum(KgQty) from knit_Cloth_IO AA where AA.MainId=A.MainId and CRFlag=''出库'')'); //SQL.Add(',CustomerNoName=(select CustomerNoName from JYOrderCon_Main_PB X where X.MainId=A.ConMainId) '); sql.Add(' select A.*,B.*'); sql.Add(' ,CardQty=OrdPiece-ISNULL((select sum(CardQty) from knit_Plan_Mach AA where AA.SubId=B.SubId),0)'); sql.Add(' from knit_Plan_Main A'); sql.Add(' inner join knit_Plan_Sub B on A.MainId=B.MainId'); // sql.Add(' where 1=1 '); // // fwhere := fwhere + (' and A.QDTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + ''''); // fwhere := fwhere + (' and A.QDTime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + ''''); Open; end; SCreateCDS(ADOQueryMain, CDS_1); SInitCDSData(ADOQueryMain, CDS_1); finally ADOQueryMain.EnableControls; end; end; procedure TfrmKnitPlanMach.InitGrid2(); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from Knit_Plan_Mach A '); sql.Add(' order by A.MCNO'); Open; end; SCreateCDS(ADOQueryTemp, CDS_2); SInitCDSData(ADOQueryTemp, CDS_2); end; procedure TfrmKnitPlanMach.N1Click(Sender: TObject); begin with ADOQueryTemp do begin close; sql.Clear; sql.Add(' select * from knit_Plan_Card A where A.PMID=' + quotedstr(trim(CDS_1.fieldbyname('PMID').AsString))); Open; end; if not ADOQueryTemp.IsEmpty then begin Application.MessageBox('已安排布匹不能删除!', '提示', 0); Exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('delete knit_Plan_Mach '); sql.Add('where PMID=' + quotedstr(trim(CDS_1.fieldbyname('PMID').AsString))); sql.Add(' and not exists(select * from knit_Plan_Card A where A.PMID=knit_Plan_Mach.PMID) '); execsql; end; CDS_1.Delete; end; function TfrmKnitPlanMach.SaveJT(MCarNo, MCheJian: string): Boolean; var maxno: string; begin Result := False; try ADOQueryCmd.Connection.BeginTrans; if GetLSNo(ADOQueryCmd, maxno, 'JT', 'knit_Plan_Mach', 3, 1) = False then begin CDS_2.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取安排机台流水号失败!', '提示', 0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from knit_Plan_Mach where 1=2'); Open; end; with ADOQueryCmd do begin Append; FieldByName('MainId').Value := Trim(CDS_1.fieldbyname('MainId').AsString); FieldByName('SubId').Value := Trim(CDS_1.fieldbyname('SubId').AsString); FieldByName('JTID').Value := Trim(maxno); FieldByName('CarNo').Value := Trim(MCarNo); FieldByName('CheJian').Value := Trim(MCheJian); FieldByName('StopFlag').Value := 0; FieldByName('DOTime').Value := SGetServerDateTime(ADOQueryTemp); FieldByName('DOPerson').Value := Trim(DName); FieldByName('QYTime').Value := SGetServerDateTime(ADOQueryTemp); FieldByName('QYPerson').Value := Trim(DName); FieldByName('Filler').Value := Trim(DName); Post; end; UpdateJTInfo(Trim(CDS_1.fieldbyname('MainId').AsString)); ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; CDS_2.EnableControls; Result := False; Application.MessageBox('保存异常!', '提示', 0); end; end; procedure TfrmKnitPlanMach.FormDestroy(Sender: TObject); begin inherited; // frmClothSCListAnPaiJiTaiAP:=nil; end; procedure TfrmKnitPlanMach.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmKnitPlanMach.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmKnitPlanMach.TBFindClick(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 TfrmKnitPlanMach.TBRafreshClick(Sender: TObject); begin InitGrid1(); end; procedure TfrmKnitPlanMach.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 TfrmKnitPlanMach.FormShow(Sender: TObject); begin inherited; ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '指示单管理'); ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '指示单管理'); EndDate.DateTime := SGetServerDate(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 60; InitGrid1(); InitGrid2(); end; procedure TfrmKnitPlanMach.ToolButton1Click(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 Locate('SSel', True, []) = True do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate knit_Plan_Main Set Begtime=getdate(),BegPerson=''' + Trim(DName) + ''' '); sql.Add(' where MainId=''' + Trim(CDS_1.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; CDS_1.Delete; end; end; CDS_1.EnableControls; ADOQueryCmd.Connection.CommitTrans; except CDS_1.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!', '提示', 0); end; end; procedure TfrmKnitPlanMach.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 Locate('SSel', True, []) = True do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate knit_Plan_Main Set Endtime=getdate(),EndPerson=''' + Trim(DName) + ''',EndFlag=1'); sql.Add(' where MainId=''' + Trim(CDS_1.fieldbyname('MainId').AsString) + ''''); sql.Add('UPdate knit_Plan_Mach SET StopFlag=1,DOTime=getdate(),DOPerson=''' + Trim(DName) + ''''); sql.Add(',TYTime=getdate(),TYPerson=''' + Trim(DName) + ''''); sql.Add(' where MainId=' + quotedstr(trim(CDS_1.fieldbyname('MainId').AsString))); sql.Add(' and StopFlag=0'); ExecSQL; end; UpdateJTInfo(Trim(CDS_1.fieldbyname('MainId').AsString)); CDS_1.Delete; end; end; CDS_1.EnableControls; ADOQueryCmd.Connection.CommitTrans; except CDS_1.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!', '提示', 0); end; end; procedure TfrmKnitPlanMach.TBDelClick(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 Locate('SSel', True, []) = True do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate knit_Plan_Main Set Endtime=getdate(),EndPerson=''' + Trim(DName) + ''',EndFlag=0'); sql.Add(' where MainId=''' + Trim(CDS_1.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; CDS_1.Delete; end; end; CDS_1.EnableControls; ADOQueryCmd.Connection.CommitTrans; except CDS_1.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!', '提示', 0); end; end; procedure TfrmKnitPlanMach.ToolButton2Click(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 Locate('SSel', True, []) = True do begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('UPdate knit_Plan_Main Set Begtime=getdate(),BegPerson=''' + Trim(DName) + ''',BegFlag=0'); sql.Add(' where MainId=''' + Trim(CDS_1.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; CDS_1.Delete; end; end; CDS_1.EnableControls; ADOQueryCmd.Connection.CommitTrans; except CDS_1.EnableControls; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('操作异常!', '提示', 0); end; end; procedure TfrmKnitPlanMach.cxTabControl1Change(Sender: TObject); begin InitGrid1(); end; procedure TfrmKnitPlanMach.ToolButton6Click(Sender: TObject); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'WFBCPBZZ'; flagname := '疵点'; fnote := True; // V1Note.Caption:='英文名称'; if ShowModal = 1 then begin end; end; finally frmZDYHelp.Free; end; end; procedure TfrmKnitPlanMach.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitGrid2(); end; procedure TfrmKnitPlanMach.UpdateJTInfo(RTMainId: string); begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('Update knit_Plan_Sub Set RTAPJTQty=(select Count(*) from knit_Plan_Mach A where A.MainId=knit_Plan_Sub.MainId )'); // sql.Add(',RTAPJTInfo=dbo.F_Get_Order_SubStr_PB(knit_Plan_Sub.MainId,''RTAPJTInfo'')'); sql.Add(',RTQYJTQty=(select Count(*) from knit_Plan_Mach A where A.MainId=knit_Plan_Sub.MainId and StopFlag=0 )'); // sql.Add(',RTQYJTInfo=dbo.F_Get_Order_SubStr_PB(knit_Plan_Sub.MainId,''RTQYJTInfo'')'); sql.Add(',RTTYJTQty=(select Count(*) from knit_Plan_Mach A where A.MainId=knit_Plan_Sub.MainId and StopFlag=1 )'); // sql.Add(',RTTYJTInfo=dbo.F_Get_Order_SubStr_PB(knit_Plan_Sub.MainId,''RTTYJTInfo'')'); sql.Add(' where MainId=''' + Trim(RTMainId) + ''''); //Parameters.ParamByName('MainId').Value:=Trim(RTMainId); ExecSQL; end; end; procedure TfrmKnitPlanMach.ToolButton12Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '指示单管理'); WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '指示单管理'); end; procedure TfrmKnitPlanMach.ToolButton13Click(Sender: TObject); begin try frmKnitPlanMachInPut := TfrmKnitPlanMachInPut.Create(Application); with frmKnitPlanMachInPut do begin FMainId := Trim(Self.CDS_1.fieldbyname('MainId').AsString); FSubId := Trim(Self.CDS_1.fieldbyname('SubId').AsString); if ShowModal = 1 then begin // InitGrid(); end; end; finally frmKnitPlanMachInPut.Free; end; end; end.