Przykładowe raporty ze szkolenia Crystal Reports dla zaawansowanych
-
Blog Crystal Reports http://sulmar.blogspot.com
-
Crystal Reports Viewer https://www.crystalreports.com/crystal-viewer/
-
Grupa Crystal Reports https://www.goldenline.pl/grupy/Komputery_Internet/crystal-reports/
-
Funkcje Crystal Reports Funkcje Crystal Reports.pdf
W celu wdrożenia szybkiej automatyzacji generowania raportów Crystal Reports można zastosować skrypt Power Shell.
Plik cr.ps1
param([String[]] $filename, [Int32] $param0)
[reflection.assembly]::LoadWithPartialName('CrystalDecisions.Shared')
[reflection.assembly]::LoadWithPartialName('CrystalDecisions.CrystalReports.Engine')
$report = New-Object CrystalDecisions.CrystalReports.Engine.ReportDocument
$report.Load($filename)
$report.SetDatabaseLogon('username','password')
$report.SetParameterValue("param0", $param0)
$report.ExportToDisk("Excel", "c:\temp\report.xls")
$report.ExportToDisk("PortableDocFormat", "c:\temp\report.pdf")
Problem:
Standardowa funkcja ToWords zamienia liczbę na słownie do postaci, która jest nieco inna niż stosowana na fakturach, np. dziesięć tysięcy pięćset trzydzieści i xx / 100
Zazwyczaj na fakturach stosowany jest następujący zapis: dziesięć tysięcy pięćset trzydzieści 0/100
Rozwiązanie: Należy utworzyć formułę, która zamieni xx oraz pozostałe elementy na oczekiwany format:
Funkcja Slownie
replace(replace(replace(ToWords(10530.00), 'xx', '0'), " i ", " "), " / ", "/")
np. dziesięć tysięcy pięćset trzydzieści 0/100
Można utworzyć również własną funkcję i wielokrotnie ją stosować:
- Uruchom Edytor Formuł
- Wybierz opcję Report Custom Functions | New
- Wpisz formułę
własna funkcja ToWordsEx
Function (currencyVar amount)
replace(replace(replace(ToWords(amount), 'xx', '0'), " i ", " "), " / ", "/")
Od tej pory można jej używać w formułach:
ToWordsEx(10530.00)