| 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.