unit U_YMTFHSQList; 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, RM_E_llPDF, cxDropDownEdit, cxTextEdit, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinDarkRoom, dxSkinOffice2013White, dxSkinSharpPlus, dxSkinSpringTime, dxSkinsDefaultPainters, dxSkinscxPCPainter, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSilver, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, BtnEdit; type TfrmYMTFHSQList = class(TForm) ToolBar1: TToolBar; TBRafresh: 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; v1OrdDate: TcxGridDBColumn; v1OrdPerson1: TcxGridDBColumn; Order_Main: TClientDataSet; RMDB_Main: TRMDBDataSet; RMXLSExport1: TRMXLSExport; ToolButton1: TToolButton; ADOQueryPrint: TADOQuery; CDS_Print: TClientDataSet; v1Column4: TcxGridDBColumn; Panel1: TPanel; Label1: TLabel; Label4: TLabel; Label5: TLabel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; SHDanWei: TEdit; Salesman: TEdit; tchk: TToolButton; Tnochk: TToolButton; cxSplitter1: TcxSplitter; ADOQuerySub: TADOQuery; DataSource2: TDataSource; v1Column8: TcxGridDBColumn; Label2: TLabel; //RMllPDFExport1: TRMllPDFExport; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; v1Column5: TcxGridDBColumn; cxGridLevel1: TcxGridLevel; ClientDataSet2: TClientDataSet; cxGridPopupMenu2: TcxGridPopupMenu; CDS_Note: TClientDataSet; v2Column2: TcxGridDBColumn; RM1: TRMGridReport; v1Column11: TcxGridDBColumn; v1Column13: TcxGridDBColumn; v1Column17: TcxGridDBColumn; v1Column18: TcxGridDBColumn; v1Column19: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v1Column1: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column10: TcxGridDBColumn; v1Column21: TcxGridDBColumn; v2Column9: TcxGridDBColumn; v2Column10: TcxGridDBColumn; v2Column12: TcxGridDBColumn; v1Column2: TcxGridDBColumn; CDSUser: TClientDataSet; IdHTTP1: TIdHTTP; v2Column6: TcxGridDBColumn; ComboBox1: TComboBox; Label3: TLabel; cxStyleRepository1: TcxStyleRepository; cxStyle1: TcxStyle; v1Column3: TcxGridDBColumn; v2Column4: TcxGridDBColumn; v2Column5: TcxGridDBColumn; ToolButton2: TToolButton; Panel3: TPanel; Label25: TLabel; btnChk: TButton; Button3: TButton; CRType: TComboBox; v1Column6: TcxGridDBColumn; Tv1Column1: TcxGridDBColumn; TbAdd2: TToolButton; Tv2Column1: TcxGridDBColumn; OutStock: TToolButton; PrintMD: TToolButton; Panel4: TPanel; Label12: TLabel; MDName: TComboBox; //RMllPDFExport1: TRMllPDFExport; 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 FormShow(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure tchkClick(Sender: TObject); procedure TnochkClick(Sender: TObject); procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure ComboBox1Change(Sender: TObject); procedure BegDateChange(Sender: TObject); procedure SHDanWeiKeyPress(Sender: TObject; var Key: Char); procedure ToolButton2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure btnChkClick(Sender: TObject); procedure TbAdd2Click(Sender: TObject); procedure OutStockClick(Sender: TObject); procedure PrintMDClick(Sender: TObject); private procedure InitGrid(); procedure InitSubGrid(); procedure InitForm(); function DelData(): Boolean; procedure SendMessage(Mfsid: string); function BatchStockOut(FSID: string; UserID: string): Boolean; { Private declarations } public FFInt: Integer; canshu1, FZZType: string; { Public declarations } end; var frmYMTFHSQList: TfrmYMTFHSQList; implementation uses U_DataLink, U_YMTFHSQInPut, U_Fun, U_ZDYHelp, U_LabelPrintFun, U_YMTFHSQInPut2, superobject; {$R *.dfm} function TfrmYMTFHSQList.BatchStockOut(FSID: string; UserID: string): Boolean; var IdHttp: TIdHTTP; Url, ResponseStr: string; ResponseStream: TStringStream; vJson1: ISuperObject; begin Result := False; // 参数验证 if Trim(FSID) = '' then begin ShowMessage('MXID不能为空'); Exit; end; if Trim(UserID) = '' then begin ShowMessage('用户ID不能为空'); Exit; end; IdHttp := TIdHTTP.Create(nil); ResponseStream := TStringStream.Create(''); try try // GET请求 - 不需要设置ContentType // 参数直接放在URL中 // 接口URL(参数编码在URL中) Url := 'http://www.rightsoft.top/YunXiang/api/YMTCK/batchStockOut?' + 'FSID=' + Trim(FSID) + '&userid=' + Trim(UserID); // ShowMessage(Url); // 发送GET请求 IdHttp.Get(Url, ResponseStream); // 获取响应内容 ResponseStr := ResponseStream.DataString; // 解析JSON响应 vJson1 := SO(ResponseStr); // ShowMessage(ResponseStr); if (vJson1.O['code'] <> nil) then begin if (vJson1.O['code'].AsInteger = 10000) then begin Result := True; ShowMessage('自动出库成功!'); end else begin // 获取错误信息 if vJson1.O['message'] <> nil then ShowMessage('自动出库失败: ' + vJson1.O['message'].AsString) else ShowMessage('自动出库失败,未知错误'); end; end else begin ShowMessage('接口返回格式错误'); end; except on e: Exception do begin ShowMessage('网络请求异常: ' + e.Message); end; end; finally IdHttp.Free; ResponseStream.Free; end; end; procedure TfrmYMTFHSQList.SendMessage(Mfsid: string); begin if FZZType = '纬编' then begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select * from SY_User A where ISNULL(wxid,'''')<>'''''); SQL.Add(' and exists( select * from SY_Purview X where A.UserID=X.UserID and ModuleID=''09'' and ModuleSubID=''03'' ) '); Open; end; end else begin with ADOQueryTemp do begin Close; SQL.Clear; sql.Add(' select * from SY_User A where ISNULL(wxid,'''')<>'''''); SQL.Add(' and exists( select * from SY_Purview X where A.UserID=X.UserID and ModuleID=''09'' and ModuleSubID=''13'' ) '); Open; end; end; SCreateCDS20(ADOQueryTemp, CDSUser); SInitCDSData20(ADOQueryTemp, CDSUser); // if ADOQueryTmp.IsEmpty then // begin // Application.MessageBox('客户未绑定微信,提交失败!','提示信息',0); // Exit; // end; CDSUser.First; while not CDSUser.Eof do begin try with ADOQueryCmd do begin Close; SQL.Clear; SQL.Add('select * from WeixinMessage where 1<>1'); Open; Append; FieldByName('MessageType').Value := 'DeliverApplyToAudit'; FieldByName('MessageName').Value := '发货申请审核'; FieldByName('Title').Value := '您有新的发货申请需要审核'; FieldByName('URL').Value := 'pages/delivery-apply/view?id=' + Trim(Mfsid); FieldByName('OpenId').Value := Trim(CDSUser.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(Mfsid); FieldByName('KeyWord1').Value := Trim(Mfsid); FieldByName('KeyWord2').Value := '发货申请'; Post; end; //GetHTTP(IdHTTP1, 'http://www.rightsoft.top/linghui/api/Message/Send/DeliverApplyToAudit'); except Application.MessageBox('推送失败', '提示', 0); Exit; end; CDSUser.Next; end; end; procedure TfrmYMTFHSQList.FormDestroy(Sender: TObject); begin frmYMTFHSQList := nil; end; procedure TfrmYMTFHSQList.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmYMTFHSQList.FormCreate(Sender: TObject); begin cxgrid1.Align := alClient; canshu1 := DParameters1; end; procedure TfrmYMTFHSQList.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('发货申请YX', Tv1, '发货申请管理'); WriteCxGrid('发货申请YXMX', Tv2, '发货申请管理'); end; procedure TfrmYMTFHSQList.InitGrid(); var fwhere, Pwhere: string; begin Pwhere := SGetFilters(Panel1, 1, 2); try ADOQueryMain.DisableControls; with ADOQueryMain do begin Filtered := False; Close; sql.Clear; Sql.Add(' select A.* from YMT_FHSQ_Main A'); sql.Add(' where Valid = ''Y'' '); sql.Add(' and filltime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + ''''); sql.Add(' and filltime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + ''''); if Trim(Self.Caption) = '销售发货申请' then begin sql.Add(' and CRType in (''销售内销'',''销售外销'')'); end else if Trim(Self.Caption) = '加工发货登记' then begin sql.Add(' and CRType in (''本厂加工'',''外发加工'')'); end; if ComboBox1.Text = '未审核' then begin SQL.Add(' and isnull(A.Chker,'''')='''' '); end else if ComboBox1.Text = '已审核' then begin SQL.Add(' and isnull(A.Chker,'''')<>'''' '); end; if Trim(canshu1) <> '高权限' then begin sql.Add(' and isnull(A.Filler,'''')=''' + Trim(DName) + ''''); end; if Pwhere <> '' then sql.Add(' and ' + Pwhere); Open; end; SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); finally ADOQueryMain.EnableControls; end; end; procedure TfrmYMTFHSQList.InitForm(); begin ReadCxGrid('发货申请YX', Tv1, '发货申请管理'); ReadCxGrid('发货申请YXMX', Tv2, '发货申请管理'); EndDate.DateTime := SGetServerDate10(ADOQueryTemp); BegDate.DateTime := EndDate.DateTime; if Trim(Self.Caption) = '销售发货申请' then begin TBAdd.Visible := True; TBAdd2.Visible := False; OutStock.Visible := False; end else if Trim(Self.Caption) = '加工发货登记' then begin TBAdd2.Visible := True; TBAdd.Visible := False; PrintMD.Visible := False; Panel4.Visible := False; end; end; procedure TfrmYMTFHSQList.TBEditClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if trim(Order_Main.fieldbyname('Chker').AsString) <> '' then begin application.MessageBox('已审核数据无法删除!', '提示信息'); exit; end; if Trim(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 YMT_FHSQ_Main'); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if Trim(ADOQueryTemp.fieldbyname('YSID').AsString) <> '' then begin Application.MessageBox('已生成应收账款不能修改数据!', '提示', 0); Exit; end; if Trim(Self.Caption) = '销售发货申请' then begin try frmFHSQInPut := TfrmFHSQInPut.Create(Application); with frmFHSQInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('FSID').AsString); FZZType := trim(self.FZZType); if ShowModal = 1 then begin end; end; finally frmFHSQInPut.Free; end; end else if Trim(Self.Caption) = '加工发货登记' then begin try frmFHSQInPut2 := TfrmFHSQInPut2.Create(Application); with frmFHSQInPut2 do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('FSID').AsString); FZZType := trim(self.FZZType); if ShowModal = 1 then begin end; end; finally frmFHSQInPut2.Free; end; end; end; procedure TfrmYMTFHSQList.TBDelClick(Sender: TObject); begin if Order_Main.IsEmpty then Exit; if trim(Order_Main.fieldbyname('Chker').AsString) <> '' then begin application.MessageBox('已审核数据无法删除!', '提示信息'); exit; end; 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('select * from YMT_FHSQ_Sub where FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); sql.add(' and isnull(FHPS,0)>0'); Open; end; if ADOQueryTemp.IsEmpty = False then begin Application.MessageBox('已发货不能删除数据!', '提示', 0); exit; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from YMT_FHSQ_Main'); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if Trim(ADOQueryTemp.fieldbyname('YSID').AsString) <> '' 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 TfrmYMTFHSQList.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete YMT_FHSQ_Sub where FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); ExecSQL; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete YMT_FHSQ_Main where FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); ExecSQL; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmYMTFHSQList.TBPrintClick(Sender: TObject); var MPrintJson, JsonResult, msql: string; begin if Order_Main.IsEmpty then Exit; msql := ' select A.*,B.* from YMT_FHSQ_Main A inner join YMT_FHSQ_Sub B on A.FSId=B.FSId where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''; if Trim(Self.Caption) = '销售发货申请' then begin MPrintJson := '{ "LBName": "销售发货申请单","QrCodeField": "ssid","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "' + msql + '" }] }'; end else if Trim(Self.Caption) = '加工发货登记' then begin MPrintJson := '{ "LBName": "加工发货申请单","QrCodeField": "ssid","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "' + msql + '" }] }'; end; FunPrint(Application, PChar(MPrintJson)); end; procedure TfrmYMTFHSQList.TBRafreshClick(Sender: TObject); begin InitGrid(); InitSubGrid(); end; procedure TfrmYMTFHSQList.TBAddClick(Sender: TObject); var maxno: string; begin try frmFHSQInPut := TfrmFHSQInPut.Create(Application); with frmFHSQInPut do begin PState := 0; FMainId := ''; FZZType := trim(self.FZZType); if ShowModal = 1 then begin end; end; finally frmFHSQInPut.Free; end; InitGrid(); end; procedure TfrmYMTFHSQList.FormShow(Sender: TObject); begin InitForm(); InitGrid(); end; procedure TfrmYMTFHSQList.CheckBox1Click(Sender: TObject); begin InitGrid(); end; procedure TfrmYMTFHSQList.CheckBox2Click(Sender: TObject); begin TBRafresh.Click; end; procedure TfrmYMTFHSQList.ToolButton1Click(Sender: TObject); begin if Order_Main.IsEmpty then Exit; try frmFHSQInPut := TfrmFHSQInPut.Create(Application); with frmFHSQInPut do begin PState := 1; FMainId := Trim(Self.Order_Main.fieldbyname('FSID').AsString); FZZType := trim(self.FZZType); ToolBar2.Visible := False; TBSave.Visible := False; ScrollBox1.Enabled := False; Tv1.OptionsSelection.CellSelect := False; if ShowModal = 1 then begin end; end; finally frmFHSQInPut.Free; end; end; procedure TfrmYMTFHSQList.tchkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if trim(Order_Main.fieldbyname('Chker').AsString) <> '' then begin application.MessageBox('已审核数据无需审核!', '提示信息'); exit; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from KH_Main '); sql.Add('where KHNO=' + quotedstr(trim(Order_Main.fieldbyname('KHNO').AsString))); open; end; if trim(ADOQueryTemp.fieldbyname('status').AsString) <> '1' then begin application.MessageBox('客户未审核', '提示信息'); exit; end; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YMT_FHSQ_Main SET Chker=''' + Trim(DName) + ''',ChkTime=getdate(),ChkStatus=''审核通过'' '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; // Order_Main.Delete; InitGrid(); application.MessageBox('审核成功!', '提示信息'); except application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmYMTFHSQList.InitSubGrid(); begin with ADOQueryTemp do begin Close; sql.Clear; if Order_Main.IsEmpty = False then sql.Add('select * from YMT_FHSQ_Sub A where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + '''') else sql.Add('select * from YMT_FHSQ_Sub A where 1=2'); Open; end; SCreateCDS20(ADOQueryTemp, ClientDataSet2); SInitCDSData20(ADOQueryTemp, ClientDataSet2); end; procedure TfrmYMTFHSQList.TnochkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if trim(Order_Main.fieldbyname('Chker').AsString) = '' then begin application.MessageBox('当前数据未审核!', '提示信息'); exit; end; with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from YMT_FHSQ_Main'); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); Open; end; if Trim(ADOQueryTemp.fieldbyname('YSID').AsString) <> '' then begin Application.MessageBox('已生成应收账款不能撤销!', '提示', 0); Exit; end; try with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YMT_FHSQ_Main SET Chker=Null,ChkTime=Null,ChkStatus=Null '); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; // Order_Main.Delete; InitGrid(); application.MessageBox('撤销成功!', '提示信息'); except application.MessageBox('撤销失败!', '提示信息', 0); end; end; procedure TfrmYMTFHSQList.Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select A.* from YMT_FHSQ_Sub A '); sql.Add(' where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); Open; end; SCreateCDS20(ADOQueryTemp, ClientDataSet2); SInitCDSData20(ADOQueryTemp, ClientDataSet2); end; procedure TfrmYMTFHSQList.ComboBox1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmYMTFHSQList.BegDateChange(Sender: TObject); begin InitGrid(); end; procedure TfrmYMTFHSQList.SHDanWeiKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then InitGrid(); end; procedure TfrmYMTFHSQList.ToolButton2Click(Sender: TObject); begin Panel3.Visible := True; end; procedure TfrmYMTFHSQList.Button3Click(Sender: TObject); begin Panel3.Visible := False; end; procedure TfrmYMTFHSQList.btnChkClick(Sender: TObject); begin if Order_Main.IsEmpty then exit; if Order_Main.Locate('SSel', True, []) = False then begin application.MessageBox('请选择数据!', '提示信息'); exit; end; try while Order_Main.Locate('SSel', True, []) do begin with ADOQueryCmd do begin close; sql.Clear; sql.Add('update YMT_FHSQ_Main SET CRType=' + quotedstr(trim(CRType.Text))); sql.Add('where FSID=' + quotedstr(trim(Order_Main.fieldbyname('FSID').AsString))); execsql; end; with Order_Main do begin Edit; FieldByName('SSel').Value := False; FieldByName('CRType').Value := trim(CRType.Text); Post; end; end; Panel3.Visible := False; application.MessageBox('审核成功!', '提示信息'); except application.MessageBox('审核失败!', '提示信息', 0); end; end; procedure TfrmYMTFHSQList.TbAdd2Click(Sender: TObject); begin try frmFHSQInPut2 := TfrmFHSQInPut2.Create(Application); with frmFHSQInPut2 do begin PState := 0; FMainId := ''; FZZType := trim(self.FZZType); if ShowModal = 1 then begin end; end; finally frmFHSQInPut2.Free; end; InitGrid(); end; procedure TfrmYMTFHSQList.OutStockClick(Sender: TObject); var MFSID: string; Result: Integer; begin if Order_Main.IsEmpty then Exit; MFSID := Order_Main.fieldbyname('FSID').AsString; if MFSID <> '' then begin // 显示带有确定和取消按钮的消息框 Result := Application.MessageBox(PChar('是否要核销出库申请单号为【' + Trim(MFSID) + '】的加工出库的全部数据'), '提示', MB_OKCANCEL + MB_ICONQUESTION // 确定取消按钮 + 问号图标 ); // 如果用户点击了取消按钮 if Result = IDCANCEL then Exit; // 退出当前过程 if not BatchStockOut(MFSID, Trim(DCode)) then begin Application.MessageBox('核销出库失败!', '提示', 0); Exit; end; end; end; procedure TfrmYMTFHSQList.PrintMDClick(Sender: TObject); var fPrintFile, FCKNO, msql, MPrintJson: string; begin if Order_Main.IsEmpty then Exit; if Order_Main.Locate('ssel', True, []) = false then begin application.MessageBox('没有选择数据', '提示'); exit; end; if Trim(MDName.Text) = '' then begin Application.MessageBox('码单名称不能为空!', '提示', 0); Exit; end; msql := 'SELECT A.* FROM YMT_CK_CR A LEFT JOIN YMT_FHSQ_Sub S ON A.ToSSID=S.SSId LEFT JOIN YMT_FHSQ_Main M ON M.FSId=S.FSId WHERE A.CRType=''销售出库'' AND M.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''; MPrintJson := '{ "LBName": "' + Trim(MDName.Text) + '","QrCodeField": "ssid","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "' + msql + '" }] }'; FunPrint(Application, PChar(MPrintJson)); end; end.