Date: Tue, 20 Dec 2005 12:18:53 -0500
Reply-To: "Richard A. DeVenezia" <rdevenezia@WILDBLUE.NET>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Richard A. DeVenezia" <rdevenezia@WILDBLUE.NET>
Subject: Re: SAS/AF: Validate Text Entry Control after user leaves field
Peter Mroz wrote:
> Looks like the _tabOut method is what I need. However I'm having
> trouble implementing it. I went into the properties editor for my
> field and selected Methods->Inherited. I scrolled down to _tabOut,
> right clicked on it and selected Override. Now I have two entries
> under Methods:
>
> - Methods
> - Inherited
> - Overridden
>
> The _tabOut method has moved from Inherited to Overridden. Is there
> an easy way to call my original object label code here so that I don't
> have to duplicate code? I changed the row so it looks like this
> (transposed for readability):
You should never have to duplicate code.
_tabOut may be a handling hook with no default behavior, or it may have some
built in behavior -- in which case you will want to invoke the methods
_super, before or after your processing.
Either call super() or _self_._super() should work. IIRC, I prefer _super
in subclass method implementations and call super in per instance override
implementations.
You can run the objects labelled section by invoking _objectLabel():
_self_._objectLabel()
Note: both _tabOut and _objectLabel are inherited from the Widget Class, the
class from which all visually rendered objects are descended. Widget itself
is descended from the root of all classes, Object.
> Method Name: _tabOut
> Source Entry: Pdprogs.Pd_compare.Pd_compare_front_end.SCL
> Source Label: clintrial_pd_file
>
> When I try to run this (after saving and compiling everything I get
> the following error message in my Log:
>
> ERROR: PDPROGS.PD_COMPARE.PD_COMPARE_FRONT_END.SCL has not been
> compiled.
> Unable to perform requested function
>
> Any ideas how to fix this?
Despite what you think, the scl entry containing your override has not been
saved to disk. Maybe you compiled and forget to end the editor (which
saves, or prompts to save), or you compiled and the editor is still open --
in which case just do a SAVE to write the compiled entry into its catalog.
Try this for an implementation, and toodle around in the frame
------------------
tabOut:
public method;
put _self_.name= _self_.defaultAttribute= _self_.text=;
endmethod;
------------------
Note: If the implementation is generic enough, the same implementation can
be used for multiple objects. If the processing is object specific (e.g.
field JOB is processed in override differently than field LOCATION), I would
recommend suffixing each override source label with the object name, as in:
tabOut_Job:
public method;endmethod;
tabOut_Location:
public method;endmethod;
> Another question: now that I've overridden a method is there a way to
> revert back? I can't seem to delete this overridden method.
Right click on the methods row in the right hand pane and select Inherit.
The meta data of the method on the instance of the component in the frame
will revert to factory defaults. The SCL override source will remain in
place asis.
> Is there clear documentation on this somewhere? I'd love to read a
> manual instead of bugging the experts but I haven't found a good one.
> Any recommendations for manuals are welcome!
Try to find SAS publications 55376, 55888 and 56011
--
Richard A. DeVenezia
http://www.devenezia.com/