Choose may not accept a "UNION" syntax but
choose will accept a properly formed "UNION ALL" statement.

Here is one I use routinely.

set var vTakenByDefault = 'CEM'

  CHOOSE vTmp FROM #VALUES +
    FOR (LastName + ',' & FirstName ),(CTXT(.vTakenByDefault)) +
    FROM SalesmanList WHERE DSlsMn = .vTakenByDefault +
    UNION ALL SELECT SalesMan,(CTXT(DSlsMn)) FROM SlsMenu +
        CAPTION 'Select TakenBy. ESC to abort' +
        LINES 20 FORMATTED

This may work for you:

Choose vPick1 FROM #VALUES FOR DISTINCT FilName FROM FILIALEN +
UNION ALL SELECT '---everybody---' FROM FILIALEN WHERE COUNT = 1

Tip:
When designing CHOOSE,  to reduce development time, create a SELECT statement 
first to test.

SELECT DISTINCT FilName FROM FILIALEN +
UNION ALL SELECT '---everybody---' FROM FILIALEN WHERE COUNT = 1

When it is working, remove SELECT and paste after the FOR in your choose 
command 

Dennis McGrath
Software Developer
QMI Security Solutions
1661 Glenlake Ave
Itasca IL 60143
630-980-8461
[email protected]
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of A. Razzak Memon
Sent: Wednesday, July 16, 2014 12:08 PM
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: UNION SELECT ....

At 11:59 AM 7/16/2014, Armin Thoma wrote:

>I know how to use CHOOSE to show the option '--- everybody---' in addition
>
>Choose vPick1 FROM #VALUES FOR DISTINCT FilName FROM FILIALEN +
>UNION SELECT '---everybody---' FROM FILIALEN WHERE COUNT = 1
>So I tried the same technic within the WHERE clause of a Variable Lookup
>Combo Box or Variable Lookup List Box - no chance.
>
>Ok, you could define a TempTab ....., but I'm sure there is a better
>possibility already published in the list?


Armin,

By design and by definition, the CHOOSE command does not support the UNION
command.

However, you can create a dynamic TEMPORARY VIEW to accomplish the desired
results.

Here's an example based on RRBYW18 sample database ...

-- Dynamic Data For CHOOSE Command
-- Author: A. Razzak Memon
-- Date Created: July 16, 2014
-- Last Updated:
    CONNECT RRBYW18
    SET ERROR MESSAGE 677 OFF
    DROP VIEW DataForCHOOSE
    SET ERROR MESSAGE 677 ON
    CREATE TEMPORARY VIEW `DataForCHOOSE` +
    (InvoiceNum, InvoiceTot) +
    AS SELECT t1.TransID,(SUM(t2.Price)) +
    FROM InvoiceHeader t1,InvoiceDetail t2 +
    WHERE t2.TransID = t1.TransID +
    GROUP BY t1.TransID +
    UNION SELECT t3.TransID,$0.00 FROM InvoiceHeader t3 +
    WHERE NOT EXISTS +
    (SELECT TransID FROM InvoiceDetail WHERE InvoiceDetail.TransID = 
t3.TransID)
    COMMENT ON VIEW `DataForCHOOSE` IS 'Sample Union View for CHOOSE Command'
    SET VAR vInvoiceNumTxt TEXT = NULL
    SET VAR vInvoiceNum INTEGER = NULL
    CLS
    CHOOSE vInvoiceNumTxt FROM #VALUES FOR +
    ((LJS((CTXT(InvoiceNum)),12))&(RJS((CTXT(InvoiceTot)),14))),InvoiceNum +
    FROM DataForCHOOSE +
    CHKBOX 1 TITLE 'Select Invoice' +
    CAPTION 'Customer Invoices' LINES 30 FORMATTED +
    OPTION WINDOW_BACK_COLOR [R245,G222,B179] +
    |LIST_FONT_COLOR NAVY +
    |LIST_BACK_COLOR [R245,G222,B179] +
    |TITLE_BACK_COLOR [R245,G222,B179] +
    |TITLE_FONT_NAME Tahoma +
    |TITLE_FONT_COLOR NAVY +
    |TITLE_FONT_SIZE 12 +
    |BUTTONS_SHOW_GLYPH ON +
    |BUTTONS_BACK_COLOR WHITE
IF vInvoiceNumTxt IS NULL OR vInvoiceNumTxt = '[Esc]' THEN
    GOTO Done
ELSE
    SET VAR vInvoiceNum = (INT(.vInvoiceNumTxt))
ENDIF
    -- Do what you have to do here with vInvoiceNum variable
LABEL Done
    DROP VIEW DataForCHOOSE
    CLEAR VAR vInvoiceNumTxt,vInvoiceNum
    CLS
    RETURN

Hoffe, dass Sie dies hilfreich!

Very Best R:egards,

Razzak.

www.rbase.com
www.facebook.com/rbase
-- 
31 years of continuous innovation!
16 Years of R:BASE Technologies, Inc. making R:BASE what it is today!
-- 


Reply via email to