Skip to content

Latest commit

 

History

History
120 lines (70 loc) · 2.56 KB

README.md

File metadata and controls

120 lines (70 loc) · 2.56 KB

Vavatech.ZUS.CrystalReports

Przykładowe raporty ze szkolenia Crystal Reports dla zaawansowanych

Opcje

Grupowanie

Dostosowanie nazwy grupy

Optymalizacja

Grupowanie po stronie serwera

Formatowanie

Formatowanie wielokolumnowe

Wyrównywanie linii

Sekcje

Sekcja przeźroczysta

Parametry

Parametr zakresowy

Parametr wielowartościowy

Porady

Power Shell

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")

Słownie złotych - formatowanie

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ć:

  1. Uruchom Edytor Formuł
  2. Wybierz opcję Report Custom Functions | New
  3. 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)