Join The Works program to have access to the most current content, and to be able to ask questions and get answers from Revelation staff and the Revelation community

At 16 OCT 2008 11:02:23PM Martin Drenovac wrote:

I saw Mike demo an auto commuter module generator last Wed in Sydney, and he had code along the lines of

 If assigned(script) Else script='
 If assigned(format) Else format='

Whilst not the world's greatest OI developer, we've moved to this, which is quicker and IMHO neater:

check_assignments(script, format)

where the code for check_assignments is:

SUBROUTINE CHECK_ASSIGNMENTS(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13)

/* */

If Assigned(P1) else P1="

If Assigned(P2) else P2="

If Assigned(P3) else P3="

If Assigned(P4) else P4="

If Assigned(P5) else P5="

If Assigned(P6) else P6="

If Assigned(P7) else P7="

If Assigned(P8) else P8="

If Assigned(P9) else P9="

If Assigned(P10) else P10="

If Assigned(P11) else P11="

If Assigned(P12) else P12="

If Assigned(P13) else P13="

RETURN

Makes it so simple to code, cut/paste your module signature and stick the call to check_assignments in front:

Cheers


At 17 OCT 2008 08:16AM Bob Carten wrote:

Hi Martin

Nice work.

It illustrates out the power of a consistent interface.

When all commuter modules have the same calling convention you can make helper functions, implement a form of inheritance and have dynamic substition of functions, e.g.

function specific_commuter(ctrlEntId, method, Param1, Param2, …)

retval='

begin case

 case method=local_method"
      GoSub local_branch
 case method1,'_'=SPECIAL'
      funcname=method:'_HELPER'
      retval=function(@funcname(ctrlEntId, method, Param1,Param2, ...)
 case otherwise$
      retval=base_commuter((ctrlEntId, method, Param1,Param2, ...)

end case

if get_Status(err) then

 ....

end

return retval

When passing parameters I have started to use two approaches:

When it is acceptable to change the parameter (pass by reference)

I use

 If Assigned(Param1) else Param1="

When it is not acceptable to change the parameter (pass by value)

I use

 p1=if assigned(Param1) then Param1 else ''

Inside the program I treat Param1 as off limits and only P1.

If I need return through a parameter I deliberately set Param1, e.g.

transfer P1 to Param1

- Bob


At 17 OCT 2008 08:38AM Martin Drenovac wrote:

Cheers Bob - I'm just getting to understand your Promoted Events and working on just this approach of yours in my code.

Thanks for your continuing sample code…


At 17 OCT 2008 09:16AM dbakke@srpcs.com's Don Bakke wrote:

We tend to put the same type of functionality into an insert so the top portion of our code contains this:

$insert [/color]EVENT_SETUP[/color][/color][/size]         
               

Then in addition to any common declares, our insert contains this:

Compile insert [/color]EVENT_SETUP 
[/color] 
[/color]// Make sure any event parameters which have not been assigned are nulled. 
[/color]If [/color]Assigned(CtrlEntId)          [/color]else [/color]CtrlEntId=[/color]"" 
[/color]If [/color]Assigned(Event)              [/color]else [/color]Event=[/color]"" 
[/color]If [/color]Assigned(Param1)             [/color]else [/color]Param1=[/color]"" 
[/color]If [/color]Assigned(Param2)             [/color]else [/color]Param2=[/color]"" 
[/color]If [/color]Assigned(Param3)             [/color]else [/color]Param3=[/color]"" 
[/color]If [/color]Assigned(Param4)             [/color]else [/color]Param4=[/color]"" 
[/color]If [/color]Assigned(Param5)             [/color]else [/color]Param5=[/color]"" 
[/color]If [/color]Assigned(Param6)             [/color]else [/color]Param6=[/color]"" 
[/color]If [/color]Assigned(Param7)             [/color]else [/color]Param7=[/color]"" 
[/color]If [/color]Assigned(Param8)             [/color]else [/color]Param8=[/color]"" 
[/color]If [/color]Assigned(Param9)             [/color]else [/color]Param9=[/color]"" 
[/color]If [/color]Assigned(Param10)            else [/color]Param10=[/color]"" 
[/color]If [/color]Assigned(Param11)            [/color]else [/color]Param11=[/color]"" 
[/color]If [/color]Assigned(Param12)            [/color]else [/color]Param12=[/color]"" 
[/color]If [/color]Assigned(Param13)            [/color]else [/color]Param13=[/color]"" 
[/color]If [/color]Assigned(Param14)            [/color]else [/color]Param14=[/color]"" 
[/color]If [/color]Assigned(Param15)            [/color]else [/color]Param15=[/color]""[/color][/color][/size]         
               

dbakke@srpcs.com

SRP Computer Solutions, Inc.

View this thread on the Works forum...

  • third_party_content/community/commentary/forums_works/c5d43e3a7d3e2f70852574e50010b2c9.txt
  • Last modified: 2024/01/04 20:57
  • by 127.0.0.1