
Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[1]--------------------------------------------------------------------

PROBLEM:  Generated inquiry programs begin with a comment which says
something like:

    * DATA MAINTENANCE PROGRAM CALCRURC.PRG

COMMENT:  This is only an erroneous comment; the program functions as
an inquiry, not a maintenance program.  This problem was corrected in
Release B.

FIX:  In GENMNT.GTL, add the indicated lines:

<< if [program type] = "D" >>                                         <===
...* DATA MAINTENANCE PROGRAM {[program name]}.{[program extension]}
<< else >>                                                            <===
...* INQUIRY PROGRAM {[program name]}.{[program extension]}           <===
<< endif >>                                                           <===

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[2]--------------------------------------------------------------------

PROBLEM:  When you try to run a menu program generated with the alternate
menu template GENMNUPD.GTL, the program crashes with the message
"Position is off the screen".

COMMENT:  This problem was corrected in Release B.

FIX:  In GENMNUPD.GTL, change:

  @ 0,(SCOLS() - 1) GET dummy_ FUNCTION "*IN " SIZE 1,2 VALID MenuOff()

to:

  @ 0,(SCOLS() - 2) GET dummy_ FUNCTION "*IN " SIZE 1,2 VALID MenuOff()

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[3]--------------------------------------------------------------------

PROBLEM:  When you attempt to set a filter, the application crashes.

COMMENT:  This problem was corrected in Release B.

FIX:  In the function G_FiltDlog(), in G_UDF.PRG, you will find the
following code:

  READ MODAL
  SELECT Filt                 <===
  SELECT (area_[table_])
  IF action_ = 1
    .
    .
    .
  
Change the indicated line to:

  SELECT G_Filter

Make the same change in two places in G_FiltAct(), also in G_UDF.PRG:

    CASE action_ = 5
      * Save
      IF EMPTY(new_desc_)
        = G_Warning("Can't save a filter without a description")
      ELSE
        SELECT Filt           <===
        .
        .
        .
    CASE action_ = 6
      * Delete
      SELECT Filt             <===
      .
      .
      .

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[4]--------------------------------------------------------------------

PROBLEM:  If the user opens a help window, the other menu options are
still available.  Selecting certain menu options may cause the
application to crash.

COMMENT:  The menu should be disabled whenever a help window is open.
This problem was corrected in Release B.

FIX:  In the function G_Help(), in G_UDF.PRG, insert the indicated code:

    DEFINE WINDOW Help FROM brow, bcol TO erow, ecol ;
           TITLE "Help" + IIF(edit_help_, " (Ctrl-W to save)", []) ;
           FONT std_font_, std_size_ SYSTEM CLOSE FLOAT GROW SHADOW ZOOM ;
           COLOR SCHEME 5
    = G_Disable(.T.)                           <===
    IF edit_help_
      IF G_RecLock()
        ON KEY LABEL Ctrl+W DO G_LockWin
        MODIFY MEMO Details WINDOW Help SAVE
        ON KEY LABEL Ctrl+W
      ENDIF
    ELSE
      MODIFY MEMO Details NOEDIT WINDOW Help
    ENDIF
    = G_Disable(.F.)                           <===
    RELEASE WINDOW Help

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[5]--------------------------------------------------------------------

PROBLEM:  If you place fields or text on the bottommost row of a window,
the line is not visible (or only partially visible) when you run the
program in FoxPro for Windows.

COMMENT:  This is not a bug, but rather a problem translating character
mode screens to graphics mode.  Specifically, Windows windows allocate
space at the top of the window for the title bar, which pushes the
contents downward.  Theoretically, the templates could be rewritten to
automatically make the windows larger when running in Windows, but this
would mean that they no longer overlap as designed.

The best solution is just to leave a blank line at the bottom of each
window as a margin.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[6]--------------------------------------------------------------------

PROBLEM:  If you press the [up] or [down] key several times in rapid
succession to scroll through a scrolling window, the application
crashes.

COMMENT:  This problem was corrected in Release B.

FIX:  In the function Main(), in GENMNT.GTL, reverse the sequence of the
first few lines, changing:

  PARAMETERS option_, recno_
  PRIVATE reread_
