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