D7XHshengfang/盛纺贸易管理/U_HuiruhGPIjiluCX.pas

333 lines
8.9 KiB
ObjectPascal
Raw Normal View History

2025-04-30 23:58:03 +08:00
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('<27><><EFBFBD><EFBFBD>GPI<50><49>¼<EFBFBD><C2BC>ѯ<EFBFBD>ӿ<EFBFBD>', Tv1, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
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 := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' + vRet['totalSize'].AsString;
Label2.Caption := '<27><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>' + 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('<27><>Ӧ<EFBFBD>̻<EFBFBD><CCBB><EFBFBD>', Tv1, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
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('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><ECB3A3>', '<27><>ʾ', 0);
end;
end;
procedure TfrmHuiruhGPIjiluCX.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD>GPI<50><49>¼<EFBFBD><C2BC>ѯ<EFBFBD>ӿ<EFBFBD><D3BF>б<EFBFBD>', 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.