unit U_YarnDRList_Sel; 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, U_BaseList, dxDateRanges, dxScrollbarAnnotations, U_BaseHelp, System.ImageList, Vcl.ImgList; type TfrmYarnDRList_Sel = class(TfrmBaseHelp) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxGridPopupMenu1: 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: TEdit; MPRTCodeName: TEdit; MPRTKZ: TEdit; MPRTMF: TEdit; cxTabControl1: TcxTabControl; tchk: TToolButton; Tnochk: TToolButton; cxSplitter1: TcxSplitter; DS_2: TDataSource; v1Column8: TcxGridDBColumn; Label2: TLabel; 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; Tv1Column1: TcxGridDBColumn; Label3: TLabel; OutType: TComboBox; Tv1Column2: TcxGridDBColumn; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridDBColumn2: TcxGridDBColumn; Tv1Column3: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column6: TcxGridDBColumn; Tv1Column7: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ToolButton2: TToolButton; Tv2Column1: TcxGridDBColumn; //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 ToolButton2Click(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 frmYarnDRList_Sel: TfrmYarnDRList_Sel; implementation uses U_DataLink, U_YarnDRtInPut, U_RTFun, U_ZDYHelp, U_LabelPrint; {$R *.dfm} procedure TfrmYarnDRList_Sel.SetStatus(); begin tchk.Enabled := False; Tnochk.Enabled := False; btnWC.Enabled := False; btnWCCX.Enabled := False; if canshu1 = '管理' then begin case cxTabControl1.TabIndex of 0: begin tchk.Enabled := true; end; 1: begin Tnochk.Enabled := true; btnWC.Enabled := true; end; 2: begin btnWCCX.Enabled := true; end; end; end else begin end; end; procedure TfrmYarnDRList_Sel.FormDestroy(Sender: TObject); begin inherited; frmYarnDRList_Sel := nil; end; procedure TfrmYarnDRList_Sel.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmYarnDRList_Sel.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmYarnDRList_Sel.InitGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; Sql.Add(' select A.* '); sql.Add(' from Tat_Cloth_DR_Main A where 1=1 and LX=''纱线'' '); if CheckBox1.Checked then begin sql.Add(' and Filltime>=''' + FormatDateTime('yyyy-MM-dd', begdate.DateTime) + ''' '); sql.Add(' and Filltime<''' + FormatDateTime('yyyy-MM-dd', Enddate.DateTime + 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 TfrmYarnDRList_Sel.InitForm(); begin ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '发货管理'); ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '发货管理'); EndDate.DateTime := SGetServerDate(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime - 60; InitGrid(); end; procedure TfrmYarnDRList_Sel.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 TfrmYarnDRList_Sel.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; // if Trim(canshu1) <> '高权限' then // begin // // with ADOQueryTemp do // begin // Close; // sql.Clear; // SQL.Add('select FILLER from Tat_Cloth_DR_Main A '); // SQL.Add('where DRMID=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + ''' '); // SQL.Add('and filler in ( select username from SY_User where UType=(select UType from SY_User where UserName=' + quotedstr(Trim(dname))); // SQL.Add('))'); // Open; // end; // // if ADOQueryTemp.ISEMPTY = True then // begin // Application.MessageBox('不能操作他人的数据!', '提示', 0); // Exit; // end; // end; // with ADOQueryTemp do // begin // close; // sql.Clear; // sql.Add('select * from Tat_Cloth_DR_Main'); // sql.Add('where DRMID=' + quotedstr(trim(Order_Main.fieldbyname('DRMID').AsString))); // Open; // end; // if Trim(ADOQueryTemp.fieldbyname('YSID').AsString) <> '' then // begin // Application.MessageBox('已生成应收账款不能修改数据!', '提示', 0); // Exit; // end; try frmyarnDRtInPut := TfrmyarnDRtInPut.Create(Application); with frmyarnDRtInPut do begin PState := 1; FDRMID := Trim(Self.Order_Main.fieldbyname('DRMID').AsString); if ShowModal = 1 then begin InitGrid(); end; end; finally frmyarnDRtInPut.Free; end; end; procedure TfrmYarnDRList_Sel.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if cxTabControl1.TabIndex <> 0 then Exit; // if canshu1 <> '高权限' then // begin // if Trim(Order_Main.fieldbyname('Filler').AsString) <> Trim(DName) then // begin // Application.MessageBox('不能操作他人的数据!', '提示', 0); // Exit; // end; // end; // with ADOQueryTemp do // begin // Close; // sql.Clear; // sql.Add(' select * from Tat_Cloth_IO where CRFlag=''出库'''); // sql.add(' and IONo=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + ''''); // Open; // end; // if ADOQueryTemp.IsEmpty = False then // begin // Application.MessageBox('已发货不能删除数据!', '提示', 0); // exit; // end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; if DelData() then begin Order_Main.Delete; InitSubGrid(); end; end; function TfrmYarnDRList_Sel.DelData(): Boolean; begin try with Order_Main do begin DisableControls; First; while not eof do begin if fieldbyname('SSel').AsBoolean then begin Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete Tat_Cloth_DR_Sub where DRMID=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete Tat_Cloth_DR_Main where DRMID=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + ''''); ExecSQL; end; end; next; end; First; EnableControls; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmYarnDRList_Sel.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; // SelExportData(Tv1, ADOQueryMain, '发货申请列表'); end; procedure TfrmYarnDRList_Sel.TBPrintClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'YarnClothDR'; FFiltration1 := Trim(self.Order_Main.fieldbyname('DRMID').AsString); if ShowModal = 1 then begin end; end; finally frmLabelPrint.Free; end; end; procedure TfrmYarnDRList_Sel.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmYarnDRList_Sel.TBAddClick(Sender: TObject); var maxno: string; begin try frmYarnDRtInPut := TfrmYarnDRtInPut.Create(Application); with frmYarnDRtInPut do begin PState := 0; FDRMID := ''; if ShowModal = 1 then begin InitGrid(); end; end; finally frmYarnDRtInPut.Free; end; end; procedure TfrmYarnDRList_Sel.FormShow(Sender: TObject); begin inherited; // canshu1 := self.fParameters1; InitForm(); SetStatus(); end; procedure TfrmYarnDRList_Sel.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmYarnDRList_Sel.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmYarnDRList_Sel.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmYarnDRtInPut := TfrmYarnDRtInPut.Create(Application); with frmYarnDRtInPut 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 frmYarnDRtInPut.Free; end; end; procedure TfrmYarnDRList_Sel.ToolButton2Click(Sender: TObject); begin ModalResult := 1; end; procedure TfrmYarnDRList_Sel.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 TfrmYarnDRList_Sel.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 Tat_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; First; EnableControls; end; Order_Main.Delete; InitSubGrid(); application.MessageBox('审核成功!', '提示信息'); except application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmYarnDRList_Sel.InitSubGrid(); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.* '); sql.Add('from Tat_Cloth_DR_Sub A where A.DRMID=''' + Trim(Order_Main.fieldbyname('DRMID').AsString) + ''''); Open; end; SCreateCDS(ADOQueryTemp, ClientDataSet2); SInitCDSData(ADOQueryTemp, ClientDataSet2); end; procedure TfrmYarnDRList_Sel.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 Tat_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; First; EnableControls; end; Order_Main.Delete; application.MessageBox('撤销成功!', '提示信息'); except application.MessageBox('撤销失败!', '提示信息', 0); end; end; procedure TfrmYarnDRList_Sel.cxTabControl1Change(Sender: TObject); begin TBRafresh.Click; SetStatus(); end; procedure TfrmYarnDRList_Sel.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 Tat_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; First; EnableControls; end; InitGrid(); InitSubGrid(); application.MessageBox('操作成功!', '提示信息'); except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYarnDRList_Sel.ToolButton6Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '发货管理'); WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '发货管理'); end; procedure TfrmYarnDRList_Sel.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 Tat_Cloth_DR_Main SET status=''10'' ,Comper=''' + Trim(DName) + ''',Comptime=getdate() '); sql.Add('where DRMID=' + quotedstr(trim(Order_Main.fieldbyname('DRMID').AsString))); execsql; end; end; next; end; First; EnableControls; end; InitGrid(); InitSubGrid(); application.MessageBox('操作成功!', '提示信息'); except application.MessageBox('操作失败!', '提示信息', 0); end; end; procedure TfrmYarnDRList_Sel.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 Tat_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 Tat_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 TfrmYarnDRList_Sel.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitSubGrid(); end; procedure TfrmYarnDRList_Sel.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 Tat_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.