Top Method Summary
Options Name Purpose
AddTableBuffer (character, character) Adds a table buffer to ttFrameBuffer
CollectTableBuffers (INode, INode[]) Collects the table buffers of the parse unit into ttFrameBuffer
CollectWidgetDefinitions (INode[], INode) Adds the widget definitions (DEFINE VARIABLE / BUTTON / RECTANGLE / BROWSE / IMAGE) of the given scope to the ttWidget temp-table
Consultingwerk.Studio.ProparseApi.INode FindFormNode (character, INode) Returns the first FORM statement for the given frame name
Consultingwerk.Studio.ProparseApi.INode FindFrameScope (character, INode, INode[]) Returns the routine-level node the given frame is defined in
CHARACTER GetBufferName (character) Returns the buffer name of a frame widget field name
GetFormNames (INode, CharacterList) Recursively parses the given file for FORM statements with named Frame references
GetFormWidgets (character, INode) Parses the given file for the given frame name in FORM statements
Consultingwerk.Framework.Collections.CharacterList GetFrameNames (character) Parses the given file and returns a list of FRAME names
GetFrameWidgets (character, character, table) Parses the given file for the given frame name and returns a temp-table containing all the widgets found in that frame
LOGICAL GetRecordPhraseJoin (INode, ITableBuffer, character, character) Returns the join criteria of a record phrase
LOGICAL HasSideLabel (character) Returns whether a widget of the given type is displayed with a side label
LOGICAL ParseSizePhrase (INode, decimal, decimal) Returns the width and height of a SIZE phrase (SIZE <width> BY <height>)
ProcessAppBuilderComments (INode) Processes Comments at the top-level for AppBuilder Comments
ProcessFrameWidgets (INode) Parses a DEFINE FRAME or FORM statement node
CHARACTER QualifiedTableName (ITable) Returns the database qualified name of a table
CHARACTER ResolveOfJoin (ITableBuffer, ITableBuffer) Resolves the OF relation of a record phrase into join criteria
ResolveSourceJoins (INode) Assigns the join criteria of the buffers referenced by the field widgets of the frame


Method Detail
Top

AddTableBuffer (character, character)

Purpose: Adds a table buffer to ttFrameBuffer
Notes: SCL-4832: The first table found for a buffer name is kept

Parameters:
pcBufferName CHARACTER
The name of the buffer
pcTableName CHARACTER
The name of the table of the buffer
Top

CollectTableBuffers (INode, INode[])

Purpose: Collects the table buffers of the parse unit into ttFrameBuffer
Notes: SCL-4832: Fallback for the field widgets without a symbol (the
pure-ABL Proparse engine does not resolve the field references
of a DEFINE FRAME statement). Collects the buffers of all record
phrases and of the DEFINE BUFFER statements, so that a buffer
only referenced in the frame is resolved as well

Parameters:
poRootNode Consultingwerk.Studio.ProparseApi.INode
The Program_root node of the parse unit
poDefineNodes Consultingwerk.Studio.ProparseApi.INode
The DEFINE nodes of the parse unit
Top

CollectWidgetDefinitions (INode[], INode)

Purpose: Adds the widget definitions (DEFINE VARIABLE / BUTTON / RECTANGLE /
BROWSE / IMAGE) of the given scope to the ttWidget temp-table
Notes: SCL-5790: Only the DEFINE statements whose routine-level parent
is the given node are processed. A widget name that is already
present in ttWidget is skipped, so that the definitions of the
routine the frame is defined in (collected first) take
precedence over the definitions of the main block

Parameters:
poDefineNodes Consultingwerk.Studio.ProparseApi.INode
The DEFINE nodes of the parse unit
poScopeNode Consultingwerk.Studio.ProparseApi.INode
The routine-level node (Program_root, PROCEDURE, FUNCTION, ...) to collect the definitions of
Top

Consultingwerk.Studio.ProparseApi.INode FindFormNode (character, INode)

Purpose: Returns the first FORM statement for the given frame name
Notes: SCL-5790: Recursive counterpart of GetFormWidgets that only
locates the FORM ... WITH FRAME statement instead of
processing its widgets

Parameters:
pcFrameName CHARACTER
The name of the frame
poNode Consultingwerk.Studio.ProparseApi.INode
The INode to search in
Returns Consultingwerk.Studio.ProparseApi.INode
The N_FORMAT node of the FORM statement or the unknown value when the frame has no FORM statement
Top

Consultingwerk.Studio.ProparseApi.INode FindFrameScope (character, INode, INode[])

Purpose: Returns the routine-level node the given frame is defined in
Notes: SCL-5790: Locates the DEFINE FRAME statement of the frame or -
when the frame is only defined through FORM statements - the
first FORM ... WITH FRAME statement. Returns the Program_root
node when the frame is defined in the main block or is not
found at all

Parameters:
pcFrameName CHARACTER
The name of the frame
poRootNode Consultingwerk.Studio.ProparseApi.INode
The Program_root node of the parse unit
poDefineNodes Consultingwerk.Studio.ProparseApi.INode
The DEFINE nodes of the parse unit
Returns Consultingwerk.Studio.ProparseApi.INode
The INode of the routine-level block (Program_root, PROCEDURE, FUNCTION, ...) the frame is defined in
Top

CHARACTER GetBufferName (character)

Purpose: Returns the buffer name of a frame widget field name
Notes: SCL-4832: The entry before the field name, so that a database
qualified name (sports2000.Order.OrderNum) returns the buffer as
well

Parameters:
pcFieldName CHARACTER
The field name of the frame widget
Returns CHARACTER
The name of the buffer or an empty string for an unqualified name
Top