<< if [program type] = "D" >>  (data maintenance)
  ..., move_lock_
<< endif >>
<< if _scrolling >>
  ..., keys_on_, keys_off_
<< endif >>
  PUSH KEY CLEAR              <=== move this line

to:

  PARAMETERS option_, recno_
  PUSH KEY CLEAR
  PRIVATE reread_
<< if [program type] = "D" >>  (data maintenance)
  ..., move_lock_
<< endif >>
<< if _scrolling >>
  ..., keys_on_, keys_off_
<< endif >>

In GENREP.GTL, GENLABEL.GTL, GENFRX.GTL, and GENLBX.GTL, change the code
from:

  PARAMETERS option_, recno_
  PRIVATE old_top_
  PUSH KEY CLEAR              <=== move this line

to:

  PARAMETERS option_, recno_
  PUSH KEY CLEAR
  PRIVATE old_top_

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[7]--------------------------------------------------------------------

PROBLEM:  In a maintenance program, if you move the record pointer with
the tool bar and make changes to a record, the application may not
always prompt you to save your changes when you move the record pointer
again.

COMMENT:  This problem was corrected in Release B.

FIX:  Two changes are needed.  First, in the function G_UpFlag(), in
G_UDF.PRG, add the indicated line of code:

  updated_ = updated_ .OR. UPDATED()    <===
  IF .NOT. UPDATED()
    phonyflag_ = .T.
  ENDIF

Second, in the function G_MoveTop(), also in G_UDF.PRG, add three lines
of code:

  PARAMETERS win_name_
  ZOOM WINDOW (win_name_) NORM
  ACTIVATE WINDOW (win_name_) TOP
  IF WLAST() = "TOOLBAR"                <===
    phonyflag_ = .F.                    <===
  ENDIF                                 <===
       
--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[8]--------------------------------------------------------------------

PROBLEM:  If you're using the alternate menu template, GENMNUPD.GTL, and
you try to open a help window from the menu screen, the application
crashes with the message "popup not defined".

COMMENT:  This problem occurs only after making the fix described in
Anomaly #4.  That fix corrects the problem everywhere but in GENMNUPD.GTL.
This problem was corrected in Release B.

FIX:  In the function G_Disable(), in G_UDF.PRG, change:

  PRIVATE n, m, pad_
  FOR n = 1 TO CNTPAD("_mSysMenu")
    popup_ = GETPAD("_mSysMenu", n)
    FOR m = 1 TO CNTBAR(popup_)
      SET SKIP OF BAR (m) OF (popup_) (disable_)
    ENDFOR
  ENDFOR

to:

  PRIVATE n, m, pad_
  FOR n = 1 TO CNTPAD("_mSysMenu")
    pad_ = GETPAD("_mSysMenu", n)
    SET SKIP OF PAD (pad_) OF _mSysMenu (disable_)
  ENDFOR

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[9]--------------------------------------------------------------------

PROBLEM:  In inquiry programs, you cannot scroll a large memo field to
read the full contents.

COMMENT:  This problem was corrected in Release B.

