I absolutely agree with Chip! For quite some time I have made sure all code called by objects is 1 line only! Now, with ORDA and the Form. object, it gets even easier to do this! Also in many cases there is no neeed for parameter passing: Using
OBJECT Get name(Object current <https://doc.4d.com/4Dv17R5/4D/17-R5/Form-Objects-Access.302-4127247.en.html>) and Current form name makes life so much simpler... Also: No form object should have an „on load“ event!!! The call order of the On Load event makes it quite difficult, especially if some things rely on others. Run it all in the Forms On Load event. BTW: Using the Form.whatever notation for Checkboxes and Radio Buttons will accept Boolean values. You can assign From.myBoolean to a checkbox… Oh how much easier would life have been with all the V17 Stuff… Cheers Alex > Am 25.04.2019 um 16:22 schrieb Chip Scheide via 4D_Tech > <[email protected]>: > > Chris B made the below statement about project methods. > > from a 'classic' 4D pogromming view, IMHO - which may mean nothing :), > this is not the approach I use or advocate. > > I do use object methods - but - only to call project methods which do > all of the actual work. > ex: accept button script > // accept button script <[table].form.object> > tablename_entry_accept > // end accept button script <[table].form.object> > > the project method tablename_entry_accept will do data entry > validation, messaging about entry failures, related record existence, > calculations that need to be done etc. and usually an ACCEPT > > > Why? > Deduplication of code. Code should NOT be repeated. In the above > example, the code to accept the form maybe reusable or be made more > generic (with parameters). If the code for this accept button was > placed in the object script - I might end up re-creating/repeating the > code elsewhere (even to the point of copy/paste). > > At some point in the future I might need to change the logic/code. Then > I would need to find all instances of the code through out the system, > to make the change. If the system is NOT one I wrote, or it has been a > long time (3 days?) since I worked on that section I would/might not > know where all instances of the duplicated code are. > > If the code is in a project method, I can make the changes needed in > one place, done. > Also - code in scripts is harder to find/maintain. > > Some people in the past have advocated for removal of all object > scripts, placing the code instead into the form method (or better the > project method called by the form method). I do not personally do this, > as I looked at it once and, to me, the resulting code was too long and > not clear -- of course maybe I was not implementing the idea correctly > or completely :) > > just my 2 cents > > Chip > > > On Wed, 24 Apr 2019 22:37:51 -0600, Chris Belanger via 4D_Tech wrote: >> >> Another use for it that I have not explored yet is to have a chunk of >> code that gets run under several different circumstances, but which I >> don’t want to make a dedicated Project Method for it. >> I prefer to reduce the number of Project Methods while, of course, >> creating ones that make logical sense (as they can be called in >> several places in my code). But you understand that as a programmer. > --------------- > Gas is for washing parts > Alcohol is for drinkin' > Nitromethane is for racing > ********************************************************************** > 4D Internet Users Group (4D iNUG) > Archive: http://lists.4d.com/archives.html > Options: https://lists.4d.com/mailman/options/4d_tech > Unsub: mailto:[email protected] > ********************************************************************** ********************************************************************** 4D Internet Users Group (4D iNUG) Archive: http://lists.4d.com/archives.html Options: https://lists.4d.com/mailman/options/4d_tech Unsub: mailto:[email protected] **********************************************************************

