You've already forked lazarus-ccr
113 lines
3.1 KiB
ObjectPascal
113 lines
3.1 KiB
ObjectPascal
![]() |
(* ***** BEGIN LICENSE BLOCK *****
|
||
|
* Version: MPL 1.1
|
||
|
*
|
||
|
* The contents of this file are subject to the Mozilla Public License Version
|
||
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
||
|
* the License. You may obtain a copy of the License at
|
||
|
* http://www.mozilla.org/MPL/
|
||
|
*
|
||
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
||
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||
|
* for the specific language governing rights and limitations under the
|
||
|
* License.
|
||
|
*
|
||
|
* The Original Code is TurboPower FlashFiler
|
||
|
*
|
||
|
* The Initial Developer of the Original Code is
|
||
|
* Eivind Bakkestuen
|
||
|
* Used with permission.
|
||
|
*
|
||
|
* Portions created by the Initial Developer are Copyright (C) 2002
|
||
|
* the Initial Developer. All Rights Reserved.
|
||
|
*
|
||
|
* Contributor(s):
|
||
|
*
|
||
|
* ***** END LICENSE BLOCK ***** *)
|
||
|
|
||
|
unit uReportEngineInterface;
|
||
|
|
||
|
interface
|
||
|
|
||
|
{$I FFDEFINE.INC}
|
||
|
|
||
|
uses
|
||
|
ffllbase,
|
||
|
ffllprot,
|
||
|
ffdb;
|
||
|
|
||
|
type
|
||
|
TRangeFieldValues = Array[0..Pred(ffcl_MaxIndexFlds)] of Variant;
|
||
|
|
||
|
var
|
||
|
ReportEngineDLLLoaded : Boolean;
|
||
|
|
||
|
{ take care to ensure that the method declarations here and
|
||
|
in the reportengine DLL match! }
|
||
|
|
||
|
SingleTableReport : procedure(aProtocol : TffProtocolType;
|
||
|
aServerName : TffNetAddress;
|
||
|
aUserName,
|
||
|
aPassword : TffName;
|
||
|
aAliasName : PChar;
|
||
|
aTableName : TffTableName;
|
||
|
aFilter,
|
||
|
aIndexName : PChar;
|
||
|
aRangeStart,
|
||
|
aRangeEnd : TRangeFieldValues);
|
||
|
|
||
|
SingleQueryReport : procedure(aProtocol : TffProtocolType;
|
||
|
aServerName : TffNetAddress;
|
||
|
aUserName,
|
||
|
aPassword : TffName;
|
||
|
aAliasName : PChar;
|
||
|
aSQL,
|
||
|
aFilter : PChar);
|
||
|
|
||
|
|
||
|
DesignReport : procedure(aProtocol : TffProtocolType;
|
||
|
aServerName : TffNetAddress;
|
||
|
aUserName,
|
||
|
aPassword : TffName;
|
||
|
aAliasName : PChar);
|
||
|
|
||
|
implementation
|
||
|
|
||
|
uses
|
||
|
Windows,
|
||
|
SysUtils,
|
||
|
Forms;
|
||
|
|
||
|
var
|
||
|
hDLL : THandle;
|
||
|
|
||
|
|
||
|
function LoadReportEngineDLL : Boolean;
|
||
|
var
|
||
|
DllPath : String;
|
||
|
begin
|
||
|
Result := False;
|
||
|
hDLL := 0;
|
||
|
DllPath := ExtractFilePath(Application.ExeName)+'\FFEReportEngine.DLL';
|
||
|
if FileExists(DllPath) then begin
|
||
|
hDLL := LoadLibrary(PChar(DllPath));
|
||
|
if hDLL<>0 then begin
|
||
|
@SingleTableReport := GetProcAddress(hDLL, 'SingleTableReport');
|
||
|
@SingleQueryReport := GetProcAddress(hDLL, 'SingleQueryReport');
|
||
|
@DesignReport := GetProcAddress(hDLL, 'DesignReport');
|
||
|
{ add new routines above, and tests for NIL below }
|
||
|
if (@SingleTableReport<>NIL) and
|
||
|
(@SingleQueryReport<>NIL) and
|
||
|
(@DesignReport<>NIL) then
|
||
|
Result := True;
|
||
|
end;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
initialization
|
||
|
ReportEngineDLLLoaded := LoadReportEngineDLL;
|
||
|
|
||
|
finalization
|
||
|
if hDLL<>0 then
|
||
|
FreeLibrary(hDLL);
|
||
|
end.
|