/* $DOC$ $NAME$ ft_BrwsWhl() $CATEGORY$ Menus/Prompts $ONELINER$ Browse an indexed database limited to a while condition $SYNTAX$ ft_BrwsWhl( , , , ; [ ], [ ], [ ], ; [ ], [ ], [ ], ; [ ], [ ] -> nRecno $ARGUMENTS$ is array of field blocks of fields you want to display. Example to set up last name and first name in array: aFields := {} AAdd( aFields, { "Last Name" , {|| Names->Last } } ) AAdd( aFields, { "First Name", {|| Names->First } } ) is the limiting WHILE condition as a block. Example 1: {|| Names->Last == "JONES" } Example 2: {|| Names->Last == "JONES" .AND. Names->First == "A" } is the key to find top condition of WHILE. cLast := "JONES " cFirst := "A" Example 1: cKey := cLast Example 2: cKey := cLast + cFirst is number of fields to freeze in TBrowse. Defaults to 0 if not passed. is a logical indicating whether or not you want to save the screen from the calling program. Defaults to .T. if not passed. is a list of colors for the TBrowse columns. The 1st color is used as SAY/TBrowse Background and the 3rd and 4th colors are used as part of column:defColor := { 3, 4 } Thus if you pass a cColorList, you MUST pass at least 4 colors. Defaults to "N/W, N/BG, B/W, B/BG, B/W, B/BG, R/W, B/R" if not passed. is the color of the TBrowse box shadow. Defaults to "N/N" if not passed. , , , are the coordinates of the area to display the TBrowse in. Defaults to 2, 2, MaxRow() - 2, MaxCol() - 2 with shadowed box, i.e. full screen. $RETURNS$ nRecno is the number of the record selected by the key. 0 is returned if there are either no records matching the WHILE condition or an is pressed instead of an $DESCRIPTION$ This is a demonstration of TBrowse with a WHILE condition for an indexed database. $EXAMPLES$ // This example will only show those people with last name of "JONES" // in the TBNames.dbf which contains at least the fields: // Last, First, City AND is indexed on Last + First. LOCAL nRecSel := 0 LOCAL aFields := {} LOCAL bWhile := {|| TBNames->Last = "JONES" } LOCAL cKey := "JONES" LOCAL nFreeze := 1 LOCAL lSaveScrn := .T. LOCAL cColorList := "N/W, N/BG, B/W, B/BG, B/W, B/BG, R/W, B/R" LOCAL cColorShad := "N/N" USE tbnames INDEX tbnames NEW // indexed on Last + First // Pass Heading as character and Field as Block including Alias // To eliminate the need to use FieldWBlock() function in ft_BrwsWhl() AAdd( aFields, { "Last Name" , {|| TBNames->Last } } ) AAdd( aFields, { "First Name", {|| TBNames->First } } ) AAdd( aFields, { "City" , {|| TBNames->City } } ) IF ft_BrwsWhl( aFields, bWhile, cKey, nFreeze, lSaveScrn, ; cColorList, cColorShad, 3, 6, MaxRow() - 2, MaxCol() - 6 ) == 0 ? "Sorry, No records were selected" ELSE ? "You Selected:", TBNames->Last, TBNames->First, TBNames->City ENDIF $END$ */