Do not let any software impress you!

Only let it convince your intellect.
Slider img 1
Do not look for a business paradise!

It is a waste of time.
Slider img 2
Only yourself can push you uphill.

There is no easy road to prizes.
Slider img 3
Productivity is the name of the game.

And you have to conquer it.
Slider img 4
As long as you understand it,

you will start to build your know-how.
Slider img 5
We can help with that.

We have the tools and the method.
Slider img 6

In Memory Form Tables



Every form that can load and save data from the application server uses in-memory tables. Those tables keep for every opened form an image of the data as they manipulated in the form. The following code example illustrates the use of those tables.

At form opening, the usage is:

proc Form_Start()

     f = TopForm()
     p1 = PByName(f,“MAIN_REC“)     {...the “master“ frame of the form}
     t1 = TByName(p1,“MAIN_REC“) {....the “maste“ in-memory table of the form}
     p2 = PByName(f,“DETAIL_REC“) {...the “detail“ frame of the form}
     t2 = TByName(p2,“DETAIL_REC“) { ....the “detal“ in-memory table of the form}

    uval = TGetFld(t1,“MAIN_REC“)        {....a field‘‘s value of the form}
    count2 = TRecordCount(t2) {...the count of “detail“ records that are loaded on the form}

end

Before the form is closed, the usage is:

fun Form_BeforeClose()

     { save some detail fields in an AutoScript array}

     count2 = TRrecordCount(t2)     {....get the new record count}
     call TFirst(t2)
     for i = 1 to count2

         name[i] = TGetFld(t2,“NAME“)
         comm[i] = TGetFld(t2,“COMM“)

         call TNext(t2)
     next
end

After we have saved the form contents the usage is:

proc Form_End ( uvalue )

       {the t1, t2 has no meaning here use only values saved in variables!!!!}
       {there are no in-memory tables in this section!!!!}
       for i = 1 to count2

         call some_procedure ( name[i], comm[i],....)

      next
end