How to Coordinate Parent Data Window with Child Browse

Last reviewed: July 9, 1996
Article ID: Q104005
The information in this article applies to:
  • Microsoft FoxPro for Windows, versions 2.5 and 2.5a
  • Microsoft FoxPro for MS-DOS, versions 2.0, 2.5, and 2.5a
  • Microsoft FoxPro for Macintosh, versions 2.5x, 2.6, 2.6a

SUMMARY

This procedure below describes how to coordinate a parent data window with a child Browse window using the power tools. The screen and its controls are designed in such a way that as you move through the parent database, the parent's data is updated and so is the Browse window that displays the related records in the child database. In this example, the CUSTOMER and INVOICES databases are used to establish a one-to-many relationship. Both the CUSTOMER and INVOICES databases are located in the FoxPro TUTORIAL subdirectory.

MORE INFORMATION

  1. Use the View window to set up a one-to-many relationship between the CUSTOMER (parent) database and the INVOICES (child) database. Select the parent database by clicking it.

  2. Create a quick screen.

  3. Save the environment and add the following code into the following code options in the Screen Layout dialog box:

    Setup Code ----------

    DEFINE WINDOW child FROM 17,1 to 24,70 PANEL; FLOAT GROW ACTIVATE WINDOW child SELECT INVOICES BROWSE IN WINDOW child NOWAIT SAVE NOMODIFY LAST SELECT CUSTOMER

    Cleanup Code ------------

    RELEASE WINDOW child

    Activate Code -------------

    SELECT CUSTOMER

  4. If you are using FoxPro for MS-DOS, choose Layout from the Screen menu, then set the screen type to Window. (In FoxPro for Windows, this step is unnecessary because the screen is a window by default.)

  5. Resize the window so that it fits around the fields without leaving a lot of empty space.

  6. Save the screen as TEST.SCX and then close it.

  7. From the File menu, choose Open, and set the file type to Screen.

    NOTE: Before proceeding with this next step, make a backup of the CONTROL3.SCX and CONTROL3.SCT files (if you are using FoxPro for MS-DOS) or the CONTROL1.SCX and CONTROL1.SCT files (if you are using FoxPro for Windows).

  8. In FoxPro for MS-DOS, select CONTROL3.SCX (located in your FoxPro TUTORIAL subdirectory) and then choose Open. In FoxPro for Windows, select CONTROL1.SCX (located in your FoxPro SAMPLE\ORGANIZE\SCREENS subdirectory) and then choose Open.

  9. Double-click one of the push buttons on the screen and select the Valid code snippet check box.

  10. The Valid code snippet is shown below. Modify the code by adding the two designated lines. The code below is from FoxPro for MS-DOS and looks slightly different in FoxPro for Windows.

           SET SKIP TO          && Add this line
    
           DO CASE
              CASE act2 = 1
                 GO TOP
              CASE act2 = 2
                 SKIP -1
                 IF BOF()
                   GO TOP
                 ENDIF
              CASE act2 = 3
                 SKIP 1
                 IF EOF()
                   GO BOTTOM
                 ENDIF
              CASE act2 = 4
                   GO BOTTOM
              CASE act2 = 5
                   APPEND BLANK
              CASE act2 = 6
                   CLEAR READ
           ENDCASE
    
           SET SKIP TO invoices     && This line is optional.
    
           SHOW GETS
           RETURN 0
    
    

  11. Save the screen as MYCONTRL.SCX.

  12. From the File menu, choose Open, and then set the type to Screen.

  13. Select TEST.SCX and then choose Open.

  14. From the Program menu, choose Generate.

  15. Choose Add.

  16. Select MYCONTRL.SCX and then choose OK.

  17. Choose Arrange and arrange the two screens to be toward the top of the window. Try not to overlap the screens.

  18. In FoxPro for MS-DOS, choose Save from the Arrange menu. In FoxPro for Windows, choose OK.

  19. Choose Generate.

  20. In the Command window, issue the following command:

    DO test.spr

Notice the three screens come up. Choosing Next from the control screen displays the updated parent screen. The related records of the child in the browse are also updated.

NOTE: You can also use FOXAPP to relate two tables and accomplish the same goal.


Additional reference words: FoxDos FoxWin 2.00 2.50 2.50a foxmac
KBCategory: kbprg kbcode
KBSubcategory: FxprgBrowse


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 9, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.