BusinessObjects Board

Array in Crystal Report BeforeReading

Hello,

I got a Question. I will create an Array While Reading or Before Reading (not sure what might be better atm).


        dim i as number
        dim p() as number
        
        for i = 1 to Count({AUFDRUP_TXT.POSNUM})
            if not ({AUFDRUP_TXT.HiMi-IDNr} = "00") and not ({AUFDRUP_TXT.REZANT} = 100) then
                redim preserve p(i)
                p(i) = {AUFDRUP_TXT.POSNUM}
            end if
        next i
    
        Formula = minimum(p)

This is how my Formula Looks like. Now i Want to put it in the Header with BeforeReading for Example.

Header Part


beforereadingrecords
global pArr() as number
formula = pArr = 0

Detail Part


BeforeReadingRecords
Global pArr() as Number
Dim i as Number

    for i = 1 to Count({AUFDRUP_TXT.POSNUM})
        If Not ({AUFDRUP_TXT.HiMi-IDNr} = "00") And Not ({AUFDRUP_TXT.REZANT} = 100) Then 
            Redim Preserve pArr(i)
            formula = pArr(i) = {AUFDRUP_TXT.POSNUM}
        end if
    next i

But that doesn’t work. Does somebody know where my issue is?
It says that the Count() can’t be used and must be evaluted later.
Must I do the Count() in Beforehand?

Thanks for your help.


Sam85 (BOB member since 2018-09-20)

While I dont understand what exactly you are doing, I can tell you crystal reports process the report step by step. Go to below link to understand clearly.

https://flylib.com/books/en/2.423.1.53/1/

Count can not be done beforereadingrecords. The solution could be,
creating a subreport with a shared variable to get the count, placing that subreport on top of the current header section and use shared variables referring to the count in subreport to do your logic. You can give a try.


anil.ganga1 :us: (BOB member since 2007-07-04)