FIX:  Two changes are needed.  In the function Gets(), insert the
indicated code:

          << if .not. _continued >>
          FONT fld_font_, fld_size_ STYLE fld_style_ ;
            << if [program type] = "D" >>  (data maintenance)
          WHEN table_ = {[database #file-no]} ... etc.
            << else >>
              << if [field type] = "M" >>         <===
          NOMODIFY                                <===
              << else >>                          <===
          WHEN .F.
              << endif >>                         <===
            << endif >>
          << endif >>

Then, further down in the same function, change:

        << if .not. _continued >>
          FONT fld_font_, fld_size_ STYLE fld_style_ DISABLE
        << endif >>

to:

        << if .not. _continued >>
          FONT fld_font_, fld_size_ STYLE fld_style_
          << if [field type] = "M" >>
          ... NOMODIFY
          << else >>
          ... DISABLE
          << endif >>
        << endif >>

The same problem exists in report programs, so you may wish to make the
similar changes to GENREP.GTL, GENLABEL.GTL, GENFRX.GTL, and/or GENLBX.GTL.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[10]-------------------------------------------------------------------

PROBLEM:  If you paint text on your menu screens, the application
crashes with the message "File G_TEXTCONV.PRG does not exist."

COMMENT:  This problem was corrected in Release B.

FIX:  In GENMNU.GTL change:

  << if .not. empty(_text) >>
  @ {[line #row]},{[line #column]} SAY G_TextConv("{_text}")
  << endif >>

to:

  << if .not. empty(_text) >>
  = G_Say({[line #row]},{[line #column]}, "{_text}", "", .T.)
  << endif >>

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[11]-------------------------------------------------------------------

PROBLEM:  Your maintenance program crashes with the message, "Window
'LOCKER03' has not been defined".

COMMENT:  This problem was corrected in Release B.

FIX:  In the Main Event Loop, in GENMNT.GTL, change:

  DO WHILE .NOT. exit_
  << if [program type] = "D" >>  (not needed for inquiry)
    IF .NOT. locked_
      = G_GetLock("Locker03", "Main03('Lock')")   <=== change this line
    ENDIF

to:

  DO WHILE .NOT. exit_
  << if [program type] = "D" >>  (not needed for inquiry)
    IF .NOT. locked_
      = G_GetLock("Locker{_XX}", "Main{_XX}('Lock')")
    ENDIF

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[12]-------------------------------------------------------------------

PROBLEM:  Your maintenance or inquiry program crashes with the message,
"File ADDREC03.PRG does not exist."

COMMENT:  This problem was corrected in Release B.

FIX:  In the function Zoom_To(), in GENMNT.GTL, change:

    IF G_DBFEmpty()
      = G_Warning("Database Empty")
      = AddRec03()                      <=== change this line
    ENDIF

to:

    IF G_DBFEmpty()
      = G_Warning("Database Empty")
      = AddRec{_XX}()
    ENDIF

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[13]-------------------------------------------------------------------

PROBLEM:  If you set win_help_ = .T., selecting the "About..." option
from the Help menu causes the program to crash with the message "File
MAIN04.PRG does not exist."

COMMENT:  This error occurs only under FoxPro for Windows.  This problem
was corrected in Release B.

FIX:  In the Define Menu section of GENMNT.GTL and whichever report
template(s) you are using (GENREP.GTL, GENLABEL.GTL, GENFRX.GTL, and/or
GENLBX.GTL, change:

    ON SELECTION BAR 6 OF _mSystem DO Main04 WITH TRIM(PROMPT())

to:

    ON SELECTION BAR 6 OF _mSystem DO Main{_XX} WITH TRIM(PROMPT())

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[14]-------------------------------------------------------------------

PROBLEM:  If you have a maintenance program with a three or more zoom
levels (i.e., a "parent/child/grandchild" relationship, such as Cruises,
Parties, and Passengers in the California Cruises Reservations screen),
the application permits the user to add records on the third zoom level
(the grandchild) when no records exist on the second level (the child).

COMMENT:  This problem was corrected in Release B.

FIX:  In the function Zoom_To(), in GENMNT.GTL, change:

    table_ = Zoom_In{_XX}(new_table_, visual_)
    IF G_DBFEmpty()
      = G_Warning("Database Empty")
      = AddRec{_XX}()
    ENDIF

to:

    IF EOF()
      ZOOM WINDOW (WONTOP()) MIN
      DO CASE
    << for all zoom-databases in program >>
      << if [database is-parent?] >>
        CASE table_ = {[database #file-no]}    &&  {[database alias]}
        << for all windows in database >>
          = G_MoveTop(wname_[{[window #number]}])
          << exit >>
        << endfor >>
      << endif >>
    << endfor >>
      ENDCASE
    ELSE
      table_ = Zoom_In{_XX}(new_table_, visual_)
      IF G_DBFEmpty()
        = G_Warning("Database Empty")
        = AddRec{_XX}()
      ENDIF
    ENDIF

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[15]-------------------------------------------------------------------

PROBLEM:  The same information is repeated in each line of a scrolling
window.

COMMENT:  This only occurs when you have multiple databases, and at
least one of the databases has more than one window.  This problem was
corrected in Release B.

FIX:  In the function LoadRow(), in GENMNT.GTL, change:

  = LoadRec{_XX}(window_)

to:

  = LoadRec{_XX}(table_)

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[16]-------------------------------------------------------------------

PROBLEM:  In a maintenance program with multiple zoom levels, if you
change a parent record and then select a zoom window, you will be
prompted to save the changes.  If you select "No" or "Cancel", the
changes still appear on the screen.

COMMENT:  This is a cosmetic problem only.  The changes are not saved,
but you must move the record pointer to another record and then back
again to see the correct information.  This problem was corrected in
Release B.

FIX:  In the function SaveRec(), in GENMNT.GTL, insert the indicated
code:

      IF save_
        = Postings{_XX}(IIF(EOF(), "Add", "Modify"))
      << if _scrolling >>
        reread_ = G_ReDisplay()
      << endif >>
      << if [program #zooms] > 1 >>
        IF .NOT. EOF()
          = Z_Modify{_XX}()
        ENDIF
      << endif >>
        = G_Flush()
      ELSE                              <===
        = LoadRec{_XX}(table_)          <===
      ENDIF

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[17]-------------------------------------------------------------------

PROBLEM:  If you have a maintenance or inquiry program with scrolling
windows, but the first window doesn't scroll, the [up], [down], [PgUp],
and [PgDn] keys don't work as they're supposed to.

COMMENT:  This problem was corrected in Release B.

FIX:  In GENMNT.GTL, change:

* Program Hot Keys
  PUSH KEY CLEAR
  ON KEY LABEL Ctrl+P DO Main{_XX} WITH "Previous Record"
<< if [window is-scrolling?] >>                      <=== change this line
  ON KEY LABEL DnArrow DO Main{_XX} WITH "DnArrow"
  ON KEY LABEL UpArrow DO Main{_XX} WITH "UpArrow"
  ON KEY LABEL PgUp DO Main{_XX} WITH "PgUp"
  ON KEY LABEL PgDn DO Main{_XX} WITH "PgDn"
<< endif >>

to:

* Program Hot Keys
  PUSH KEY CLEAR
  ON KEY LABEL Ctrl+P DO Main{_XX} WITH "Previous Record"
<< if _scrolling >>
  ON KEY LABEL DnArrow DO Main{_XX} WITH "DnArrow"
  ON KEY LABEL UpArrow DO Main{_XX} WITH "UpArrow"
  ON KEY LABEL PgUp DO Main{_XX} WITH "PgUp"
  ON KEY LABEL PgDn DO Main{_XX} WITH "PgDn"
<< endif >>

NOTE:  This fix introduces another problem.  If you haven't implemented
it, don't.  If you have implemented it, put the code back the way it was
and review Anomaly #24 below.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[18]-------------------------------------------------------------------

PROBLEM:  If you try to add to a validation database on the fly (as
described on p. 26 of the template documentation), and the secondary
maintenance program uses a scrolling window, that scrolling window
appears completely empty.

COMMENT:  This is a cosmetic problem.  The system still works; the user
merely has to select "First Record" from the menu to force the window to
redisplay, and then select "Add New" to enter the new record.  This
problem was corrected in Release B.

FIX:  Insert the indicated code in GENMNT.GTL:

* Is the Database Empty?
  = Refresh{_XX}(1, .T.)
<< if [program type] = "D" >>  (data maintenance)
  << if _scrolling >>                                       <===
  IF EOF()                                                  <===
    IF G_DBFEmpty()                                         <===
      = G_Warning("Database Empty")                         <===
      = AddRec{_XX}()                                       <===
    ELSE                                                    <===
      = G_GoTop()                                           <===
      = Refresh{_XX}(1, .T.)                                <===
      KEYBOARD "{[left brace]}Ctrl+A{[right brace]}"        <===
    ENDIF                                                   <===
  << else >>                                                <===
  IF G_DBFEmpty()
    = G_Warning("Database Empty")
    = AddRec{_XX}()
  << endif >>                                               <===
<< else >>
  IF EOF()
    = G_Warning("Database Empty")      
    exit_ = .T.
<< endif >>
  ENDIF

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[19]-------------------------------------------------------------------

PROBLEM:  If your maintenance program contains a lookup field which is
validated, Genifer generates the line:

      is_valid_ = is_valid_ .AND.

in the function Valid(), causing FoxPro to crash with a syntax error.

COMMENT:  This problem was corrected in Release B.

FIX:  In GENMNT.GTL, in the function Valid(), insert the indicated code:

      << for all validated-fields in database >>
        << if .not. [field is-lookup?] >>         <===
      is_valid_ = is_valid_ .AND.
          << do case >>
           .
           .
           .
          << endcase >>
        << endif >>                               <===
      << endfor all fields >>

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[20]-------------------------------------------------------------------

PROBLEM:  If you access the Filter dialog and Cancel, you get an
inappropriate "Save changes?" the next time you move the record pointer.

COMMENT:  This problem was corrected in Release B.

FIX:  In GENMNT.GTL, in the function Main(), insert the indicated code:

    CASE option_ == "Set Filter..."
    << if [program type] = "D" >>  (data maintenance)
    ... .AND. SaveRec{_XX}(auto_save_)
    << endif >>
      IF G_FiltDlog("QuikFilt{_XX}()")
        = Refresh{_XX}(table_, .T.)
    << if [program type] = "D" >>  (data maintenance)       <===
      ELSE                                                  <===
        SHOW GETS                                           <===
    << endif >>                                             <===
      ENDIF

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[21]-------------------------------------------------------------------

PROBLEM:  When you make changes in a scrolling window and then move the
record pointer using the tool bar, you get the inappropriate message
"Save changes?".

COMMENT:  In a scrolling window, the changes should be saved without
prompting.  This problem was corrected in Release B.

FIX:  In GENMNT.GTL, in the function SaveRec(), change:

  PRIVATE option_
  IF updated_ .OR. (UPDATED() .AND..NOT. phonyflag_)
    IF Valid{_XX}(table_)
    << if _scrolling >>
      save_ = save_ .OR. INLIST(WONTOP()
      .
      .
      .

to:

  PRIVATE option_
  << if _scrolling_ >>
  ..., wontop_
  << endif >>
  IF updated_ .OR. (UPDATED() .AND..NOT. phonyflag_)
    IF Valid{_XX}(table_)
    << if _scrolling >>
      wontop_ = IIF(WONTOP("ToolBar{_XX}"), WLAST(), WONTOP())
      save_ = save_ .OR. INLIST(wontop_
      .
      .
      .

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[22]-------------------------------------------------------------------

PROBLEM:  When you try to print mailing labels, the application crashes
with the message "Syntax error".

COMMENT:  This bug affects only programs generated with GENLABEL.GTL,
not GENLBX.GTL It was introduced in Release B.

FIX:  In GENLABEL.GTL, change:

* Control Switches
  #define  no_across_   1   &&  The number of labels across
  #define  show_tool_  .T.  &&  Display the Tool Bar at start-up?

to:

* Control Switches
  #define  show_tool_  .T.  &&  Display the Tool Bar at start-up?
  PRIVATE  no_across_       &&  The number of labels across
  no_across_ = 1

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[23]-------------------------------------------------------------------

PROBLEM:  When you try to use a pick list, or when you do a List in a
maintenance program containing fields validated against a file, the
application crashes with a message like, "Variable DB_ct_ not found."

COMMENT:  This bug was introduced in Release B.

FIX:  Several must be made to GENMNT.GTL.  At the beginning of the file,
change:

<< for all zoom-databases in program >>           <===  change this line
  #define  DB_{[database alias]}_  {j}
<< endfor >>

to:

<< for all databases in program >>
  #define  DB_{[database alias]}_  {j}
<< endfor >>

Next, the following line must be changed from:

         ... "{[field val-alias]}", "List{_XX}(DB_{[database alias]}_)",

to:

         ... "{[field val-alias]}", "List{_XX}({[database #file-no)",

This line appears twice in the function Gets(), and once in the function
Valid().  All three occurrances should be corrected.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[24]-------------------------------------------------------------------

PROBLEM:  Pressing the up or down arrow keys in a maintenance program
with scrolling windows produces odd behavior, such as inappropriate
dialogs popping up.

COMMENT:  This bug occurs if you implement the fix described in Anomaly
#17 above.

FIX:  Undo the fix in #17 and put the code back the way it was.  Then,
at the end of the function Main(), in GENMNT.GTL, change:

<< if _scrolling >>
  DO CASE
    CASE keys_on_
      ON KEY LABEL UpArrow DO Main{_XX} WITH "UpArrow"
      ON KEY LABEL DnArrow DO Main{_XX} WITH "DnArrow"
      ON KEY LABEL PgUp DO Main{_XX} WITH "PgUp"
      ON KEY LABEL PgDn DO Main{_XX} WITH "PgDn"
    CASE keys_off_
      ON KEY LABEL UpArrow
      ON KEY LABEL DnArrow
      ON KEY LABEL PgUp
      ON KEY LABEL PgDn
  ENDCASE
<< endif >>
  SELECT 0                              <===  move these
  POP KEY                               <===  two lines

to:

  SELECT 0
  POP KEY
<< if _scrolling >>
  DO CASE
    CASE keys_on_
      ON KEY LABEL UpArrow DO Main{_XX} WITH "UpArrow"
      ON KEY LABEL DnArrow DO Main{_XX} WITH "DnArrow"
      ON KEY LABEL PgUp DO Main{_XX} WITH "PgUp"
      ON KEY LABEL PgDn DO Main{_XX} WITH "PgDn"
    CASE keys_off_
      ON KEY LABEL UpArrow
      ON KEY LABEL DnArrow
      ON KEY LABEL PgUp
      ON KEY LABEL PgDn
  ENDCASE
<< endif >>

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[25]-------------------------------------------------------------------

PROBLEM:  If you access the Retrieve or Index Order dialog in a
maintenance program, and then immediately move the record pointer, you
get an inappropriate "Save changes?" message.

FIX:  In GENMNT.GTL, at the end of the function Retreive(), insert the
indicated code:

  RELEASE WINDOW Retrieve
  SCATTER MEMVAR
<< if [program type] = "D" >>       <===
  SHOW GETS                         <===
<< endif >>                         <===

Insert the same code at the end of the function Reorder():

  RELEASE WINDOW Reorder
<< if [program type] = "D" >>       <===
  SHOW GETS                         <===
<< endif >>                         <===

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[26]-------------------------------------------------------------------

PROBLEM:  If you chnage a field value and then press [Esc], the field is
not restored to its original value, as it's supposed to be.

FIX:  In GENMNT.GTL, change:

* Main Event Loop
  .
  .
  .
    IF locked_
      = Main{_XX}("Go to", home_[table_])
    ENDIF
    << endif >>
  ENDDO

to:

* Main Event Loop
  .
  .
  .
    IF locked_
      SELECT (area_[table_])
      = Refresh{_XX}(table_, .T.)
      SELECT 0
      updated_ = .F.
    ENDIF
    << endif >>
  ENDDO

--------------------------------------------------------------------------


Anomaly Report:  Genifer 3.0 Event Driven Templates for FoxPro 2.5

---[27]-------------------------------------------------------------------

PROBLEM:  When you try to Retrieve or perform a Quick Filter using a
field with "@M" as the picture, you're not allowed to enter a value into
the field.  The same problem also occurs if you use the field controls
(check box, radio buttons, etc.).

FIX:  In the function QuikFilt(), GENMNT.GTL and your report templates,
insert the indicated code:

          << do case >>
            << case [field type] = "L" >>
      ... PICTURE "!" VALID m->{[field name]} $ "YNTF "
===>        << case [field picture] $ "@*C,@^,@*R,@*RH,@*RV,@M" >>
===>          <<*  ignore the picture  *>>
            << case .not. empty([field picture]) >>
      ... PICTURE "{[field picture]}"
          << endcase >>

In the function Retrieve(), insert the indicated code:

          << if .not. empty([field picture]) >>
===>        << if .not. [field picture] $ "@*C,@^,@*R,@*RH,@*RV,@M" >>
      ... PICTURE "{[field picture]}"
===>        << endif >>
          << endif >>

--------------------------------------------------------------------------

