[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
area to the current work area
 ORDSETRELATION()
 Relate a specified work area to the current work area
------------------------------------------------------------------------------
 Syntax

     ORDSETRELATION(<nArea> | <cAlias>,<bKey>, [<cKey>])
         --> NIL

 Arguments

     <nArea> is the number of the child work area.

     <cAlias> is the alias of the child work area.

     <bKey> is a code block that expresses the relational expression in
     executable form.

     <cKey> is an optional string value that expresses the relational
     expression in textual form.  If <cKey> is supplied, it must be
     equivalent to <bKey>.  If <cKey> is omitted, ORDSETRELATION() returns a
     null string ("") for the relation.

 Returns

     ORDSETRELATION() always returns NIL.

 Description

     ORDSETRELATION() relates the work area specified by <nArea> or <cAlias>
     (the child work area) to the current work area (the parent work area).
     Any existing relations remain active.

     Relating work areas synchronizes the child work area with the parent
     work area.  This is achieved by automatically repositioning the child
     work area whenever the parent work area moves to a new record.  If there
     is a controlling order in the child work area, moving the parent work
     area causes an automatic seek operation in the child work area; the seek
     key is based on the expression specified by <bKey> and/or <cKey>.  If
     the child work area has no controlling order, moving the parent work
     area causes an automatic "go to" in the child work area; the record
     number for the "go to" is based on the expression specified by <bKey>
     and/or <cKey>.

     ORDSETRELATION() is identical to DBSETRELATION() (and the SET RELATION
     command), but it also sets up a scope on the order in the child work
     area.  This means that whenever you select the child work area, only the
     records related to the current parent record will be visible.  This
     allows straightforward handling of one-to-many relationships.  Refer to
     DBSETRELATION() for more information.

 Examples

     .  This example displays each invoice with its related line
        items:

        USE LineTtem NEW VIA "DBFCDX"
        SET ORDER TO TAG InvNo

        USE Invoice NEW VIA "DBFCDX"

        // Set a selective relation from Invoice into
        // LineItem
        ORDSETRELATION("LineItem", {|| Invoice->InvNo}, ;
           "Invoice->InvNo")

        GO TOP
        DO WHILE !EOF()
           ? InvNo, InvDate            // Display invoice fields

           SELECT LineItem
           // Only records for current invoice # are visible
           LIST "   ", PartNo, Qty, Price
           SELECT Invoice               // On to next invoice
           SKIP
        ENDDO

 Files   Library is CLIPPER.LIB.


This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson