FIX: Screen Builder Doesn't Recognize #ELIF & #UNDEF

Last reviewed: October 20, 1997
Article ID: Q119939
2.60    | 2.60   | 2.50b 2.50c
WINDOWS | MS-DOS | MACINTOSH kbprg kbbuglist kbfixlist

The information in this article applies to:

  • Microsoft FoxPro for Windows, version 2.6
  • Microsoft FoxPro for MS-DOS, version 2.6
  • Microsoft FoxPro for Macintosh, versions 2.5b, 2.5c

SYMPTOMS

The Screen Builder program (GENSCRN.PRG) doesn't recognize #ELIF and #UNDEF as preprocessor directives. The .SPR program file generated for a screen that has code snippets containing these directives isn't correct.

NOTE: This problem does NOT occur in prior versions of FoxPro for Windows or MS-DOS.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This problem was corrected in FoxPro version 2.6a for Windows, FoxPro version 2.6a for MS-DOS, and FoxPro version 2.6a for Macintosh.

MORE INFORMATION

Steps to Reproduce Problem

  1. In the Command window, type "CREATE SCREEN test" (without the quotation marks).

  2. In FoxPro for Windows or Macintosh, choose Layout from the Screen menu.

    In FoxPro for MS-DOS, choose Screen Layout from the Screen menu.

  3. In FoxPro for Windows or Macintosh, in the Screen Layout dialog box, under Options, choose the Code button.

    In FoxPro for MS-DOS, under Screen Code, select the Setup check box, and then choose OK. Skip to step 5.

  4. In FoxPro for Windows or Macintosh, in the Screen Code dialog box, choose Screen Setup Code. Choose OK twice.

    NOTE: This step doesn't apply to FoxPro for MS-DOS.

  5. Type the following code in the Setup Code snippet window:

    #IF 'WINDOWS' $ UPPER(VERSION())

              ? 'This is FoxPro for Windows'
           #ELIF 'MAC' $ UPPER(VERSION())
              ? 'This is FoxPro for Macintosh'
           #ELIF 'UNIX' $ UPPER(VERSION())
              ? 'This is FoxPro for UNIX'
           #ELSE
              ? 'This is FoxPro for MS-DOS'
           #ENDIF
    
           #DEFINE testconst 10
           #UNDEF testconst
    
    

  6. From the File menu, choose Close. FoxPro returns to the Screen Design window.

  7. From the Program menu, choose Generate.

  8. When prompted to save changes to the screen, choose Yes.

  9. When prompted to save environment information, choose No.

  10. In the Generate Screen dialog box, choose Generate.

  11. Close the Screen Design window.

  12. In the Command window, type "MODIFY COMMAND test.spr" (without the quotation marks).

  13. Go to the "Setup Code" section.

In the code that follows, note that the #ELIF statements and the #UNDEF statement are missing:

   #REGION 1
   #IF 'WINDOWS' $ UPPER(VERSION())
      ? 'This is FoxPro for Windows'
      ? 'This is FoxPro for Macintosh'
      ? 'This is FoxPro for UNIX'
   #ELSE
      ? 'This is FoxPro for MS-DOS'
   #ENDIF

   #DEFINE testconst 10


Additional reference words: FoxMac FoxDos FoxWin 2.50b 2.50c 2.60 2.60a
buglist2.50b buglist2.50c buglist2.60 fixlist2.60a generator genscreen
screengen
KBCategory: kbprg kbfixlist kbbuglist
KBSubcategory: FxtoolSbuilder
Keywords : FxtoolSbuilder kbbuglist kbfixlist kbprg
Version : 2.60 | 2.60 | 2.50b 2.50c
Platform : MACINTOSH MS-DOS WINDOWS
Solution Type : kbfix


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: October 20, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.