2009-01-20 167 views
0

是的,仍然是在this questionthis other question中的報告。 是的,我知道,我是一個CR noob :-)無論如何,我已經仔細地瀏覽了Google,並且有很多關於如何使用共享變量的教程,但我似乎無法掌握它的工作原理,因爲我無法實現我需要的。Crystal Reports 8,共享變量和公式

這些是我的公式: (ActiveAttSaldo,在正值資產子報表中創建) whileprintingrecords; global numbervar att_saldo; att_saldo:= SUM({@ImportoEuroConto},{SP_EstrattoConto.TipoConto})

(PassSaldo,在負資產子報表創建) whileprintingrecords; global numbervar pass_saldo:= 0; pass_saldo:= SUM({@ImportoEuroConto},{SP_EstrattoConto.TipoConto})

(UtileSaldo,在主報告創建) whileprintingrecords; shared numbervar ut2_saldo; ut2_saldo:= {@AttSaldoShared} - {@ PassSaldoShared};

如果ut2_saldo> 0,則 '效用值:' + ToText(ut2_saldo) 否則如果ut2_saldo = 0然後 'Pareggio' 別的 '珀迪塔:' + ToText(ut2_saldo)

(PassSaldoShared,創建在主報告中) whileprintingrecords; global numbervar pass_saldo; pass_saldo; pass_saldo;

(AttSaldoShared,在主報告中創建) whileprintingrecords; global numbervar att_saldo; att_saldo;

的想法是有一個「最後的平衡」,但變量始終爲0,所以我總是看到「Pareggio」,而不是正確的值。所有的公式都正確放置:

  • ActiveAttSaldo被放置在組尾1(活性資產subrep) - 分組由「TipoConto」
  • PassSaldo被放置在組尾1(被動資產subrep) - 由TypoConto分組
  • UtileSaldo,AttSaldoShared和PassSaldoShared都在相同的部分,它是由CodiceSocieta(企業編碼,英語)分組組頁腳1B(在組頁腳1a中兩個子報表都存在)聲明。

據我所知,這應該是做事情的正確方法(但我可能是錯的,那是......:D),我無法確定問題的真正原因。 可以請你幫我嗎?

最好的問候,

安德魯

回答

1

好吧,我設法用6(SIX)的公式,兩個在報告的頂部聲明並初始化變量爲0(零),兩個用於每個子做報告來計算總和,最後在主要報告中顯示兩個實際顯示值:-)

無論如何,我們重新編寫了報告(感謝我們的一位SQLServer主服務器),現在幾乎所有的複雜性(子代表,共享變量) 消失了! woooooooo hooooooooooo! :-)

但是,我對這個事實沒有得到答案,其中一些問題仍然存在 - 但是 - 打開了,因爲我仍然不明白爲什麼,哦爲什麼!水晶會崩潰或者完全消失而不留下任何可能發生的暗示。沒有錯誤日誌我知道,並沒有明顯的跡象在事件查看器,沒有這將解釋這樣的怪人。

謝謝你的時間都是一樣的,

安德魯