[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
Re: [sqr-users] variable resetting to 0 problem
As several others have indicated, the problem is with local vs global
variables. The addition of the parameter in the begin-procedure
causes this distinction.
Within the called procedure, you can refer to #D_BU_COUNT
as #_D_BU_COUNT to identify that it should deal with the global
variable rather than creating a local version. Add an underscore (_)
after the # or $ to all variables that are references to those used
outside the procedure.
On Fri, 5 Nov 2004 13:37:13 -0600 , you wrote:
>Hey there. Okay, so this should be a pretty easy problem, but it has me
>currently stumped. I'm trying to use a couple variables across my SQR and
>by the time I go to use them, they've been reset to 0. Here's a summary of
>my program (i've taken out the parts which I know work fine, and aren't part
>of the problem). My idea is to set up these variables that are going to be
>used through the whole SQR. But as they're being called through procedures,
>they're not being set correctly. REPORT calls CC_REPORT calls
>BUSINESS_UNIT_ROW sets #D_BU_COUNT. but when I try to use it in a different
>procedure (END_OF_DISTRICT) it isn't set. Can someone tell me what i'm doing
>wrong with my variables?!?!
>
>do i need to declare them somewhere else?
>is the problem with how many procedures its going through?
>i'm stumped. any help would be appreciated.
>
>
>The finished product will look somethign like this
> normal single
>BU1 10 5
>BU2 20 7
>BU3 17 2
>BU4 13 10
>
>dist tot 80 24
>Avg 20 6 ** except #d_bu_count isn't being correctly
>increased by one!!
>
>
>
>-------------------------
>BOB.SQR ||
>-------------------------
>
>!*******************************************************************
>BEGIN-SETUP
>!*******************************************************************
>END-SETUP
>
>!*******************************************************************
>BEGIN-REPORT
>!*******************************************************************
> !-------District variables
> let #d_normal = 0
> let #d_single = 0
> let #d_bu_count = 0
> !-------Region variables
> let #r_normal = 0
> let #r_single = 0
> let #r_bu_count = 0
> !------Excel Variables
> Let #RowNum = 1
> Do EXCEL-HEADING
>
> do CC_REPORT
>
>END-REPORT
>
>!*******************************************************************
>BEGIN-PROCEDURE CC_REPORT
>!*******************************************************************
>BEGIN-SELECT
>fas_branch5 &business_unit
>fas_district_descr () ON-BREAK PRINT=NEVER AFTER=END_OF_DISTRICT
>SKIPLINES = 1
>fas_regional_descr () ON-BREAK PRINT=NEVER AFTER=END_OF_REGION
>SKIPLINES = 1
>
> let $business_unit = &business_unit
> Do BUSINESS_UNIT_ROW($business_unit)
>
>FROM sysadm.ps_table WHERE busin_unit_type = 'BRNC' AND fas_branch5 in (
>**Blah blah blah. sql works fine ) ORDER BY fas_region_code, fas_district,
>fas_bu_4char
>END-SELECT
>END-PROCEDURE CC_REPORT
>
>!*******************************************************************
>BEGIN-PROCEDURE BUSINESS_UNIT_ROW($bu)
>!*******************************************************************
> !******************** Normal CC
>BEGIN-SELECT on-error=sql-error
>count(distinct a.counting_event_id) &n.count
> let #cyclcnt_count = &n.count
>FROM ps_count_hdr_inv a, ps_fas_count2_inv c
>WHERE a.business_unit = c.business_unit and a.counting_event_id =
>c.counting_event_id
>and c.business_unit = $bu and c.fas_cyclcnt_type = 'N'
>END-SELECT
>
> let #d_normal = #d_normal + #cyclcnt_count
> let #r_normal = #r_normal + #cyclcnt_count
>
> !******************** Single CC
>BEGIN-SELECT on-error=sql-error
>count(distinct a.counting_event_id) &s.count
> let #cyclcnt_count = &s.count
>FROM ps_count_hdr_inv a, ps_fas_count2_inv c
>WHERE a.business_unit = c.business_unit and a.counting_event_id =
>c.counting_event_id
>and c.business_unit = $bu and c.fas_cyclcnt_type = 'S'
>END-SELECT
>
> let #d_single = #d_single + #cyclcnt_count
> let #r_single = #r_single + #cyclcnt_count
>
> !********************
> let #d_bu_count = #d_bu_count + 1
> let #r_bu_count = #r_bu_count + 1
> let #RowNum = #RowNum + 1
>END-PROCEDURE BUSINESS_UNIT_ROW
>
>!*******************************************************************
>BEGIN-PROCEDURE END_OF_DISTRICT
>!*******************************************************************
>!***TOTALS
>
>Do Excel-Write-Number(1, #RowNum, 4, #d_normal)
>Do Excel-Write-Number(1, #RowNum, 5, #d_single)
>
>!***AVERAGES
>let #d_normal = #d_normal / #d_bu_count !****ERROR - cannot
>divide
>by ZERO***!!
>let #d_single = #d_single / #d_bu_count
>
>let #RowNum = #RowNum + 1 !skip a row
>
>Do Excel-Write-Number(1, #RowNum, 4, #d_normal)
>Do Excel-Write-Number(1, #RowNum, 5, #d_single)
>
>!***RESET VARIABLES to 0 FOR NEXT DISTRICT
>let #d_normal = 0
>let #d_single = 0
>
>let #RowNum = #RowNum + 1 !skip a row
>
>END-PROCEDURE END_OF_DISTRICT
>
> #include **stuff - includes are working fine**
>
>_______________________________________________
>sqr-users mailing list
>sqr-users@sqrug.org
>http://www.sqrug.org/mailman/listinfo/sqr-users
>
_______________________________________________
sqr-users mailing list
sqr-users@sqrug.org
http://www.sqrug.org/mailman/listinfo/sqr-users