Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • When the user clicks on a line in instance list, the script is invoked to display the customer details.
  • This script may also be invoked from another script to display the details of a specific customer.

...

Since

...

this

...

script

...

can

...

be

...

used

...

in

...

two

...

different

...

ways,

...

it

...

needs

...

to

...

be

...

aware

...

of

...

what

...

it

...

is

...

being

...

asked

...

to

...

do.

...

The

...

easiest

...

way

...

to

...

do

...

this

...

is

...

to

...

use

...

the

...

"ObjGlobal"

...

object

...

to

...

pass

...

optional

...

parameters

...

to

...

it.

...

In

...

an

...

INVOKE

...

script

...

you

...

can

...

define

...

and

...

check

...

for

...

the

...

existence

...

of

...

optional

...

parameters

...

like

...

this:

...

            /* Conceptually this script's behavior is controlled by 2 parameters which may or may not be passed to it */

...

    var  Parameter1 = "parameter default value";

...

    var  Parameter2 = "parameter default value";

...

 

...

   /* If either parameter has been passed in the objGlobal object then override the default behavior.    */

...

    /* Note the destruction of the optional parameters. This is so they do not hang around to interfere   */

...

    /* with later executions of this script. They are created, passed into the script and then destroyed. */ 

...

   

    if (objGlobal.optParameter1 != null)

...

{ Parameter1 = objGlobal.optParameter1; objGlobal.optParameter1 = null; 

...

}

    if (objGlobal.optParameter2 != null)

...

{ Parameter2 = objGlobal.optParameter2; objGlobal.optParameter2 = null; 

...

}

    /* Now use the values in Parameter1 and Parameter 2 to control how this script behaves */

...



    < etc >   

...


    < etc >   

...

As

...

a

...

specific

...

example,

...

imagine

...

an

...

INVOKE

...

script

...

that

...

by

...

default

...

displayed

...

the

...

current

...

customer

...

from

...

the

...

instance

...

list.

...

However,

...

some

...

other

...

scripts

...

reuse

...

it

...

to

...

display

...

a

...

specific

...

customer,

...

which

...

may

...

or

...

may

...

not

...

be

...

in

...

the

...

instance

...

list.

...

You

...

could

...

handle

...

this

...

situation

...

like

...

this:

...

 

            /* By default this script displays the current customer from the instance list, so get the customer number */

...

    var RequestedCustomer = objListManager.AKey1

...

[0

...

];

...



    /* If the caller has supplied a specific customer number use it instead (making sure to destroy the optional parameter) */

...

    if (objGlobal.optRequestedCustomer != null)

...

    

...

{

...

       RequestedCustomer              = objGlobal.optRequestedCustomer;

...

       objGlobal.optRequestedCustomer = null;

...

    

...

}

    /* Now display the details of the customer identified in RequestedCustomer */

...



    < etc >

...

  
    < etc >   

...

In

...

a

...

script

...

that

...

wants

...

to

...

display

...

a

...

specific

...

customer

...

number

...

you

...

could

...

do

...

something

...

like

...

this:

...

     /* Save the changes and (re)display this customer */

...



...

   

...

 case KeyEnter:

...


    {
       var CustomerNumber = GETVALUE("CustNo");         /* Get the updated customer number from the current screen */

...


...

       SENDKEY(KeyEnter);                               /* Update the current screen details                       */

...


       objGlobal.optRequestedCustomer = CustomerNumber; /* Set up the specific customer number you want (re)displayed */

...

 
      NAVIGATE_TO_DESTINATION("uShowCustomerDetails"); /* Redisplay the customer by executing the destination script again */

...

    

...

}

...

    break;

...