Name: #LIST Family: Commands
Description: Additional CHOOSE Option

See also: CHOOSE Command

Syntax:
CHOOSE varname FROM #LIST ValueList AT .. TITLE .. CAPTION .. LINES .. FORMATTED

Example 01:
CHOOSE vPick1 FROM #LIST 'Alpha,Beta,Delta,Gamma' AT CENTER CENTER
Example 02:
CHOOSE vPick1 FROM #LIST 'Screen,Printer,File.TXT' AT CENTER CENTER TITLE 'Pick a Location'
OUTP &vPick1
  PRINT ReportName WHERE ... ORDER BY ...
OUTP SCREEN
Example 03:
SET VAR vList TEXT = 'Screen,Printer,File.TXT'
CHOOSE vPick1 FROM #LIST .vList
OUTP &vPick1
  PRINT ReportName WHERE ... ORDER BY ...
OUTP SCREEN
Example 04:
SET VAR vList TEXT = 'Screen,Printer,File.TXT'
CHOOSE vPick FROM #LIST .vList AT CENTER CENTER TITLE 'Pick a Location' CAPTION 'Output Options'
OUTP &vPick1
PRINT ReportName WHERE ... ORDER BY ...
OUTP SCREEN
Example 05:
-- AutoPRN.RMD - Automating Printer Selections (10 Steps)
-- 01. Set R:BASE 2000 for Windows Environment
   CLEAR ALL VAR
   SET CAPTION ' '
   SET RBGSIZE CENTER CENTER 800 600
   CLS
   PAUSE 3 USING 'Please Wait ...' AT 16 30
-- 02. Get Database QUOTE Setting 
   SET VAR vQuoteName TEXT = QUOTE
   SET VAR vQuote = (CVAL(.vQuoteName))
-- 03. Pre-Define All Required Variables
   SET VAR vWinDefaultPrinter TEXT = NULL
   SET VAR vPrinterList TEXT = NULL
   SET VAR vLines INTEGER = 1
   SET VAR vTempPrinter TEXT = NULL
-- 04. Find Windows Default Printer
   SET VAR vWinDefaultPrinter = (CVAL('CurrentPrinter'))
   SET VAR vWinDefaultPrinter = (.vQuote+.vWinDefaultPrinter+.vQuote)
-- 05. Get List of All Windows Installed Printers 
   SET VAR vPrinterList = (CVAL('Printers'))
-- 06. Determine the number of lines to be displayed in CHOOSE window
   WHILE (SSUB(.vPrinterList, .vLines)) IS NOT NULL THEN
   SET VAR vLines = (.vLines+1)
   ENDWHILE
   IF vLines > 20 THEN
   SET VAR vLines = 20
   ELSE
   SET VAR vLines = (.vLines -1)
   ENDIF
-- 07. Give user the option to select printer from the list 
   CLS
   CHOOSE vTempPrinter FROM #LIST .vPrinterList AT CENTER CENTER +
   CHKBOX 1 TITLE 'Select Printer' +
   CAPTION 'Currently Available Printers' +
   LINES .vLines FORMATTED
   IF vTempPrinter = NULL OR vTempPrinter = '[Esc]' THEN
   PAUSE 2 USING 'No Printer Selected!'
   GOTO Done
   ENDIF
   SET VAR vTempPrinter = (.vQuote+.vTempPrinter+.vQuote)
-- 08. Change Printer Accordingly
   PRNSETUP .vTempPrinter
-- 09. Send Output to the Selected Printer
   OUTP PRINTER
   PRINT ReportName WHERE ... ORDER BY ... 
   OUTP SCREEN
-- or
   SET VAR vRBGLines = (CVAL('LINES'))
   SET LINES 0
   OUTP PRINTER
   SELECT ColName1=10, ColName2=16, ColName3=20=S + 
   FROM TableName WHERE ... ORDER BY ... 
   OUTP SCREEN
   SET LINES .vRBGLines
-- 10. Switch back to the Windows Default Printer
   PRNSETUP .vWinDefaultPrinter
LABEL Done
   CLEAR ALL VAR or whatever
   QUIT TO MainMenu.RMD or whatever

Additional Notes:

Support for long file names when using #LFILES in CHOOSE command

Scenario A:
To display all files in the current directory in a pop-up list, including files with long file names with long extensions. The chosen file name is stored in the variable v1.

CLS
SET RBGSIZE CENTER CENTER 800 600
SET CAPTION ' '
SET VAR v1 TEXT = NULL
CHOOSE v1 FROM #LFILES AT 10 30 TITLE 'Select File' +
CAPTION 'Check it out!' FORMATTED

Will display all files in the current directory in a pop-up list.

Scenario B:
To display all files in the current directory in a pop-up list with HTML extension. R:BASE will display a pop-up list of all files in the specified directory with the .HTML extension. The chosen file name is stored in the variable v1.

CLS
SET RBGSIZE CENTER CENTER 800 600
SET CAPTION ' '
SET VAR v1 TEXT = NULL
CHOOSE v1 FROM #LFILES IN *.HTML AT 10 30 TITLE 'Select File' +
CAPTION 'Check it out!' FORMATTED

Scenario C:

To test it further (just for fun), create a long file name with long extension and see what happens.

At the R> prompt:

RBEdit LongFileName.LongExtension

Type anything and then make sure to save the file.

CLS
SET RBGSIZE CENTER CENTER 800 600
SET CAPTION ' '
SET VAR v1 TEXT = NULL
CHOOSE v1 FROM #LFILES AT 10 30 TITLE 'Select File' +
CAPTION 'Check it out!' FORMATTED

Will display LongFileName.LongExtensions in a pop-up list.