unit U_TradePackagePlanList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit, cxCalendar, StrUtils, cxCurrencyEdit, cxImage, cxDBEdit, Menus, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxGridCustomPopupMenu, cxGridPopupMenu, cxPC, cxSplitter, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, ShellAPI, cxDropDownEdit, cxCheckBox, RM_e_Graphic, RM_e_Jpeg, U_BaseList, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxDateRanges, dxScrollbarAnnotations, dxBarBuiltInMenu, IdExplicitTLSClientServerBase, FrameDateSel, cxProgressBar, dxSkinWXI, dxSkinsCore, dxSkinsDefaultPainters; type TfrmTradePackagePlanList = class(TfrmBaseList) ToolBar1: TToolBar; TBRafresh: TToolButton; TBAdd: TToolButton; TBEdit: TToolButton; TBDel: TToolButton; TBPrint: TToolButton; TBClose: TToolButton; Panel1: TPanel; Tv1: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; cxgrdpmn1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; Label3: TLabel; OrderNo: TcxTextEdit; v1OrderNo: TcxGridDBColumn; v1OrdDate: TcxGridDBColumn; v1DeliveryDate: TcxGridDBColumn; Order_Main: TClientDataSet; TBCK: TToolButton; btnCopy: TToolButton; ADOQuerySub: TADOQuery; DataSource2: TDataSource; ToolButton4: TToolButton; cxTabControl1: TcxTabControl; Tchk: TToolButton; Tnochk: TToolButton; TWC: TToolButton; TNowc: TToolButton; Panel2: TPanel; ADOQueryImage: TADOQuery; DSImage: TDataSource; IdFTP1: TIdFTP; v1Column11: TcxGridDBColumn; TBTJ: TToolButton; TBTJCX: TToolButton; v1Column16: TcxGridDBColumn; ORDER_SUB: TClientDataSet; PopupMenu2: TPopupMenu; N3: TMenuItem; N4: TMenuItem; Label1: TLabel; CustName: TcxTextEdit; Tv1Column6: TcxGridDBColumn; cxgrdpmn2: TcxGridPopupMenu; cxGrid2: TcxGrid; TV2: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; v1Column5: TcxGridDBColumn; VC_PRTPs: TcxGridDBColumn; v1PRTOrderQty: TcxGridDBColumn; v1OrderUnit: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; Tv1Column2: TcxGridDBColumn; Tv1Column10: TcxGridDBColumn; Tv1Column11: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; Label2: TLabel; C_Name: TcxTextEdit; CDS_WXTS: TClientDataSet; Label4: TLabel; ConNo: TcxTextEdit; Tv1Column22: TcxGridDBColumn; ToolButton2: TToolButton; PM_1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; GPM_3: TcxGridPopupMenu; Tv1Column3: TcxGridDBColumn; Tv1Column12: TcxGridDBColumn; Tv1Column13: TcxGridDBColumn; Tv1Column14: TcxGridDBColumn; Tv1Column15: TcxGridDBColumn; Tv1Column16: TcxGridDBColumn; Tv1Column4: TcxGridDBColumn; ToolButton1: TToolButton; TV2Column1: TcxGridDBColumn; Tv1Column5: TcxGridDBColumn; Tv1Column8: TcxGridDBColumn; Tv1Column9: TcxGridDBColumn; Tv1Column17: TcxGridDBColumn; Tv1Column18: TcxGridDBColumn; TV2Column3: TcxGridDBColumn; TV2Column4: TcxGridDBColumn; N5: TMenuItem; N6: TMenuItem; ToolButton3: TToolButton; Tv1Column19: TcxGridDBColumn; TV2Column2: TcxGridDBColumn; frmFrameDateSel1: TfrmFrameDateSel; ToolButton5: TToolButton; Tv1Column7: TcxGridDBColumn; Tv1Column20: TcxGridDBColumn; Tv1Column21: TcxGridDBColumn; ToolButton6: TToolButton; Tv1Column23: TcxGridDBColumn; Tv1Column24: TcxGridDBColumn; TV2Column5: TcxGridDBColumn; Tv1Column25: TcxGridDBColumn; Tv1Column26: TcxGridDBColumn; Tv1Column27: TcxGridDBColumn; TV2Column6: TcxGridDBColumn; TV2Column7: TcxGridDBColumn; TV2Column8: TcxGridDBColumn; TV2Column9: TcxGridDBColumn; TBSubPrint: TToolButton; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure TBEditClick(Sender: TObject); procedure TBDelClick(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure TBAddClick(Sender: TObject); procedure OrderNoMChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBTPClick(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); procedure v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure TBCKClick(Sender: TObject); procedure btnCopyClick(Sender: TObject); procedure OrderNoKeyPress(Sender: TObject; var Key: Char); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ToolButton4Click(Sender: TObject); procedure cxTabControl1Change(Sender: TObject); procedure TchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure TWCClick(Sender: TObject); procedure TNowcClick(Sender: TObject); procedure TBTJClick(Sender: TObject); procedure TBTJCXClick(Sender: TObject); procedure N3Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure CustomerNoNameKeyPress(Sender: TObject; var Key: Char); procedure ToolButton10Click(Sender: TObject); procedure JGTypeChange(Sender: TObject); procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure ToolButton2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure ToolButton6Click(Sender: TObject); procedure TV2Column5PropertiesEditValueChanged(Sender: TObject); procedure TBSubPrintClick(Sender: TObject); private DQdate: TDateTime; procedure InitGrid(); procedure InitForm(); procedure InitSub(); procedure SetStatus(); procedure InitImage(fwbid: string); procedure SendMessageQR(MDateId, KeyWord1, KeyWord2, KeyWord3: string); { Private declarations } public FFInt, FCloth: Integer; canshu1, canshu2: string; fFlileFlag: string; FNOTE: string; { Public declarations } end; implementation uses U_DataLink, U_TradePlanInPut, U_RTFun, U_ZDYHelp, U_LabelPrint, U_TradeInspSet, U_AttachmentUpload, U_SysLogHelp, U_OrdImport, U_TradePackagePlanInPut; {$R *.dfm} procedure TfrmTradePackagePlanList.InitImage(fwbid: string); begin ADOQueryImage.close; if fwbid = '' then exit; with ADOQueryImage do begin close; sql.Clear; sql.Add('select * from TP_File A'); sql.Add('where WBID=' + quotedstr(trim(fwbid))); open; end; end; procedure TfrmTradePackagePlanList.SetStatus(); begin btnCopy.Visible := false; tbadd.Visible := false; TBEdit.Visible := False; TBDel.Visible := False; TBTJ.Visible := False; TBTJCX.Visible := False; tchk.Visible := false; tnochk.Visible := false; TWC.Visible := False; TNowc.Visible := False; TBDel.Visible := False; case cxTabControl1.TabIndex of 0: begin tbadd.Visible := True; TBEdit.Visible := True; TBDel.Visible := True; TBDel.Visible := True; TBTJ.Visible := True; btnCopy.Visible := True; end; 1: begin TBTJCX.Visible := True; btnCopy.Visible := True; TBDel.Visible := True; tchk.Visible := True; end; 2: begin TWC.Visible := True; btnCopy.Visible := True; tnochk.Visible := True; end; 3: begin TNowc.Visible := True; btnCopy.Visible := True; end; end; end; procedure TfrmTradePackagePlanList.InitSub(); begin ADOQuerySub.Close; if Order_Main.IsEmpty then exit; ADOQuerySub.DisableControls; with ADOQuerySub do begin close; sql.Clear; sql.Add('select * '); SQL.Add(',JYQTY=ISNULL((case when a.ordunit=''KG'' then (SELECT SUM(GrossWeight) from Trade_Cloth_Inspect e where e.subid=a.subid) when a.ordunit=''M'' then (SELECT SUM(METER) from Trade_Cloth_Inspect e where e.subid=a.subid) '); SQL.Add('WHEN a.ordunit=''Y'' then (SELECT SUM(yardage) from Trade_Cloth_Inspect e where e.subid=a.subid) end ),0)'); sql.Add(',YDQTY=ISNULL((case when a.ordunit=''KG'' then (SELECT SUM(GrossWeight) from Trade_Cloth_Inspect e where e.subid=a.subid) when a.ordunit=''M'' then (SELECT SUM(METER) from Trade_Cloth_Inspect e where e.subid=a.subid)'); SQL.Add('WHEN a.ordunit=''Y'' then (SELECT SUM(yardage) from Trade_Cloth_Inspect e where e.subid=a.subid) end ),0)-OrdQty'); sql.Add(',ydlv=round((ISNULL((case when a.ordunit=''KG'' then (SELECT SUM(GrossWeight) from Trade_Cloth_Inspect e where e.subid=a.subid) when a.ordunit=''M'' then (SELECT SUM(METER) from Trade_Cloth_Inspect e where e.subid=a.subid)'); SQL.Add('WHEN a.ordunit=''Y'' then (SELECT SUM(yardage) from Trade_Cloth_Inspect e where e.subid=a.subid) end ),0)-OrdQty)/OrdQty*100,2)'); sql.Add(' from Trade_Plan_Sub A'); sql.Add('where mainid =' + quotedstr((Order_Main.fieldbyname('mainID').AsString))); open; end; SCreateCDS(ADOQuerySub, ORDER_SUB); SInitCDSData(ADOQuerySub, ORDER_SUB); ADOQuerySub.EnableControls; TV2.DataController.Filter.Clear; end; procedure TfrmTradePackagePlanList.JGTypeChange(Sender: TObject); begin InitGrid(); end; procedure TfrmTradePackagePlanList.FormDestroy(Sender: TObject); begin inherited; // frmProductOrderList:=nil; end; procedure TfrmTradePackagePlanList.FormClose(Sender: TObject; var Action: TCloseAction); begin inherited; Action := caFree; end; procedure TfrmTradePackagePlanList.FormCreate(Sender: TObject); begin inherited; cxgrid1.Align := alClient; DQdate := SGetServerDate(ADOQueryTemp); end; procedure TfrmTradePackagePlanList.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTradePackagePlanList.InitGrid(); var STRwhere, Pwhere: string; begin STRwhere := ''; Pwhere := SGetFilters(Panel1, 1, 2); begin if trim(Pwhere) <> '' then STRwhere := STRwhere + ' and ' + trim(Pwhere); end; case cxTabControl1.TabIndex of 0: begin STRwhere := STRwhere + ' and isnull(status,''0'')=''0'' '; end; 1: begin STRwhere := STRwhere + ' and isnull(status,''0'')=''1'' '; end; 2: begin STRwhere := STRwhere + ' and isnull(status,''0'')=''9'' '; end; 3: begin STRwhere := STRwhere + ' and isnull(status,''0'')=''10'' '; end; end; try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; sql.add(' select A.* '); //,B.LabVolume,B.LabPackage sql.add(',Technics=SUBSTRING(CAST((select distinct '','' +X.Technics from Trade_Plan_Fty X where X.MainId=A.MainId for xml path('''') ) AS VARCHAR(100)) , 2, 100) '); sql.add(',Follower=SUBSTRING(CAST((select distinct '','' +X.Follower from Trade_Plan_Fty X where X.MainId=A.MainId for xml path('''') ) AS VARCHAR(100)) , 2, 100) '); sql.add(',FtyName=SUBSTRING(CAST((select distinct '','' +X.FtyName from Trade_Plan_Fty X where X.MainId=A.MainId for xml path('''') ) AS VARCHAR(100)) , 2, 100) '); sql.add(' from V_TRADE_PLAN_D A'); // sql.add(' left join Trade_Cloth_Inspect_Rule B on A.MainId=B.RuleID'); // sql.add(' where OrdType=''大货单'' '); sql.add(' where OrdType =''包装单'' '); sql.add(' and A.OrdDate>=' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.BegDate.Date)))); sql.add(' and A.OrdDate<' + quotedstr(Trim(FormatDateTime('yyyy-MM-dd', frmFrameDateSel1.enddate.Date + 1)))); if canshu1 = '录入' then begin sql.Add(' and ( A.SalesId=' + quotedstr(trim(DCode))); sql.Add(' or A.Filler=' + quotedstr(trim(DName))); sql.Add(' or exists (select * from [dbo].[F_Tool_SplitString](A.TallyId,'','') X where X.RTValue =' + quotedstr(trim(DCode)) + '))'); end; sql.add(' ' + STRwhere); sql.add(' order by filltime desc'); // ShowMessage(SQL.Text); Open; end; SCreateCDS(ADOQueryMain, Order_Main); SInitCDSData(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; TV1.DataController.Filter.Clear; end; end; procedure TfrmTradePackagePlanList.SendMessageQR(MDateId, KeyWord1, KeyWord2, KeyWord3: string); begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add('select distinct A.* from SY_User A inner join SY_Purview B on A.UserID=B.UserID where A.Valid=''Y'' '); SQL.Add('and isnull(A.wxid,'''')<>'''''); SQL.Add(' and exists(select 1 from SY_ModuleSub X where X.ModuleID=B.ModuleID and X.ModuleSubID=B.ModuleSubID and X.FormName=''生产计划单审核'' )'); // showmessage(sql.text); Open; end; SCreateCDS(ADOQueryTemp, CDS_WXTS); SInitCDSData(ADOQueryTemp, CDS_WXTS); if CDS_WXTS.IsEmpty then begin Application.MessageBox('用户未绑定微信,提交失败!', '提示信息', 0); Exit; end; CDS_WXTS.First; while not CDS_WXTS.eof do begin with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('select * from WeixinMessage where 1<>1'); Open; Append; FieldByName('MessageType').Value := 'OrderToAudit'; FieldByName('MessageName').Value := '计划单待审核'; FieldByName('Title').Value := '您有新的生产计划单待审核'; FieldByName('URL').Value := 'subpages/plan/view?id=' + Trim(MDateId); FieldByName('OpenId').Value := Trim(CDS_WXTS.FieldByName('wxid').AsString); FieldByName('Status').Value := '0'; FieldByName('CreateDate').Value := FormatDateTime('yyyymmdd', SGetServerDateTime(ADOQueryTemp)); FieldByName('CreateTime').Value := FormatDateTime('HH:mm:ss', SGetServerDateTime(ADOQueryTemp)); FieldByName('BusinessId').Value := Trim(MDateId); FieldByName('KeyWord1').Value := Trim(KeyWord1); FieldByName('KeyWord2').Value := Trim(KeyWord2); FieldByName('KeyWord3').Value := Trim(KeyWord3); FieldByName('Remark').Value := '点击可查询详情!'; Post; end; CDS_WXTS.Next; end; GetHTTP('http://aotang.rightsoft.top/api/message/send/OrderToAudit'); end; procedure TfrmTradePackagePlanList.InitForm(); begin ReadCxGrid(trim(self.Caption) + 'Tv1', Tv1, '生产指示单管理'); ReadCxGrid(trim(self.Caption) + 'Tv2', Tv2, '生产指示单管理'); frmFrameDateSel1.BegDate.Date := SGetServerDate(ADOQueryTemp) - 180; frmFrameDateSel1.EndDate.Date := SGetServerDate(ADOQueryTemp); SetStatus(); InitGrid(); end; procedure TfrmTradePackagePlanList.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; if not assigned(frmTradePackagePlanInPut) then begin try frmTradePackagePlanInPut := TfrmTradePackagePlanInPut.Create(application); with frmTradePackagePlanInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); FOrderNo := Trim(Self.Order_Main.fieldbyname('OrderNo').AsString); canshu1 := self.canshu1; show; // if ShowModal = 1 then // begin // // end; end; finally // frmTradePlanInPut.Free; end; end else begin frmTradePackagePlanInPut.WindowState := wsMaximized; frmTradePackagePlanInPut.Show; end; end; procedure TfrmTradePackagePlanList.TBDelClick(Sender: TObject); var rtvalues: TArray; begin if Order_Main.IsEmpty then exit; rtvalues := SelCDSKey(Order_Main, ['MainId', 'OrderNo', 'MasterOrderNo']); // with ADOQueryTemp do // begin // close; // sql.Clear; // sql.Add('select * from Trade_Plan_Main A '); // sql.Add(' where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where A.MainId=X.RTValue ) '); // sql.Add(' and Filler<>' + QuotedStr(Trim(Order_Main.fieldbyname('Filler').AsString))); // open; // end; // if not ADOQueryTemp.IsEmpty then // begin // Application.MessageBox('不能操作他人的数据!', '提示', 0); // Exit; // end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from Trade_Cloth_Inspect where isnull(mainID,'''')<>'''' '); sql.Add(' and EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Cloth_Inspect.MainId=X.RTValue ) '); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已检验不能删除数据!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from Trade_Plan_Card where isnull(mainID,'''')<>'''' '); sql.Add(' and EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Card.MainId=X.RTValue ) '); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已打标不能删除数据!', '提示', 0); Exit; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from Bs_Cloth_IO where isnull(FromMasterOrdNo,'''')<>'''' '); sql.Add(' and EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[2]) + ','','') X where Bs_Cloth_IO.FromMasterOrdNo=X.RTValue ) '); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已入库不能删除数据!', '提示', 0); Exit; end; if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then Exit; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete Trade_Plan_Main '); sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Main.MainId=X.RTValue ) '); sql.Add('delete Trade_Plan_Sub '); sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Sub.MainId=X.RTValue ) '); sql.Add('delete Trade_Plan_Fty '); sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Fty.MainId=X.RTValue ) '); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('指示单删除'))); sql.Add(',' + quotedstr(trim('指示单号:' + trim(rtvalues[1])))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); ExecSQL; end; InitGrid(); end; procedure TfrmTradePackagePlanList.TBPrintClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'TradePlanBZPrint'; FFiltration1 := Trim(Order_Main.fieldbyname('MainId').AsString); if ShowModal = 1 then begin // Self.InitGrid(); end; end; finally frmLabelPrint.Free; end; end; procedure TfrmTradePackagePlanList.TBRafreshClick(Sender: TObject); begin ToolBar1.SetFocus; InitGrid(); end; procedure TfrmTradePackagePlanList.TBSubPrintClick(Sender: TObject); begin ToolBar1.SetFocus; if Order_Main.IsEmpty then Exit; try frmLabelPrint := TfrmLabelPrint.Create(Application); with frmLabelPrint do begin FLMType := 'TradePlanBZSubPrint'; FFiltration1 := SelCDSKey(ORDER_SUB, ['subID'])[0]; if ShowModal = 1 then begin // Self.InitGrid(); end; end; finally frmLabelPrint.Free; end; end; procedure TfrmTradePackagePlanList.TBAddClick(Sender: TObject); begin if not assigned(frmTradePackagePlanInPut) then begin try frmTradePackagePlanInPut := TfrmTradePackagePlanInPut.Create(Application); with frmTradePackagePlanInPut do begin PState := 0; FMainId := ''; canshu1 := self.canshu1; show; // if then // begin // InitGrid(); // end; end; finally // frmTradePlanInPut.Free; end; end else begin frmTradePackagePlanInPut.WindowState := wsMaximized; frmTradePackagePlanInPut.Show; end; end; procedure TfrmTradePackagePlanList.OrderNoMChange(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 TfrmTradePackagePlanList.FormShow(Sender: TObject); begin inherited; canshu1 := self.fParameters1; fFlileFlag := UserDataFlag + 'HX'; cxTabControl1.TabIndex := 0; InitForm(); end; procedure TfrmTradePackagePlanList.TBTPClick(Sender: TObject); var FQty, FQty1, FMxQty, FPQty, FMxQtyS, FPQtyS: string; begin end; procedure TfrmTradePackagePlanList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmTradePackagePlanList.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmTradePackagePlanList.Tv1StylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); var id, id10: Integer; begin {try if Tv1.GroupedItemCount=0 then begin Id:=Tv1.GetColumnByFieldName('DeliveryDate').Index-tv1.GroupedItemCount; Id10:=Tv1.GetColumnByFieldName('SubStatus').Index-tv1.GroupedItemCount; if Trim(VarToStr(ARecord.Values[id]))='' then Exit; if Id<0 then Exit; if ARecord.Values[id10]='完成' then exit; if (ARecord.Values[id]-DQdate)>=4 then Exit; if ((ARecord.Values[id]-DQdate)>=0) and ((ARecord.Values[id]-DQdate)<4) then AStyle:=DataLink_.QHuangSe else if ARecord.Values[id]-DQdate<0 then begin AStyle:=DataLink_OrderManage.FenHongS; end; end else begin end; except end; } end; procedure TfrmTradePackagePlanList.TV2Column5PropertiesEditValueChanged(Sender: TObject); var FBatchNo: string; begin FBatchNo := TcxTextEdit(Sender).EditingText; try with ADOQueryCmd do begin Close; sql.Clear; sql.Add(' update Trade_Plan_Sub '); sql.Add(' set Sub_BatchNo=' + FBatchNo); sql.Add('where SubId =' + quotedstr((ORDER_SUB.fieldbyname('SubId').AsString))); // showmessage(sql.text); ExecSQL; end; ModalResult := 1; except application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0); end; end; procedure TfrmTradePackagePlanList.v1DeliveryDateCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin { Id:=TV1.GetColumnByFieldName('DeliveryDate').Index;//;-TV1.GroupedItemCount; Id10:=TV1.GetColumnByFieldName('SubStatus').Index; if Id<0 then Exit; if AViewInfo.GridRecord.Values[Id10]='完成' then Exit; if AViewInfo.GridRecord.Values[Id]-SGetServerDate(ADOQueryTemp)>=4 then Exit; if ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))>=0) and ((AViewInfo.GridRecord.Values[id]-SGetServerDate(ADOQueryTemp))<4) then ACanvas.Brush.Color:=clYellow else if (AViewInfo.GridRecord.Values[id])-(SGetServerDate(ADOQueryTemp)<0) then begin ACanvas.Brush.Color:=clRed; end; begin ACanvas.Brush.Color:=clRed; end else if AViewInfo.GridRecord.Values[Id]='Purple' then begin ACanvas.Brush.Color:=clPurple; end else if AViewInfo.GridRecord.Values[Id]='Olive' then begin ACanvas.Brush.Color:=clOlive; end else if AViewInfo.GridRecord.Values[Id]='Teal' then begin ACanvas.Brush.Color:=clTeal; end else if AViewInfo.GridRecord.Values[Id]='Background' then begin ACanvas.Brush.Color:=clBackground; end; } end; procedure TfrmTradePackagePlanList.TBCKClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if not assigned(frmTradePackagePlanInPut) then begin try frmTradePackagePlanInPut := TfrmTradePackagePlanInPut.Create(Application); with frmTradePackagePlanInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); TBSave.Visible := False; ScrollBox1.Enabled := True; N2.Visible := False; show; // if then // begin // InitGrid(); // end; end; finally // frmTradePlanInPut.Free; end; end else begin frmTradePackagePlanInPut.WindowState := wsMaximized; frmTradePackagePlanInPut.Show; end; end; procedure TfrmTradePackagePlanList.btnCopyClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if not assigned(frmTradePackagePlanInPut) then begin try frmTradePackagePlanInPut := TfrmTradePackagePlanInPut.Create(Application); with frmTradePackagePlanInPut do begin PState := 1; CopyInt := 99; FMainId := Trim(Self.Order_Main.fieldbyname('MainId').AsString); canshu1 := self.canshu1; show; // if then // begin // InitGrid(); // end; end; finally // frmTradePlanInPut.Free; end; end else begin frmTradePackagePlanInPut.WindowState := wsMaximized; frmTradePackagePlanInPut.Show; end; end; procedure TfrmTradePackagePlanList.OrderNoKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin initgrid(); end; end; procedure TfrmTradePackagePlanList.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); begin CopyTVFocusValue(TV1); end; procedure TfrmTradePackagePlanList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin InitSub(); end; procedure TfrmTradePackagePlanList.ToolButton4Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmAttachmentUpload := TfrmAttachmentUpload.Create(Application); with frmAttachmentUpload do begin if Trim(canshu1) <> '查询' then FEditAuthority := True; fkeyNO := Trim(Self.Order_Main.fieldbyname('MainId').AsString); fType := '指示单'; if ShowModal = 1 then begin end; end; finally frmAttachmentUpload.Free; end; end; procedure TfrmTradePackagePlanList.ToolButton5Click(Sender: TObject); var str: string; begin str := '请输入总计划单号'; if InputQuery('总计划单号', '计划单号:', str) then begin try // with ADOQueryTemp do // begin // close; // sql.Clear; // sql.Add('select * from JYOrder_Main '); // sql.Add(' where OrderNo=' + quotedstr(trim(str))); // open; // if IsEmpty then // begin // Application.MessageBox('计划单不存在!', '提示', 0); // Exit; // end; // end; while Order_Main.Locate('ssel', True, []) do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Trade_Plan_Main SET MasterOrderNo=' + quotedstr(str)); sql.Add(' where mainID=' + quotedstr(trim(Order_Main.fieldbyname('mainID').AsString))); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('订单提交'))); sql.Add(',' + quotedstr(trim('订单号:' + trim(Order_Main.FieldByName('orderNO').AsString)))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; Order_Main.Delete; end; application.MessageBox('计划单合并成功!', '提示信息'); except application.MessageBox('计划单合并失败!', '提示信息', 0); end; TBRafresh.Click; end; end; procedure TfrmTradePackagePlanList.ToolButton6Click(Sender: TObject); begin try frmOrdImport := TfrmOrdImport.Create(Application); with frmOrdImport do begin if ShowModal = 1 then begin self.InitGrid(); end; end; finally frmOrdImport.Free; end; end; procedure TfrmTradePackagePlanList.cxTabControl1Change(Sender: TObject); begin SetStatus(); InitGrid(); end; procedure TfrmTradePackagePlanList.TchkClick(Sender: TObject); var rtvalues: TArray; begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 1 then begin Application.MessageBox('只能在待审核状态下进行审核操作!', '提示', 0); Exit; end; rtvalues := SelCDSKey(Order_Main, ['MainId', 'OrderNo']); if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Trade_Plan_Main SET status=''9'',chker=''' + trim(DName) + ''',Chktime=getdate() '); sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Main.MainId=X.RTValue ) '); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('计划单审核'))); sql.Add(',' + quotedstr(trim('计划单号:' + trim(rtvalues[1])))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; except application.MessageBox('计划单审核失败!', '提示信息', 0); end; TBRafresh.Click; end; procedure TfrmTradePackagePlanList.TnochkClick(Sender: TObject); var rtvalues: TArray; begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 2 then begin Application.MessageBox('只能在已审核状态下进行审核操作!', '提示', 0); Exit; end; rtvalues := SelCDSKey(Order_Main, ['MainId', 'OrderNo']); try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Trade_Plan_Main SET status=''0'',chker=null,Chktime=null '); sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Main.MainId=X.RTValue ) '); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('计划单撤销审核'))); sql.Add(',' + quotedstr(trim('计划单号:' + trim(rtvalues[1])))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; TBRafresh.Click; except application.MessageBox('计划单撤销审核失败!', '提示信息', 0); end; end; procedure TfrmTradePackagePlanList.TWCClick(Sender: TObject); var rtvalues: TArray; begin if Order_Main.IsEmpty then exit; rtvalues := SelCDSKey(Order_Main, ['MainId', 'OrderNo']); if canshu1 <> '管理' then begin with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from Trade_Plan_Main A '); sql.Add(' where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where A.MainId=X.RTValue ) '); sql.Add(' and Filler<>' + QuotedStr(Trim(Order_Main.fieldbyname('Filler').AsString))); open; end; if not ADOQueryTemp.IsEmpty then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; end; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Trade_Plan_Main SET status=''10'' '); sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Main.MainId=X.RTValue ) '); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('计划单完成'))); sql.Add(',' + quotedstr(trim('计划单号:' + trim(rtvalues[1])))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('计划单完成成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('计划单完成失败!', '提示信息', 0); end; end; procedure TfrmTradePackagePlanList.TNowcClick(Sender: TObject); var rtvalues: TArray; begin if Order_Main.IsEmpty then exit; rtvalues := SelCDSKey(Order_Main, ['MainId', 'OrderNo']); if canshu1 <> '管理' then begin with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from Trade_Plan_Main A '); sql.Add(' where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where A.MainId=X.RTValue ) '); sql.Add(' and Filler<>' + QuotedStr(Trim(Order_Main.fieldbyname('Filler').AsString))); open; end; if not ADOQueryTemp.IsEmpty then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; end; if Application.MessageBox('是否核实好数据?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Trade_Plan_Main SET status=''9'' '); sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Main.MainId=X.RTValue ) '); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('计划单撤销完成'))); sql.Add(',' + quotedstr(trim('计划单号:' + trim(rtvalues[1])))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('计划单撤销完成成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('计划单撤销完成失败!', '提示信息', 0); end; end; procedure TfrmTradePackagePlanList.TBTJClick(Sender: TObject); var rtvalues: TArray; begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 0 then begin Application.MessageBox('只能在待提交状态下进行提交操作!', '提示', 0); Exit; end; rtvalues := SelCDSKey(Order_Main, ['MainId', 'OrderNo']); if canshu1 <> '管理' then begin with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from Trade_Plan_Main A '); sql.Add(' where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where A.MainId=X.RTValue ) '); sql.Add(' and Filler<>' + QuotedStr(Trim(Order_Main.fieldbyname('Filler').AsString))); open; end; if not ADOQueryTemp.IsEmpty then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; end; if Application.MessageBox('确定要提交数据吗?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Trade_Plan_Main SET status=''1'' '); sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Main.MainId=X.RTValue ) '); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('计划单提交'))); sql.Add(',' + quotedstr(trim('计划单号:' + trim(rtvalues[1])))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('计划单提交成功!', '提示信息'); except application.MessageBox('计划单提交失败!', '提示信息', 0); end; // SendMessageQR(trim(Order_Main.FieldByName('mainid').AsString), trim(Order_Main.FieldByName('Filler').AsString), trim(Order_Main.FieldByName('orderNO').AsString), Trim(FormatDateTime('yyyy-MM-dd', Order_Main.FieldByName('OrdDate').asdatetime))); // with ADOQueryCmd do // begin // close; // sql.Clear; // sql.Add('exec P_MSG_in '); // sql.Add(' @MSG=' + QuotedStr(trim('计划单号:' + trim(Order_Main.FieldByName('orderNO').AsString) + ' 需要审核'))); // sql.Add(',@FillUserid=' + QuotedStr(trim(DCode))); // sql.Add(',@FillUserName=' + QuotedStr(trim(DName))); // sql.Add(',@FillType=' + QuotedStr(trim('需要确认'))); // sql.Add(',@MegType=' + QuotedStr(trim('计划单提交'))); // execsql; // end; TBRafresh.Click; end; procedure TfrmTradePackagePlanList.TBTJCXClick(Sender: TObject); var rtvalues: TArray; begin if Order_Main.IsEmpty then exit; if cxTabControl1.TabIndex <> 1 then begin Application.MessageBox('只能在待审核状态下进行提交撤销操作!', '提示', 0); Exit; end; rtvalues := SelCDSKey(Order_Main, ['MainId', 'OrderNo']); if canshu1 <> '管理' then begin with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from Trade_Plan_Main A '); sql.Add(' where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where A.MainId=X.RTValue ) '); sql.Add(' and Filler<>' + QuotedStr(Trim(Order_Main.fieldbyname('Filler').AsString))); open; end; if not ADOQueryTemp.IsEmpty then begin Application.MessageBox('不能操作他人的数据!', '提示', 0); Exit; end; end; if Application.MessageBox('确定要撤销提交数据吗?', '提示', 32 + 4) <> IDYES then Exit; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update Trade_Plan_Main SET status=''0'' '); sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(rtvalues[0]) + ','','') X where Trade_Plan_Main.MainId=X.RTValue ) '); sql.Add(' and isnull(status,''0'')=''1'' '); sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( '); sql.Add(' ' + quotedstr(trim(DName))); sql.Add(',getdate() '); sql.Add(',' + quotedstr(trim(self.Caption))); sql.Add(',' + quotedstr(trim('计划单提交撤销'))); sql.Add(',' + quotedstr(trim('计划单号:' + trim(rtvalues[1])))); sql.Add(',' + quotedstr(trim('成功'))); sql.Add(')'); execsql; end; application.MessageBox('计划单提交撤销成功!', '提示信息'); TBRafresh.Click; except application.MessageBox('计划单提交撤销失败!', '提示信息', 0); end; end; procedure TfrmTradePackagePlanList.N1Click(Sender: TObject); begin CopyTVFocusValue(TV1); end; procedure TfrmTradePackagePlanList.N2Click(Sender: TObject); begin CopyTVFocusValue(TV2); end; procedure TfrmTradePackagePlanList.N3Click(Sender: TObject); begin SelOKNoFiler(Tv2, True); //全选 end; procedure TfrmTradePackagePlanList.N4Click(Sender: TObject); begin SelOKNoFiler(Tv2, False); //全弃 end; procedure TfrmTradePackagePlanList.N5Click(Sender: TObject); begin SelOKNo(Order_Main, True); end; procedure TfrmTradePackagePlanList.N6Click(Sender: TObject); begin SelOKNo(Order_Main, False); end; procedure TfrmTradePackagePlanList.ComboBox1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmTradePackagePlanList.CustomerNoNameKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin InitGrid(); end; end; procedure TfrmTradePackagePlanList.ToolButton10Click(Sender: TObject); begin WriteCxGrid('指示单列表FF1', Tv1, '生产指示单管理'); WriteCxGrid('指示单列表FFTv21', Tv2, '生产指示单管理6'); application.MessageBox('保存成功!', '提示信息', 0); end; procedure TfrmTradePackagePlanList.ToolButton1Click(Sender: TObject); begin try frmTradeInspSet := TfrmTradeInspSet.Create(Application); with frmTradeInspSet do begin FDataID := Trim(Self.Order_Main.fieldbyname('MainId').AsString); if ShowModal = 1 then begin end; end; finally frmTradeInspSet.Free; end; end; procedure TfrmTradePackagePlanList.ToolButton2Click(Sender: TObject); begin WriteCxGrid(trim(self.Caption) + 'Tv1', Tv1, '生产指示单管理'); WriteCxGrid(trim(self.Caption) + 'Tv2', Tv2, '生产指示单管理'); end; procedure TfrmTradePackagePlanList.ToolButton3Click(Sender: TObject); begin try frmSysLogHelp := TfrmSysLogHelp.Create(Application); with frmSysLogHelp do begin if ShowModal = 1 then begin end; end; finally frmSysLogHelp.Free; end; end; end.