Skip to main content

Storage Subroutine

Let's focus on the storage subroutine of myBASdatent. The user has responded to the prompts, reviewed the data, and now needs the option of storing the data. As you'll see from the next few slides, you'll store the data in the global ^PersonD.

For each person, we must generate a new unique id number, to be used as the subscript of ^PersonD. The very first time myBASdatent runs, ^PersonD doesn't exist, so we need to make sure that the first id is 1, using Increment(). This will make ^PersonD into an array similar in conceptual structure to “normal” arrays (although it's still really an ordered tree): a list of people. Each person's record is a three-piece string of their data. Here is the first section of the store subroutine:

public sub store()
' store the data
    dim yn, id, rec, ln, fn

    input "Store? (y/n): ", yn  ' see if user wants to store
    ' only go on if user says yes
    if ( yn <> "y" ) then
        println "...not stored."
        exit sub
    end if
    id = increment(^PersonD) ' generate a new id
    rec = name & "^" & phone & "^" & intdob ' concatenate data into a record
    ^PersonD( id ) = rec ' store the record

    ' ...remainder of store subroutine continued on next page...
end sub
FeedbackOpens in a new tab