Alastair,

 

Thanks for taking the time to explain the use of the SWITCH/ENDSW
command.  I have seen the command in the past and had an idea of what
its use was, but your taking the time to show me how to fill my need,
helps greatly.  I may try this later in this application just to get the
hang of the command.

 

Jim

 

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Alastair
Burr
Sent: Tuesday, December 02, 2008 11:59 AM
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: Choosing report

 

Jim,

 

On of the things it took me a long while to get around to learning and
using was the SWITCH/ENDSW command. Eventually, I had so many IF/ENDIF
sections that a better way for multiple choices just had to be found!

 

Razzak has already given you a solution to your CHOOSE question but - to
my mind - your following code screams out to use SWITCH/ENDSW.

 

Apologies if you know this already and/or have a reason to do it the way
you are. It's impertinent of me as well, but I wish I had known how to
use it earlier:

 

SWITCH .vReportOutput

  CASE 'Screen'

         PRINT KayParkQuote WHERE QuoteID = .vQuoteID +

         OPTION SCREEN|WINDOW_STATE MAXIMIZED +

         |ZOOM_TYPE PERCENTAGE|ZOOMPERCENT 100

      BREAK

  CASE 'Printer'

         PRINT KayParkQuote WHERE QuoteID = .vQuoteID +

         OPTION PRINTER

      BREAK

  CASE 'PDF'

         SET VAR vFileName = ('PDF\SalesQuote_'+.vQuoteID+'.PDF')

         PRINT KayParkQuote WHERE QuoteID = .vQuoteID +

         OPTION PDF +

         |FILENAME &vFileName +

         |TITLE Kay Park Recreation +

         |SUBJECT Sales Quote +

         |AUTHOR Sales Quote Processing Department +

         |OPEN ON

      BREAK

  DEFAULT

        GOTO LabelEnd  --  whatever you need if one of the above is not
chosen!

      BREAK

ENDSW

 

Also, even though you only have two reports at the moment and you could
use IF/ENDIF perfectly effectively you could also deal with a Report
choice to do nothing or any additional reports later were you to use
SWITCH/ENDSW after the CHOOSE process as well - especially if your
report names do not inform the users easily what one to choose:

 

CHOOSE vChoose FROM ...

SWITCH .vChoose 

  CASE 'KayParkQuote'

        SET VAR vReport = 'KayParkQuote'

      BREAK

  CASE 'KayParkOrder'  -- for example!

        SET VAR vReport = 'KayParkOrder'

      BREAK

  DEFAULT

        GOTO LabelEnd  --  whatever you need if one of the above is not
chosen!

      BREAK

ENDSW

 

If you were to use this after your CHOOSE then your PRINT command first
lines in my first example need to be changed to:

 

 

         PRINT .vReport WHERE QuoteID = .vQuoteID +

 

The great advantage that I find with SWITCH/ENDSW over IF/ENDIF is that
it is so much easier to understand what you are doing and to add (or
remove) choices as requirements change.

 

Good luck,

Regards,

Alastair.

 

 

 

        ----- Original Message ----- 

        From: Jim Belisle <mailto:[EMAIL PROTECTED]>  

        To: RBASE-L Mailing List <mailto:[email protected]>  

        Sent: Tuesday, December 02, 2008 1:20 PM

        Subject: [RBASE-L] - Choosing report

         

        Below is the present syntax for printing a specific report
(KayParkQuote) to either the screen, printer or file.  What I want to do
is give the sales person the option of choosing between two different
reports rather than using only the one report.  Is the CHOOSE command
the best command to use?  I was thinking of using the below syntax right
after the THEN:

         

        CHOOSE vreport FROM REPORTS WHERE (I am not sure what to put
here) IN (KayParkQuote,KayParkQuote_Price)

                    PRINT .vreport WHERE QuoteID = .vQuoteID

         

        I would use the above command for all three choices.

         

        (present syntax)

        IF vReportOutput = 'Screen' THEN

                 PRINT KayParkQuote WHERE QuoteID = .vQuoteID +

                 OPTION SCREEN|WINDOW_STATE MAXIMIZED +

                 |ZOOM_TYPE PERCENTAGE|ZOOMPERCENT 100

              ENDIF

              IF vReportOutput = 'Printer' THEN

                 PRINT KayParkQuote WHERE QuoteID = .vQuoteID +

                 OPTION PRINTER

              ENDIF

              IF vReportOutput = 'PDF' THEN

                 SET VAR vFileName =
('PDF\SalesQuote_'+.vQuoteID+'.PDF')

                 PRINT KayParkQuote WHERE QuoteID = .vQuoteID +

                 OPTION PDF +

                 |FILENAME &vFileName +

                 |TITLE Kay Park Recreation +

                 |SUBJECT Sales Quote +

                 |AUTHOR Sales Quote Processing Department +

                 |OPEN ON

              ENDIF

         

        Jim

        
________________________________


        
        No virus found in this incoming message.
        Checked by AVG - http://www.avg.com 
        Version: 8.0.176 / Virus Database: 270.9.12/1823 - Release Date:
01/12/2008 19:59

Reply via email to