Crsytal Reports kullanırken genellikle formüller içerisinde değişkenlere atarak hesaplama veya düzenleme işlemlerini yapmayı tercih ederim. Daha anlaşılır ve düzenli olmamı sağlar, aradığımı daha rahat bulabilirim.
Crsytal Reports içerisinde Global, Local ve Shared olmak üzere 3 farklı değişken kullanabiliriz. Anlatacağım örnekler Crsyta Syntax ile yazılmıştır.
Global Değişken:
Ana Rapor içerisinde tüm formüllerde kullanmak üzere tanımlama yapabiliriz. Subreport larda değişken çağıralamaz. Subrerportlarda aynı isimle farklı değişkene atayabilirsiniz.
1 2 3 4 5 6 |
//Formul A Global numberVar E:=40; //Formul B Global numberVar E; yada numberVar E; |
Formul A da E değişkeni 40 olarak atadım. Formul B değişkeni çağırdım ve 40 rakamını gösterecektir. Aynı değişkeni farklı formüllerde ana raporda kullanamazsınız. Fakat subreport içeriyor ise subreport formüllerinde kullanabilirsiniz.
Local Değişken:
Local değişken ana veya subreport içerisinde tek bir formülde kullanılır. Yani bir formül değişkenini farklı bir formülden erişemeyeceğiniz anlamına gelir. Subreportlarda veya farklı formüllerde aynı değişken ismini kullanabilirsiniz.
1 2 3 4 5 |
//Formul A Local numberVar E:=40; //Formul B Local numberVar E; E:=E+1; |
Formul A sonucu 40 iken Formul B sonucu 1 dir. Ayrı formüllerde aynı değişkeni farklı tiplerde kullanabilirsiniz.
1 2 3 4 |
//Formul A Local NumberVar E:=40; //Formul B Local stringVar E:="Erhan"; |
Formul A da 40 Formul B de Erhan olarak sonuçları görebilirsiniz.
Shared Değişken:
Shared değişkeni ana ve subreport lar arasında kullanılmaktadır. Örneğin subreportlardaki bir değeri diğer subreportlar veya ana raporda kullanmam gerektiğinde ihtiyaç duyarım. Shared değişkenine vermiş olduğunuz ismi ana veya subreportlarda aynı isimle kullanmamaya dikkat ediniz. subreport1 de Formul A ki değeri , anaraporda Formul B de kullanmak istiyorum.
1 2 3 4 5 6 7 |
//Formul A Shared numberVar X:=20; //Formul B Shared numberVar X; local numberVar Y:=3; Global numberVar Z; Z:=X*Y; |
Subreport içerisinde Formul A değeri 20 değerini ana raporda Formul B de çağırıp farklı bir değişken ile çarptım. Sonuç 60 olarak yansıyacaktır.
Değişken kullanımında Global ve Local değişken isimlerinde aynı ismi vermemeye dikkat ederim. Shared değişken kullanmış ise hangi subreporttan çağırıdığımın bilgisini commentlemiş şekilde yazmaya dikkat ederim. Ayrıca shared değişken subreport yada subreport un olduğu section hide edildiyse değişkeni kullanamazsınız.