RtTool/Delphi10/开发档案/Dp10RepoV1/public10/ThreeFun/Fun/U_RPFun.pas
2025-04-18 10:31:02 +08:00

141 lines
3.9 KiB
ObjectPascal

unit U_RPFun;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, StdCtrls, BtnEdit, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DBGrids, DB, cxDBData,
cxGridLevel, cxClasses, cxControls, cxGridCustomView, ADODB, StrUtils, Midas,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxTimeEdit,
cxTreeView, cxGrid, cxDBLookupComboBox, cxCalendar, cxCurrencyEdit,
cxGridExportLink, ExtCtrls, Buttons, DBClient, RTComboBox, cxDropDownEdit,
cxGridBandedTableView, cxGridDBBandedTableView, cxRichEdit, cxButtonEdit,
IniFiles, WinSock, IdHTTP, dxcore, cxTextEdit, FireDAC.Comp.Client, cxCheckBox,
Vcl.Clipbrd, cxMemo, dxLayoutControl;
function FromPrintFr3(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
function FunPrintFr3(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
function FromPrintRmf(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
function FromPrintReport(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
implementation
function FromPrintReport(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
var
FileName, MReport: string;
programIni: Tinifile; //配置文件名
JsonResult: PChar;
begin
FileName := ExtractFilePath(Paramstr(0)) + 'SYSTEMSET.INI';
programIni := Tinifile.create(FileName);
MReport := programIni.ReadString('窗口设置', '报表窗体', '0');
programIni.Free;
if MReport = '0' then
begin
JsonResult := FromPrintFr3(App, DataBaseStr, JsonArgs);
end
else
begin
JsonResult := FromPrintRmf(App, DataBaseStr, JsonArgs);
end;
Result := JsonResult;
end;
function FromPrintFr3(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
type
TMyFunc = function(App: Tapplication; FormID: integer; Title: PChar; DataBaseStr: PChar; JsonArgs: PChar): PChar; stdcall;
var
Tf: TMyFunc;
Tp: TFarProc;
Th: Thandle;
JsonResult: PChar;
begin
Th := LoadLibrary('ReportPrint.dll');
if Th > 0 then
begin
Tp := GetProcAddress(Th, 'GetDllForm');
if Tp <> nil then
begin
Tf := TMyFunc(Tp);
JsonResult := Tf(Application, 11, 'FR3报表', DataBaseStr, JsonArgs);
end
else
begin
JsonResult := '{"succsee":false,"message": "读取调用号异常"}';
end;
end
else
begin
JsonResult := '{"succsee":false,"message": "找不到ReportPrint.dll"}';
end;
Result := JsonResult;
end;
function FunPrintFr3(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
type
TMyFunc = function(App: Tapplication; FormID: integer; Title: PChar; DataBaseStr: PChar; JsonArgs: PChar): PChar; stdcall;
var
Tf: TMyFunc;
Tp: TFarProc;
Th: Thandle;
JsonResult: PChar;
begin
Th := LoadLibrary('ReportPrint.dll');
if Th > 0 then
begin
Tp := GetProcAddress(Th, 'GetDllForm');
if Tp <> nil then
begin
Tf := TMyFunc(Tp);
JsonResult := Tf(Application, 12, 'FR3报表', DataBaseStr, JsonArgs);
end
else
begin
JsonResult := '{"succsee":false,"message": "读取调用号异常"}';
end;
end
else
begin
JsonResult := '{"succsee":false,"message": "找不到ReportPrint.dll"}';
end;
Result := JsonResult;
end;
function FromPrintRmf(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
type
TMyFunc = function(App: Tapplication; FormID: integer; Title: PChar; DataBaseStr: PChar; JsonArgs: PChar): PChar; stdcall;
var
Tf: TMyFunc;
Tp: TFarProc;
Th: Thandle;
JsonResult: PChar;
begin
Th := LoadLibrary('ReportPrint.dll');
if Th > 0 then
begin
Tp := GetProcAddress(Th, 'GetDllForm');
if Tp <> nil then
begin
Tf := TMyFunc(Tp);
JsonResult := Tf(Application, 21, 'Rmf报表', DataBaseStr, JsonArgs);
end
else
begin
JsonResult := '{"succsee":false,"message": "读取调用号异常"}';
end;
end
else
begin
JsonResult := '{"succsee":false,"message": "找不到ReportPrint.dll"}';
end;
Result := JsonResult;
end;
end.