| # dadllcommon DLL Usage description Library: dadllcommon This library contains common functionality that does not belong to any other, more specific library. Unless specified otherwise the following formats should be used for passing parameters/can be expected as return value:
     table     : ppmmmnnn tablefield: ppmmmnnn.ccccccccc domain    :
    ppcccccccccccc
DLL Prototypes
     function extern convert.char.to.new.line(ref string text.line())
     pre  : true post : in text.line all ASCII characters 255 are replaced with new
    line
           characters.
     function extern convert.new.line.to.char(ref string text.line())
     pre   : true post  : in text.line all new line characters are replaced with
    ASCII
           character 255.
     function extern display.mess(const string msg())
     pre   : true post  : msg is displayed in the user_message part of the 'progress
            window'. The user_messagepart of the window can contain 72
            characters at most. desc  : see dllusage of function
    display.xch.progress()
     function extern display.xch.progress(
                    domain daxch.txch xch.type,
                    const domain daxch.cxch xch.scheme,
                    const domain daxch.cbat batch,
                    domain daxch.batl batchline,
                    const domain daxch.ttbl triton.table,
                    const domain daxch.casf ASCII.file,
                    long run.num,
                    long try.num,
                    const string filename(),
                    long no.read,
                    long no.processed,
                    long no.error.rejected,
                    long no.cond.rejected,
                    long no.skipped)
     pre   : true post  : Information passed as parameters is displayed in a window
    desc  : Window should look like:

    +------------------------FFFFFFxch_typeFFFFFF-------------------+
    | Exchange Scheme: FFFF  Records read                           |
    | Batch          : FFFF  Records processed             : FFFF   |
    |                                                               |
    | Batchline      : FF    Records rejected due to errors: FFFF   |
    |                                                               |
    | Table   : FFFF  Records rejected due to conds.       : FFFF   |
    |                                                               |
    | ASCII File     : FFFF  Records skipped without action: FFFF   |
    |                                                               |
    | Run-/trynumber : FF/FF                                        |
    |                                                               |
    | File           : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF          |
    |                                                               |
    |           FFFFFFFFFFFFFFuser_messageFFFFFFFFFFFFFF            |
    +---------------------------------------------------------------+

     function extern long domain.exists(const string domain.name())
     pre   : true return: whether <domain.name> is an existing domain
     function extern long field.exists(
                    const domain daxch.ttbl table.name,
                    const domain daxch.tfld field.name,
                    [ ref string domain.name() ],
                    [ ref long field.type ],
                    [ ref long field.flag ],
                    [ ref long field.depth ])
     pre   : format of field.name is without table return: whether <field.name> is
    an existing field of table <table.name>
            (if it is a combined field false will be returned) post  : if true is
    returned and one or more of the optional parameters
            are specified they will be given their proper value
     function extern long generate.unique.key()
     pre   : true return: a unique value is returned by this function which will
    never be
            returned again.
     function extern string get.index.field.name(
                    const string tble(),
                    long index.no,
                    long part.no )
     pre   : index.no > 0 return: the name of the <part.no>th field in index
    <index.no> of table
            <tble>. IF either <tble> does not exist or <tble> does not have
            an index <index.no> or index <index.no> does not have at least
            <part.no> fields THEN the empty string is returned.
            Note that the data dictionary is read using the rdi functions,
            thus according to the current package combination of the user.
     function extern string get.separator(
                    const domain daxch.cxch xch.scheme )
     pre   : true return: xch.scheme exists ==> sepa.to.sepa.char
            (daxch001.ctrl,daxch001.sepa) otherwise ==> "" state : current record of
    daxch001 will not be changed
     function extern long index.exists(
                    const domain daxch.ttbl table.name,
                    long index.no,
                    [ ref long no.parts ],
                    [ ref long duplicate ] )
     pre   : true return: whether <table.name> has an index with number <index.no>.
    post  : if true is returned the no.parts contains (if provided) the
            number of fields belonging to the index and duplicate,
            if provided, tells whether duplicates are allowed.
     function extern long is.index.field(
                    const string tble(),
                    long index.no,
                    string field.name(18) fixed )
     pre   : index.no > 0 return: whether field <field.name> belongs to index
    <index.no> of
            table <tble>
     function extern long is.numeric.constant(const string str())
     return: true if and only if str contains a long or float constant
            (possibly in scientific notation)
     function extern long is.text.buffer.field(const string field.name())
     pre   : true return: whether <field.name> is "tttxt010.text" or "tttxt015.text"
    desc  : this function is used to determine whether the field contains
            new line characters (table field tttxt010.text usually does).
     function extern long is.text.field(const string field.name())
     pre   : true return: whether field <field.name> is a tttxt???.ctxt field
     function extern justify.and.convert.string(
                    ref string string.value() mb,
                    const string string.domain())
     pre   : string.domain is an existing string domain post  : string.value is:
            - justified to left, right or center
            - converted to upper or lower case
            - truncated to the domain length according to the definition of
              the domain string.domain
     function extern long language.exists(string lang(1))
     pre   : true return: whether <lang> is an existing language
     function extern string make.string.const(const string str())
     pre    : true return : str converted to a string constant as can be used in
    literal
             code such as dynamic sql or generated scripts).
             For example: - double quotes (") have been placed around str
                          - double quotes within str have been replaced
                            with 2 double quotes ("")
                          - leading or trailing spaces are NOT removed
                            from str
     function extern remove.xch.progress()
     pre   : display.xch.progress() or display.mess() must have been called
           before. post  : window used by display.xch.progress and display.mess has
    been
           removed.
     function extern string replace(
                    domain daxch.str stri,
                    const string pattern(),
                    const string repl() )
     pre   : pattern <> "" return: stri with all occurences of pattern replaced with
    repl return
            string should not exceed length of domain daxch.str
     function extern sepa.string.to.sepa(
                    const string sepa.string(),
                    ref domain daxch.yesno ctrl,
                    ref domain daxch.sepa sepa )
     pre   : valid.separator.string(sepa.string) post  : if isspace(sepa.string):
    ctrl = no  and sepa = ""
            if len(sepa.string) = 1: ctrl = no and sepa = sepa.string
            if len(sepa.string) = 2: ctrl = yes and sepa = sepa.string(2)
     function extern string sepa.to.sepa.char(
                   domain daxch.yesno ctrl,
                   domain daxch.sepa sepa )
     pre   : valid.separator(ctrl, sepa) return: if ctrl = no: sepa
            if ctrl = yes: the ASCII character for <Ctrl> sepa
     function extern long size.of(const string domain.name())
     pre   : domain.name is a domain of type string return: the length of the domain
     function extern long table.exists(const domain daxch.ttbl table.name)
     pre   : true return: whether <table.name> is an existing table.
     function extern long valid.separator(
                    domain daxch.yesno ctrl,
                    domain daxch.sepa sepa )
     pre:    true return: true if and only if ctrl and sepa make up a valid
    separator.
            For example:- ctrl = no  and sepa not in {, 0--9, A--Z}
                        - ctrl = yes and sepa     in {A--Z, [, \, ], ^}
     function extern long valid.separator.string(const string sepa.string())
     pre   : true return: true if and only if sepa.string is a valid separator.
            For example:- isspace(sepa.string)
                        - len(sepa.string) = 1 and valid.separator
                          (no, sepa.string)
                        - len(sepa.string) = 2 and sepa.string(1;1)
                          = "^" and valid.separator (yes, sepa.string(2)
Related topics Libraries |