If you add
SCL code to a frame, you must compile the frame before you can run
it.
Compiling is the process of translating
your SCL code into a language that can be executed.
To compile a frame
in the build environment, make the frame active, and then select
BuildCompile.
If the frame and SCL
code compile successfully, you should see a “Code generated”
message in the Log window (and no warnings or errors). For example:
NOTE: Compiling MYFRAME.FRAME (SASUSER.EXAMPLE.MYFRAME.SCL).
NOTE: Code generated for MYFRAME.FRAME. Code size=4095.
To
view the Log window, select
ViewLog.
But as you know, typing
code can occasionally lead to a mistake. For example, assume that
while typing in some code, you add an extra 'x' to the SCL
section name columnsListbox. When you attempt to compile the frame,
the Log window shows that the compiler has issued a warning about
a potential error:
NOTE: Compiling MYFRAME.FRAME (SASUSER.EXAMPLE.MYFRAME.SCL).
WARNING: [Line 43] Label columnsListboxx is Defined but not referenced
NOTE: Code generated for MYFRAME.FRAME. Code size=4095.
Although the code compiles
with only a warning (notice the words “Code generated”
in the last line of the message), the frame will not function properly.
Because of the mistake, the code for the columnsListbox will never
be executed because the SCL label (with two x's) does not match
the control name (with one x).
In general, if a frame
compiles with a warning, you might be able to run it, but it could
have run-time errors that make it unusable. You should review and
understand the cause of all warnings. When appropriate, the cause
of warnings should be fixed.
As discussed above,
compiling a frame compiles the frame SCL for that frame. You can also
compile frame SCL that was opened from its frame and maintain the
frame/SCL association.
If you compile frame
SCL independently of its frame, the compiled code is not associated
with the frame, and the frame will not call the proper code when a
user interacts with a control. Only frames with frame SCL code must
be compiled.