232 lines
6.3 KiB
ObjectPascal
232 lines
6.3 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 FromShowFr3(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 FunPrintRmf(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
|
|
|
|
//有窗体 根据配置文件选择报表
|
|
function FromPrintReport(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
|
|
|
|
//无窗体 根据配置文件选择报表
|
|
function FunPrintReport(App: Tapplication; DataBaseStr: PChar; JsonArgs: PChar): PChar;
|
|
|
|
implementation
|
|
|
|
//无窗体
|
|
function FunPrintReport(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('REPORTSET', 'reportType', '0');
|
|
programIni.Free;
|
|
|
|
if MReport = '0' then
|
|
begin
|
|
JsonResult := FunPrintFr3(App, DataBaseStr, JsonArgs);
|
|
end
|
|
else
|
|
begin
|
|
JsonResult := FunPrintRmf(App, DataBaseStr, JsonArgs);
|
|
end;
|
|
Result := JsonResult;
|
|
end;
|
|
|
|
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('REPORTSET', 'reportType', '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 FromShowFr3(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, 13, '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;
|
|
|
|
function FunPrintRmf(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, 22, '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.
|
|
|