Report.WordLayout(Integer, InStream) Method
Version: Available or changed with runtime version 1.0 until version 14.0 where it was deprecated for the following reason: "Replace with layout selection and 'Report Layout List' lookup. See https://go.microsoft.com/fwlink/?linkid=2284102&clcid=0x409 for more information."
Gets the Word report layout that is used on a report and returns it as a data stream.
Syntax
[Ok := ] Report.WordLayout(Number: Integer, InStream: InStream)
Parameters
Number
Type: Integer
The ID of the report object for which you want to get the Word report layout.
InStream
Type: InStream
The variable in which to return the Word report layout.
Return Value
[Optional] Ok
Type: Boolean
true if the operation was successful; otherwise false. If you omit this optional return value and the operation does not execute successfully, a runtime error will occur.
Remarks
Using the return value is optional. When you use the return value, if the Word report layout can't be retrieved at runtime, then the system returns false and no error is recorded. When you omit the return value, if the Word report layout can't be retrieved at runtime, then an error occurs, which states that the Word report couldn't be retrieved.
Example
The Report.WordLayout
method will throw a runtime error if the operation fails, either if no object exists with that object ID or if no Word layout exists for that report. This code example shows how to write robust AL code to handle possible failures.
var
layoutAsStream: InStream;
result: Boolean;
begin
result := Report.WordLayout(ObjectId, layoutAsStream);
if result then
// use the layout that now is available in the stream
else
// handle that no object exists with that id or that no Excel layout exists for that report
;
end;
If the report is known when you write the code, the safest way to avoid runtime errors is to use the scope (::) operator to reference the report object. This way you'll get a compile time error if the report doesn't exist. The example illustrates how to call WordLayout on the report MyReport using this technique:
var
layoutAsStream: InStream;
result: Boolean;
begin
// if MyReport does not exist, then Report::MyReport will fail at compile time
result := Report.WordLayout(Report::MyReport, layoutAsStream);
if result then
// use the layout that now is available in the stream
else
// handle that no Excel layout exists for that report
;
end;