unit U_KnitDRList; 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, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, cxPC, cxButtonEdit, cxDropDownEdit, cxTextEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinsDefaultPainters, U_BaseList, dxDateRanges, 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, cxContainer, FrameDateSel; type TfrmKnitDRList = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; GPM_1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; v1OrdDate: TcxGridDBColumn; Order_Main: TClientDataSet; ToolButton1: TToolButton; v1Column4: TcxGridDBColumn; Panel1: TPanel; Label4: TLabel; Label8: TLabel; Label12: TLabel; Label13: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; ToCoName: TcxTextEdit; MPRTCodeName: TcxTextEdit; MPRTKZ: TcxTextEdit; MPRTMF: TcxTextEdit; cxTabControl1: TcxTabControl; tchk: TToolButton; Tnochk: TToolButton; cxSplitter1: TcxSplitter; DS_2: TDataSource; v1Column8: TcxGridDBColumn; ClientDataSet2: TClientDataSet; GPM_2: TcxGridPopupMenu; v1Column13: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column27: TcxGridDBColumn; btnWC: TToolButton; btnWCCX: TToolButton; CheckBox1: TCheckBox; ToolButton6: TToolButton; Label1: TLabel; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; v1Column6: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cv1Column3: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; TV2Column1: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; TV2Column3: TcxGridDBColumn; TV2Column4: TcxGridDBColumn; TV2Column5: TcxGridDBColumn; PM_1: TPopupMenu; PM11: TMenuItem; N1: TMenuItem; Tv1Column1: TcxGridDBColumn; TV2Column6: TcxGridDBColumn; TV2Column7: TcxGridDBColumn; Label2: TLabel; frmFrameDateSel: TfrmFrameDateSel; //RMllPDFExport1: TRMllPDFExport; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToCoNameChange(Sender: TObject); procedure tchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure btnWCClick(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure btnWCCXClick(Sender: TObject); procedure v1Column7PropertiesEditValueChanged(Sender: TObject); procedure Tv1Column9PropertiesEditValueChanged(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure PM11Click(Sender: TObject); procedure N1Click(Sender: TObject); private procedure InitGrid(); procedure InitSubGrid(); procedure InitForm(); procedure SetStatus(); function DelData(): Boolean; { Private declarations } public FFInt: Integer; canshu1, canshu2: string; { Public declarations } end; //var //frmContractListNX: TfrmContractListNX; implementation uses U_DataLink, U_KnitDRtInPut, U_RTFun, U_ZDYHelp, U_LabelPrint; {$R *.dfm} procedure TfrmKnitDRList.SetStatus(); begin tchk.Enabled := False; Tnochk.Enabled := False; btnWC.Enabled := False; btnWCCX.Enabled := False; TBEdit.Enabled := False; if canshu1 = '管理' then begin case cxTabControl1.TabIndex of 0: begin tchk.Enabled := true; TBEdit.Enabled := true; end; 1: begin Tnochk.Enabled := true; btnWC.Enabled := true; end; 2: begin btnWCCX.Enabled := true; end; end; end else begin case cxTabControl1.TabIndex of 0: begin tchk.Enabled := true; TBEdit.Enabled := true; end; 1: begin Tnochk.Enabled := true; btnWC.Enabled := true; end; 2: begin btnWCCX.Enabled := true; end; end; end; end; procedure TfrmKnitDRList.FormDestroy(Sender: TObject); begin inherited; //frmFHSQList:=nil; end; procedure TfrmKnitDRList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmKnitDRList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmKnitDRList.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; Sql.Add(' select A.* '); sql.Add(' from Knit_Cloth_DR_Main A where 1=1'); if CheckBox1.Checked then begin sql.Add(' and Filltime>=''' + FormatDateTime('yyyy-MM-dd', frmFrameDateSel.begdate.Date) + ''' '); sql.Add(' and Filltime<''' + FormatDateTime('yyyy-MM-dd', frmFrameDateSel.Enddate.Date + 1) + ''' '); end; case cxTabControl1.TabIndex of 0: begin SQL.Add(' and isnull(A.status,''0'')=''0'' '); end; 1: begin SQL.Add(' and isnull(A.status,''0'')=''9'' '); end; 2: begin SQL.Add(' and isnull(A.status,''0'')=''10'' '); end; end; if Trim(canshu1) <> '管理' then begin sql.Add(' and isnull(A.Filler,'''')=''' + Trim(DName) + ''''); end; sql.Add(' order by Filltime desc '); // ShowMessage(sql.Text); Open; end; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; TV1.DataController.Filter.Clear; TV2.DataController.Filter.Clear; end; end; procedure TfrmKnitDRList.InitForm(); begin ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '发货管理'); ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '发货管理'); frmFrameDateSel.EndDate.Date := SGetServerDate(ADOQueryTemp); frmFrameDateSel.BegDate.Date := frmFrameDateSel.EndDate.Date - 60; InitGrid(); end; procedure TfrmKnitDRList.TBFindClick(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; procedure TfrmKnitDRList.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('exec P_Fin_Flow_Judge '); Sql.Add(' @FFIDS=' + quotedstr(Trim(Order_Main.fieldbyname('DRMID').AsString))); Sql.Add(',@DCode=' + quotedstr(Trim(DCode))); Sql.Add(',@DName=' + quotedstr(Trim(DName))); Open; end; if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then begin Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '提示', 0); exit; end; try frmKnitDRtInPut := TfrmKnitDRtInPut.Create(Application); with frmKnitDRtInPut do begin PState := 1; FDRMID := Trim(Self.Order_Main.fieldbyname('DRMID').AsString); if ShowModal = 1 then begin InitGrid(); end; end; finally frmKnitDRtInPut.Free; end; end; procedure TfrmKnitDRList.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 0 then Exit; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; try ADOQueryCmd.Connection.BeginTrans; with Order_Main do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin if canshu1 <> '高权限' then begin if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then raise Exception.Create(pchar('不能操作他人的数据!')); end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' select * from Knit_Cloth_IO where IOFlag=''出库'''); sql.add(' and IONo=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty = False then raise Exception.Create(pchar('已发货不能删除数据!')); with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete Knit_Cloth_DR_Sub where DRMID=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + ''''); sql.Add('delete Knit_Cloth_DR_Main where DRMID=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + ''''); ExecSQL; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; except ADOQueryCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; InitGrid(); end; function TfrmKnitDRList.DelData(): Boolean; begin end; procedure TfrmKnitDRList.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; // SelExportData(Tv1, ADOQueryMain, '发货申请列表'); end; procedure TfrmKnitDRList.TBPrintClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'TradeClothDR1'; FFiltration1 := Trim(self.Order_Main.fieldbyname('DRMID').AsString); if ShowModal = 1 then begin end; end; finally frmLabelPrint.Free; end; end; procedure TfrmKnitDRList.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmKnitDRList.TBAddClick(Sender: TObject); begin try frmKnitDRtInPut := TfrmKnitDRtInPut.Create(Application); with frmKnitDRtInPut do begin PState := 0; FDRMID := ''; if ShowModal = 1 then begin InitGrid(); end; end; finally frmKnitDRtInPut.Free; end; end; procedure TfrmKnitDRList.FormShow(Sender: TObject); begin inherited; canshu1 := self.fParameters1; InitForm(); SetStatus(); end; procedure TfrmKnitDRList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmKnitDRList.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmKnitDRList.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmKnitDRtInPut := TfrmKnitDRtInPut.Create(Application); with frmKnitDRtInPut do begin PState := 1; FDRMID := Trim(Self.Order_Main.fieldbyname('DRMID').AsString); ToolBar2.Visible := False; TBSave.Visible := False; ScrollBox1.Enabled := False; Tv1.OptionsSelection.CellSelect := False; if ShowModal = 1 then begin end; end; finally frmKnitDRtInPut.Free; end; end; procedure TfrmKnitDRList.ToCoNameChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); end; procedure TfrmKnitDRList.tchkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 0 then exit; try with Order_Main do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Knit_Cloth_DR_Main SET Chker=''' + Trim(DName) + ''',ChkTime=getdate(),Status=''9'' '); sql.Add('where DRMID=' + quotedstr(trim(Order_Main.fieldbyname('DRMID').AsString))); execsql; end; end; next; end; EnableControls; end; InitGrid(); application.MessageBox('审核成功!', '提示信息'); except application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmKnitDRList.InitSubGrid(); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.*,B.OrdQty,B.OrdPiece '); sql.Add('from Knit_Cloth_DR_Sub A '); sql.Add(' left join Knit_Plan_Sub B on A.SubId=B.SubId '); sql.Add(' where A.DRMID=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + ''''); Open; end; SCreateCDS(ADOQueryTemp, ClientDataSet2); SInitCDSData(ADOQueryTemp, ClientDataSet2); end; procedure TfrmKnitDRList.N1Click(Sender: TObject); begin SelOKNo(Order_Main, true); end; procedure TfrmKnitDRList.PM11Click(Sender: TObject); begin SelOKNo(Order_Main, true); end; procedure TfrmKnitDRList.TnochkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 1 then exit; try with Order_Main do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Knit_Cloth_DR_Main SET Chker=Null,ChkTime=Null,status=''0'' '); sql.Add('where DRMID=' + quotedstr(trim(Order_Main.fieldbyname('DRMID').AsString))); execsql; end; end; next; end; EnableControls; end; InitGrid(); application.MessageBox('撤销成功!', '提示信息'); except application.MessageBox('撤销失败!', '提示信息', 0); end; end; procedure TfrmKnitDRList.cxTabControl1Change(Sender: TObject); begin TBRafresh.Click; SetStatus(); end; procedure TfrmKnitDRList.btnWCCXClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; try with Order_Main do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('exec P_Fin_Judge_All @DataID=' + quotedstr(trim(Order_Main.fieldbyname('DRMID').AsString))); Open; end; if ADOQueryTemp.FieldByName('intReturn').AsInteger = -1 then begin Application.MessageBox(PChar(ADOQueryTemp.fieldbyname('ShowMsg').AsString), '提示', 0); exit; end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Knit_Cloth_DR_Main SET status=''9'' ,Comper=null,Comptime=null '); sql.Add('where DRMID=' + quotedstr(trim(Order_Main.fieldbyname('DRMID').AsString))); execsql; end; end; next; end; EnableControls; end; InitGrid(); application.MessageBox('操作成功!', '提示信息'); except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmKnitDRList.ToolButton6Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '发货管理'); WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '发货管理'); end; procedure TfrmKnitDRList.btnWCClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; try with Order_Main do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Knit_Cloth_DR_Main SET status=''10'' ,Comper=''' + Trim(DName) + ''',Comptime=getdate() '); sql.Add('where DRMID=' + quotedstr(trim(Order_Main.fieldbyname('DRMID').AsString))); // ShowMessage(sql.Text); execsql; end; end; next; end; First; EnableControls; end; InitGrid(); application.MessageBox('操作成功!', '提示信息'); except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmKnitDRList.Tv1Column9PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); if mvalue = '' then begin with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update Knit_Cloth_DR_Main set ' + FFieldName + '=' + 'NULL'); sql.Add('where DRMID=' + quotedstr(Trim(Order_Main.fieldbyname('DRMID').AsString))); ExecSQL; end; end else begin with Order_Main do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update Knit_Cloth_DR_Main set ' + FFieldName + '=' + quotedstr(Trim(mvalue))); sql.Add('where DRMID=' + quotedstr(Trim(Order_Main.fieldbyname('DRMID').AsString))); ExecSQL; end; end; tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmKnitDRList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitSubGrid(); end; procedure TfrmKnitDRList.v1Column7PropertiesEditValueChanged(Sender: TObject); var mvalue, FFieldName: string; begin mvalue := TcxTextEdit(Sender).EditingText; FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName); with Order_Main do begin Edit; FieldByName(FFieldName).Value := mvalue; Post; end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('update Knit_Cloth_DR_Main set ' + FFieldName + '=' + quotedstr(Trim(mvalue))); sql.Add('where DRMID=' + quotedstr(Trim(Order_Main.fieldbyname('DRMID').AsString))); ExecSQL; end; tv1.Controller.EditingController.ShowEdit(); end; end.