[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
Re: [sqr-users] Dynamic Substitution Vars
I'd suggest using an array and some local procedures, something like...
do prompt_txt('Enter some code: ', $code)
do prompt_date('Enter Report Begin Date: ', $begin_date)
... and a simple representation of one of the procedures being ...
begin-procedure prompt_txt($prompt_line, :$val)
show $prompt_line noline
input $val noprompt
put $prompt_line $val into Inputs(#_next_input_elem) prompt val
add 1 to #_next_input_elem
end-procedure
HTH,
Don
On Fri, 17 Oct 2003, Matt Rogish wrote:
> All,
>
> I sent a message earlier about dynamic 'input' variables and got some
> interesting suggestions on and off list, none of which worked out quite as
> I had hoped.
>
> To re-cap:
> We have lots of programs which have this basic structure:
> set up variables
> ask for input
> run some SQL
> show report
> show summary
>
> In order to ease maintenance what I'd like to do is standardize the "set up
> variables", "ask for input", and "show summary" pieces using some sort of
> dynamic SQR.
>
> In the summary section we list some report variables (counters and things)
> and we like to list the input parameters because there's nothing like
> getting a complex multi-section report and trying to guess what input
> parameters the particular report was run with (because the user forgets, or
> you look at the report a month later, or they were in Brio Portal but have
> since been changed, etc.).
>
> The way we have it now is something like this:
> begin-procedure get-input
> Input $code 'Enter some code'
> Input $begin_date 'Enter report begin date' type=date
> ..
> end-procedure
>
> begin-procedure show-input-summary
> print 'Input Parameters:' (+1) bold
>
> print 'Some Code: ' (+2)
> print $code
>
> print 'Begin Date: ' (+2)
> print $begin_date
>
> etc.
> end-procedure
>
> Oftentimes there are many parameters so it becomes cumbersome to list long
> blocks of Input and print statements. It also makes maintenance a
> nightmare because you don't know which programs require what input and if
> you want to change/add one you have to change it several places.
>
> So, the goal is to minimize code changes when the input parameter list
> changes -- either by adding, changing, or removing input
> parameters. Preferably, there would be one spot in the program where I
> change a parameter list and the get-input and show-input-summary procedures
> do not have to change! It goes without saying that there might have to be
> other changes to handle the addition or removal of a parameter, but that
> can come later. :)
>
> Some ideas I've considered are:
> Idea One -- Build an array which stores the input parameter name
> ("some_code") and input query string ("Enter some code") then loop through
> each one and build an 'Input' statement from this.
> Problem:
> I don't know how to execute dynamic SQR code, namely something like:
> let $stmt = 'Input $' || $input_var_name || ' ''' || $input_query || ''''
> [$stmt]
> This gives an error:
> (SQR 4008) Unknown function or variable in expression: [$stmt]
>
> Idea Two -- Create substitution variables, loop through each of them, and
> use them in Input statements.
> Problem:
> I can't dynamically *name* a substitution variable:
> Let #num = 1
> #DEFINE variable_number_#1
> Show {variable_number_1}
> This gives an error:
> (SQR 4707) No value found for substitution variable: {variable_number_1}
>
> Any help/ideas?
>
>
> Thanks,
>
> --
> Matt Rogish - rogishmn@muohio.edu
>
> _______________________________________________
> sqr-users mailing list
> sqr-users@sqrug.org
> http://www.sqrug.org/mailman/listinfo/sqr-users
>
-----------------------------------------------------------------------
Donald Mellen | Ray Ontko & Co. - Richmond, IN - http://www.ontko.com/
donm@ontko.com | "In the beginning, there was nothing, which exploded"
_______________________________________________
sqr-users mailing list
sqr-users@sqrug.org
http://www.sqrug.org/mailman/listinfo/sqr-users