unit U_HuiruhGPIjiluCX; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class, RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, IdIOHandler, IdIOHandlerSocket, IdSSLOpenSSL, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, superobject, uJSONDB; type TfrmHuiruhGPIjiluCX = class(TForm) ToolBar1: TToolBar; TBRafresh: TToolButton; TBFind: TToolButton; TBClose: TToolButton; Panel1: TPanel; BegDate: TDateTimePicker; EndDate: TDateTimePicker; Label1: TLabel; cxGridPopupMenu1: TcxGridPopupMenu; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; DataSource1: TDataSource; TBExport: TToolButton; Order_Main: TClientDataSet; RMXLSExport1: TRMXLSExport; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; TV1status: TcxGridDBColumn; v1payAccpayName: TcxGridDBColumn; V1remitCurCode: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Date: TcxGridDBColumn; v1amt: TcxGridDBColumn; IdHTTP1: TIdHTTP; IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket; Label11: TLabel; Label2: TLabel; Label3: TLabel; Panel8: TPanel; LBCPAP: TLabel; BTNP: TButton; BTLP: TButton; Label4: TLabel; Label31: TLabel; TCBNOR: TComboBox; Label5: TLabel; Label6: TLabel; payName: TEdit; status: TComboBox; Tv1Column1: TcxGridDBColumn; procedure FormDestroy(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure TBFindClick(Sender: TObject); procedure TBExportClick(Sender: TObject); procedure TBRafreshClick(Sender: TObject); procedure memoMsgContextChange(Sender: TObject); procedure FormShow(Sender: TObject); procedure cxPageControl1Change(Sender: TObject); procedure BTNPClick(Sender: TObject); procedure BTLPClick(Sender: TObject); procedure payNameChange(Sender: TObject); procedure statusChange(Sender: TObject); private FInt, PFInt: Integer; CurrentPage: integer; result: boolean; procedure InitGrid(); procedure InitForm(); function DelData(): Boolean; function SendRequest(): boolean; { Private declarations } public { Public declarations } end; var frmHuiruhGPIjiluCX: TfrmHuiruhGPIjiluCX; implementation uses U_DataLink, U_Fun, U_ZDYHelp; {$R *.dfm} procedure TfrmHuiruhGPIjiluCX.FormDestroy(Sender: TObject); begin frmHuiruhGPIjiluCX := nil; end; procedure TfrmHuiruhGPIjiluCX.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmHuiruhGPIjiluCX.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('汇入GPI记录查询接口', Tv1, '指示单管理'); end; function TfrmHuiruhGPIjiluCX.SendRequest(): boolean; var s, t, m, w: string; IdHTTP: TIdHTTP; SendStr, Response, Response1, x, y, z, q: string; Request: TStrings; vJson, vRet: ISuperObject; ja: TSuperArray; begin // SendStr:='{"beginDate":"20230622","endDate":"20230622","pageSize":100,"currentPage":1}'; s := FormatDateTime('yyyyMMdd', BegDate.DateTime); m := FormatDateTime('yyyyMMdd', EndDate.DateTime); t := FloatToStr(currentPage); // w := TCBNOR.Text; x := '{"beginDate": ' + '"' + s + '"'; y := x + ',"endDate":' + '"' + m + '"'; // q := y + ',"pageSize":' + w + ''; SendStr := y + ',"pageSize":100,"currentPage":' + t + '}'; vJson := SO(SendStr); IdHTTP := TIdHTTP.Create(nil); IdHTTP.Request.ContentType := 'application/json'; Request := TStringList.Create; result := false; try Request.Append(utf8Encode(vJson.AsString)); Response := IdHTTP.Post('http://www.rightsoft.top/shengfang/api/nbBank/easyInboundQuery ', Request); vRet := SO(Response); if trim(vRet['msg'].AsString) = 'SUCCESS' then begin Response1 := vRet['data'].AsString; vRet := SO(Response1); Label3.caption := vRet['totalSize'].AsString; Label4.caption := vRet['totalPage'].AsString; Label11.Caption := '总条数:' + vRet['totalSize'].AsString; Label2.Caption := '总页数:' + vRet['totalPage'].AsString; ja := vRet['list'].AsArray; TJSONDB.JsonToClientDataSet(ja, Order_Main); result := true; end; finally Request.Free; IdHTTP.free; end; end; procedure TfrmHuiruhGPIjiluCX.InitGrid(); begin if Order_Main.IsEmpty = False then Order_Main.EmptyDataSet; SendRequest(); LBCPAP.Caption := inttostr(CurrentPage) + '/' + label4.Caption; end; //var // SS: TStringStream; // HttpClient: TIdHttp; // ParamList: TStringS; //begin //// SS := TStringStream.Create('', TEncoding.UTF8); // SS := TStringStream.Create(''); // HttpClient := TIdHttp.Create(nil); // ParamList := TStringList.Create; // // try // ParamList.Add('"beginDate":"20230101"'); // ParamList.Add('"endDate":"20230529"'); // ParamList.Add('"pageSize":100'); // ParamList.Add('"currentPage":1'); // //// ParamList.Add('MsgContext=' + memoMsgContext.Text); //// ParamList.Add('MsgContext=' + HTTPEncode(UTF8Encode(memoMsgContext.Text))); // HttpClient.Post('http://101.132.146.12/sf/api/nbBank/easyInboundQuery', ParamList, SS); // // MemoResult.Text := SS.DataString; // finally // SS.Free; // HttpClient.Free; // ParamList.Free; // end; //end; procedure TfrmHuiruhGPIjiluCX.InitForm(); begin ReadCxGrid('供应商汇总', Tv1, '指示单管理'); BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 60; EndDate.DateTime := SGetServerDate10(ADOQueryTemp); InitGrid(); end; procedure TfrmHuiruhGPIjiluCX.TBFindClick(Sender: TObject); begin if Order_Main.Active = False then Exit; SDofilter10(Order_Main, SGetFilters(Panel1, 1, 2)); // cxDataSetCreateBookmark(,) // SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); // TJSONDB.JsonToClientDataSet(ja, Order_Main); // SCreateCDS20(ADOQueryMain, Order_Main); // SInitCDSData20(ADOQueryMain, Order_Main); end; function TfrmHuiruhGPIjiluCX.DelData(): Boolean; begin try Result := false; ADOQueryCmd.Connection.BeginTrans; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete ContractSX_Sub where SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + ''''); ExecSQL; end; with ADOQueryTemp do begin Close; sql.Clear; sql.Add('select * from ContractSX_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); Open; end; if ADOQueryTemp.IsEmpty then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; end; if Trim(Order_Main.fieldbyname('SubId').AsString) = '' then begin with ADOQueryCmd do begin Close; sql.Clear; sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + ''''); ExecSQL; end; end; ADOQueryCmd.Connection.CommitTrans; Result := True; except ADOQueryCmd.Connection.RollbackTrans; Result := False; Application.MessageBox('数据删除异常!', '提示', 0); end; end; procedure TfrmHuiruhGPIjiluCX.TBExportClick(Sender: TObject); begin if ADOQueryMain.IsEmpty then Exit; TcxGridToExcel('汇入GPI记录查询接口列表', cxGrid1); end; procedure TfrmHuiruhGPIjiluCX.TBRafreshClick(Sender: TObject); begin InitGrid(); end; procedure TfrmHuiruhGPIjiluCX.memoMsgContextChange(Sender: TObject); begin if ADOQueryMain.Active = False then Exit; SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2)); SCreateCDS20(ADOQueryMain, Order_Main); SInitCDSData20(ADOQueryMain, Order_Main); end; procedure TfrmHuiruhGPIjiluCX.FormShow(Sender: TObject); begin currentPage := 1; InitForm(); end; procedure TfrmHuiruhGPIjiluCX.cxPageControl1Change(Sender: TObject); begin InitGrid(); end; procedure TfrmHuiruhGPIjiluCX.BTNPClick(Sender: TObject); var i: double; begin i := StrTofloat(Label3.Caption) / 100; if CurrentPage < i then CurrentPage := CurrentPage + 1; InitGrid(); end; procedure TfrmHuiruhGPIjiluCX.BTLPClick(Sender: TObject); begin if CurrentPage > 1 then CurrentPage := CurrentPage - 1; InitGrid(); end; procedure TfrmHuiruhGPIjiluCX.payNameChange(Sender: TObject); begin TBFind.Click; end; procedure TfrmHuiruhGPIjiluCX.statusChange(Sender: TObject); begin TBFind.Click; end; end.