At 09:32 AM 6/7/2005, Ted Wolfley wrote:

I would like to have multiple text values entered in
one dialog box with the text values separated by commas.
The variable from the dialog box would then be used in
the IN clause of a SELECT statement.  The statement works
fine with one value but not more than one.  To use more
than one text value in the IN clause, the text values
must have single quotes around each value.


Ted,

Try the following example and see what you get:

01. Start RBG7, RBG75 or RBG8

02. CONNECT ConComp

03. Create a command file with the following:

    -- start
    LABEL Start
    CLEAR VAR iv%,vYears,vEndKey,vRows,vCaption,vInClause
    SET VAR vYears TEXT = NULL
    SET VAR vEndKey TEXT = NULL
    SET VAR vRows INTEGER = 0
    SET VAR vCaption TEXT = 'Understanding WHERE Clause ...'
    SET VAR vInClause TEXT = NULL
    CLS
    DIALOG 'Enter Years Separated by Comma (e.g: 2000,2002,2004)' +
    vYears=34 vEndKey 1 +
    CAPTION .vCaption ICON APPS +
    OPTION TITLE_FONT_COLOR GREEN +
    |TITLE_BACK_COLOR WHITE +
    |TITLE_FONT_NAME ARIAL +
    |TITLE_BOLD OFF +
    |WINDOW_BACK_COLOR WHITE +
    |BUTTON_OK_CAPTION &Continue +
    |BUTTON_CANCEL_CAPTION C&ancel +
    |BUTTONS_BACK_COLOR WHITE +
    |BUTTON_FONT_COLOR GREEN

    IF vYears IS NULL OR vEndKey = '[Esc]' THEN
       GOTO Done
    ENDIF

    SET VAR vInClause = ('('+.vYears+')')
    SELECT COUNT(*) INTO vRows INDIC ivRows FROM TransMaster +
    WHERE (IYR4(TransDate)) IN &vInClause

    IF vRows = 0 THEN
       CLS
       PAUSE 2 USING 'No Record(s) Found!' +
       CAPTION .vCaption +
       ICON INFO
       GOTO Start
    ENDIF

    CLS
    BROWSE * FROM TransMaster +
    WHERE (IYR4(TransDate)) IN &vInClause +
    ORDER BY TransID +
    OPTION WINDOW_STATE MAXIMIZED|CAPTION 'Sales Data' +
    |ROWVIEW ON

    LABEL Done
    CLS
    CLEAR VAR iv%,vYears,vEndKey,vRows,vCaption,vInClause
    RETURN
    -- end

04. RUN commandfile.ext

Have fun!

Very Best R:egards,

Razzak

Reply via email to