GetFormNames (INode, CharacterList)

Purpose: Recursively parses the given file for FORM statements with named
Frame references
Notes: Processes nested Block_Nodes and BLOCK_LABEL nodes

Parameters:
poNode Consultingwerk.Studio.ProparseApi.INode
The INode to process
poList Consultingwerk.Framework.Collections.CharacterList
The list to add the FORM names to
Top

GetFormWidgets (character, INode)

Purpose: Parses the given file for the given frame name in FORM statements
Notes:

Parameters:
pcFrameName CHARACTER
The name of the frame to return the widgets for
poNode Consultingwerk.Studio.ProparseApi.INode
The INode to parse
Top

Consultingwerk.Framework.Collections.CharacterList GetFrameNames (character)

Purpose: Parses the given file and returns a list of FRAME names
Notes:

Parameters:
pcFileName CHARACTER
The name of the file to parse
Returns Consultingwerk.Framework.Collections.CharacterList
The CharacterList of Frame names
Top

GetFrameWidgets (character, character, table)

Purpose: Parses the given file for the given frame name and returns a temp-table
containing all the widgets found in that frame
Notes:

Parameters:
pcFileName CHARACTER
The name of the file to parse
pcFrameName CHARACTER
The name of the frame to return the widgets for
ttFrameWidget TEMP-TABLE ttFrameWidget
OUTPUT TABLE The temp-table with the frame widget information
Top

LOGICAL GetRecordPhraseJoin (INode, ITableBuffer, character, character)

Purpose: Returns the join criteria of a record phrase
Notes: SCL-4832: An OF option is resolved into the equality of the
shared index fields of the two tables. A WHERE option is
returned as written in the source, but only when it references
at least one other buffer and no variables (a WHERE option
referencing variables is a filter of the legacy program, not a
join that can be used in a Business Entity query)

Parameters:
poRecordNode Consultingwerk.Studio.ProparseApi.INode
The RECORD_NAME node of the record phrase
poTableBuffer Consultingwerk.Studio.ProparseApi.ITableBuffer
The ITableBuffer the record phrase fetches
pcJoin CHARACTER
OUTPUT The join criteria (without the WHERE keyword)
pcJoinBuffers CHARACTER
OUTPUT The comma delimited list of the other buffers referenced by the join criteria
Returns LOGICAL
Logical value indicating if the record phrase provides join criteria
Top

LOGICAL HasSideLabel (character)

Purpose: Returns whether a widget of the given type is displayed with a
side label
Notes: SCL-6235: rectangles, images, buttons, browses and literal texts
have no side label - the label of a button is its caption

Parameters:
pcWidgetType CHARACTER
The widget type of the ttFrameWidget record
Returns LOGICAL
Logical value indicating whether the widget has a side label
Top

LOGICAL ParseSizePhrase (INode, decimal, decimal)

Purpose: Returns the width and height of a SIZE phrase (SIZE <width> BY <height>)
Notes: SCL-5790: A SIZE option without operands - e.g. produced by an
empty include file argument - is reported as not parsed instead
of raising an invalid handle error

Parameters:
poSizeNode Consultingwerk.Studio.ProparseApi.INode
The SIZE node or the unknown value
pdeWidth DECIMAL
OUTPUT The width of the SIZE phrase
pdeHeight DECIMAL
OUTPUT The height of the SIZE phrase
Returns LOGICAL
Logical value indicating if the SIZE phrase provided a width and height
Top

ProcessAppBuilderComments (INode)

Purpose: Processes Comments at the top-level for AppBuilder Comments
Notes: SETTINGS FOR BUTTON ..., SETTINGS FOR FILL-IN ...

Parameters:
poNode Consultingwerk.Studio.ProparseApi.INode
The Root Node to process
Top

ProcessFrameWidgets (INode)

Purpose: Parses a DEFINE FRAME or FORM statement node
Notes:

Parameters:
poNode Consultingwerk.Studio.ProparseApi.INode
The Node to process
Top

CHARACTER QualifiedTableName (ITable)

Purpose: Returns the database qualified name of a table
Notes: SCL-4832

Parameters:
poTable Consultingwerk.Studio.ProparseApi.ITable
The ITable to return the name of
Returns CHARACTER
The table name, qualified with the database name when known
Top

CHARACTER ResolveOfJoin (ITableBuffer, ITableBuffer)

Purpose: Resolves the OF relation of a record phrase into join criteria
Notes: SCL-4832: Requires the schema of both tables in the session.
Returns an empty string when the tables are not available (e.g.
temp-tables of the legacy program) or share no index fields

Parameters:
poChildBuffer Consultingwerk.Studio.ProparseApi.ITableBuffer
The ITableBuffer fetched by the record phrase
poParentBuffer Consultingwerk.Studio.ProparseApi.ITableBuffer
The ITableBuffer referenced by the OF option
Returns CHARACTER
The join criteria (without the WHERE keyword) or an empty string
Top

ResolveSourceJoins (INode)

Purpose: Assigns the join criteria of the buffers referenced by the field
widgets of the frame
Notes: SCL-4832: The join criteria of a buffer is taken from the first
record phrase of the parse unit that fetches the buffer with an
OF or a WHERE option referencing another buffer (FIND b_Salesrep
OF Customer, FOR EACH Order WHERE Order.CustNum =
Customer.CustNum). Record phrases without such an option (e.g.
FIND FIRST Order) do not provide a join

Parameters:
poRootNode Consultingwerk.Studio.ProparseApi.INode
The Program_root node of the parse unit


Temp-Table Detail

Temp-Table ttFrameWidget

Defined in:


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       09.11.2026 08:15:08