Pytanie : Sumarize TopN wartość od działający suma w grupowy stopka Kryształ donosić 2008

Sir/Madam,

I chcieć the odgórny trzy wartość znajdować w the bieg suma przedmiot I mieć w the grupowy stopka mój kryształ raport i umieszczać ten uroczysty suma w the raportowy stopka.  I móc dwadzieścia grupa, ale I tylko chcieć the odgórny 3 wartość znajdować w the bieg suma I tworzyć w the raportowy stopka.  I znać to być multipass \ cenienie zagadnienie - ale z pewnością ale móc done.

Odpowiedź : Sumarize TopN wartość od działający suma w grupowy stopka Kryształ donosić 2008

I wciąż myśleć mój pomysł musieć, ale dopóki ty zakładać rozwiązanie.

 > I mówić niezdarny, ponieważ everytime I chcieć the
 > TopN wartość I musieć ruchliwie odmienianie mnóstwo formuła:

 Być "zmiana the TopN wartość" raport the odgórny wartość ty chcieć wpólnie, lub być może właśnie ile grupa być w the raport?  Lub sposób, ono musieć problem (do punkt).

 Twój pierwszy formuła używać Redim the rozmiar the szyk 4, i 4 nigdy zmieniać w the formuła ten ty wysyłać.  Jeżeli twój raport mieć więcej niż 4 grupa, ty dostawać niż błąd.  Być może ty robić robić który nigdy mieć więcej niż 4 grupa na raport, jak the 4 legowisko w rok.  Inaczej, ty musieć dla więcej grupa.

 Jednokierunkowy który być po prostu the liczba w the Redim the maksymalna liczba grupa który ty myśleć ty kiedykolwiek mieć na raport.  Dynamiczny opcja być the rozmiar the szyk konieczny.  Formuła, właśnie zmieniać twój drugi formuła podążać:

//array oceniać w grupowy stopka
WhilePrintingRecords;
numberVar szyk RT;
jeżeli GroupNumber > Liczyć (RT) wtedy
  Redim Prezerwa RT [GroupNumber];
RT [GroupNumber]: = tonumber ({#period brutto});


 Ten słuszny uses Redim Prezerwa RT gdy konieczny.  The Prezerwa opcja utrzymywać the aktualny zawartość (punkt the wartość przechować do ten punkt).

 Jeżeli the liczba grupa na the raport być koncern, punkt musieć opieka ono, do punkt.  The ograniczenie tutaj być że szyk móc tylko 1000 element, więc jeżeli ty kiedykolwiek mieć raport z więcej niż 1000 grupa, który być problem.  Ale ponieważ the ograniczenie using twój aktualny formuła być 4, I zgadywać że ograniczenie 1000 prawdopodobnie być problem.  -)


 Jeżeli ty dotyczyć o the formuła wpólnie dodawać dodawać the odgórny 3 wartość, wartość być wartość że ty musieć z, ale ty móc ono.  Gdy ono być teraz, the finał formuła sortować the wartość w the szyk od niski wysoki i dodawać wpólnie the definitywny 3 wartość, i ono tylko praca jeżeli tam  być dokładnie 4 grupa na the raport (Che przynosić z powrotem ten wczesny pytanie, robić twój raportowy _always_ mieć 4 grupa na ono?).  Ty móc móc trochę the wartość od wysoki niski i dostawianie wpólnie the pierwszy 3 wartość.  Ten sposób ono liczyć się ile element być w the szyk (ie. ile grupa być na the raport).  Właśnie dodawać wpólnie the pierwszy N element twój suma.  To być pradopodobnie troszkę prosty dostawianie wpólnie the ostatni N.

 The szyk od wysoki niski, właśnie zmieniać ten linia w the definitywny formuła

jeżeli RT [counter2] > RT [counter2 + (1)] wtedy

   to

jeżeli RT [counter2] < RT="">
 IOW, zmieniać the > <>
 Wtedy zmieniać the ostatni linia:

dodawać: = RT [(1)] +RT [2] +RT [3]


 FWIW, ono być prawdziwy mniejszościowy rzecz, ale the dodawać zmienna w ten formuła serw żadny prawdziwy cel.  Ty móc właśnie ono i the definitywny linia móc:

RT [2] +RT [3] +RT [4] // Twój oryginalny formuła

RT [(1)] +RT [2] +RT [3] // Mój wersja


 Także, gdy ty nawiązywać do "zmieniać mnóstwo formuła", być ty być może formuła jak the ty ty wysyłać wpólnie the topN wartość dla więcej niż jeden pole, i ty opowiadać o the formuła dla opowiadać tamte pole jeżeli ty chcieć N?

 Jeżeli w ten sposób, ty móc móc the N w formuła i ten formuła w the formuła który dodawać wpólnie the wartość.  Na przykład, tworzyć formuła wymieniać topN który właśnie mówić

3

 Inny opcja być the 3 w zmienna w the formuła w twój raportowy chodnikowiec.  Lub sposób, ty wtedy używać ten formuła/zmienna w twój definitywny formuła.  Jak ty używać ono zależeć na jak twój szyk sortować.  Jeżeli ty sortować ono w malejący rozkaz, gdy I sugerować, then ty chcieć wpólnie the pierwszy N wartość i ty móc właśnie the definitywny linia the definitywny formuła z móc:

jeżeli {@topN} < Array="">  Redim Prezerwa RT [{@topN}];
Suma (RT)

 Ten słuszny mówić że jeżeli the szyk mieć więcej element ty (eg. ono mieć 4 element i ty tylko the odgórny 3), then używać Redim Prezerwa the szyk mały, odrzucać the niechciany wartość.  Jeżeli the szyk właściwie mieć mniej element ty (eg. ono mieć 3 element i ty the odgórny 4), ono przeszkadzać z the Redim.  Żadny punkt w więcej element który właśnie być (0).
 Wtedy ono właśnie używać Suma wpólnie dodawać opuszczać w the szyk.

 Właściwie, nawet jeśli ty używać the topN formuła/zmienny pomysł, używać móc dobry sposób the liczba wartość.  The ostatni linia móc:

jeżeli 3 < Array="">  Redim Prezerwa RT [3];
Suma (RT)


 Jeżeli ty chcieć ile wartość dodawać, właśnie zmieniać tamte dwa 3 the nowy wartość.


 OK, I zgadywać który musieć ty dosyć dalej.  -)

 James
Inne rozwiązania  
 
programming4us programming4us