1
외부 장치에서 일부 기능을 구현하고 FastReport 스크립트 내에서 호출하려고합니다. 내 단위가 올바르게 컴파일되었지만 문제가 기능이 없거나 기능 탭에 프로 시저가 나타납니다. 아무도 이것을 해결하는 방법을 조언 할 수 있습니까? 내가 뭔가를 놓쳤다면 나는 확신하지 못한다.내 기능이 FastReport 기능 탭에 나타나지 않는 이유는 무엇입니까?
다음은 나의 단위 코드의 예입니다. FastReport 개발자 가이드는 구현이 그렇게되어야 함을 명시합니다.
unit frxCustomFuncs;
interface
var myGlobalVar: primitiveType;
implementation
uses sysUtils, Classes, fs_iinterpreter,
myUnit;
type
TFunctions = class(TfsRTTIModule)
private
function CallMethod(Instance: TObject;
ClassType: TClass; const MethodName: String; var Params: Variant): Variant;
public
constructor Create(AScript: TfsScript); override;
end;
procedure myCustomProcedure(myParam1, myParam2: TdateTime);
var myVar: TMyCustomClass; //declared in myUnit
begin
myVar:= TMyCustomClass.create(myParam1, myParam2);
try
Some code ...
myGlobalVar:= myVar.property;
some code ...
finally
myVar.Free;
end;
end;
{ TFunctions }
function TFunctions.CallMethod(Instance: TObject; ClassType: TClass;
const MethodName: String; var Params: Variant): Variant;
begin
if MethodName = 'myCustomProcedure' then
myCustomProcedure(Params[0], Params[1]);
end;
constructor TFunctions.Create(AScript: TfsScript);
begin
inherited create(AScript);
with AScript do
begin
AddMethod('procedure myCustomProcedure(myParam1, myParam2: TdateTime)',
CallMethod, 'My Functions', 'custom description');
end;
end;
initialization
fsRTTIModules.Add(TFunctions);
end.
@Raul 또는 프로젝트를 uses 절에 사용하여 런타임에 보고서 디자이너를 호출하면 설명서에 설명 된대로 함수가 표시됩니다. – jachguate