LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (December 2005, week 3)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
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
Comments: To: sas-l@uga.edu

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/


Back to: Top of message | Previous page | Main SAS-L page