Autor Téma: Ravereport - lokalizácia  (Přečteno 6165 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Ravereport - lokalizácia
« kdy: 25-07-2012, 10:14:41 »
Chcem poslovenčiť RaveReport. V D7 som vytvoril súbory *.pas (ani neviem ako) a tam so to urobil.
Teraz sa mi to nedarí. Prepisovanie textu v *.dfm nevedie k cieľu.
Ako na to? Sú tam súbory *.dcu, *.dfm a *.hpp
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline mirus

  • Mladík
  • **
  • Příspěvků: 57
  • Karma: 11
    • Verze Delphi: Delphi 10.2
Re:Ravereport - lokalizácia
« Odpověď #1 kdy: 25-07-2012, 11:20:37 »
Myslím, že stačí přidat cestu s DFM soubory do Source Path nebo Library Path a zkompilovat. Kdysi jsem to dělal nejsem si teď úplně jist.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #2 kdy: 26-07-2012, 07:23:11 »
Včera večer som s tým skúšal niečo robiť.
Ak otvorím priamo *.dfm, tak sa s tým nedá nič robiť.
Ak založím projekt, tak tam môžem pridať iba *.pas, ktoré nemám. Pridanie iných typov nemá žiaden účinok.
RaveReport nie je Delphi program, ale sada formulárov a "príslušenstva.

Iná rada?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline mirus

  • Mladík
  • **
  • Příspěvků: 57
  • Karma: 11
    • Verze Delphi: Delphi 10.2
Re:Ravereport - lokalizácia
« Odpověď #3 kdy: 26-07-2012, 08:06:55 »
Tak jsem si to teď vyzkoušel v Delphi XE2
Můžeš zkusit upravit dfm soubory programem dfmedit (www.mitec cz) a uložit zpět do složky RaveReports\Lib. A ani jsem nemusel přidávat cestu jak jsem psal minule. Pak stačí udělat znovu build.
Ty původní DFM soubory jsou v binární podobě. Pokud je chceš upravovat v textovém editoru tak se musí překonvertovat programem convert.exe ze složky ve které je bds.exe. DFM v textové podobě se už nemusí nutně převádět zpět do binární podoby. V textovém editoru použít kódování diakritiky středoevropské CP1250.

Tip: Caption formuláře setup se nastavuje v komponentě RvSystém. Nebere se z DFM souboru.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #4 kdy: 26-07-2012, 09:31:41 »
Pak stačí udělat znovu build.
Tým myslíš otvoriť *.rav priamo z Delphi a dať uložiť môj *.rav? O ničom inom neviem.

Ty původní DFM soubory jsou v binární podobě.
To viem. Otváram ich priamo v Delphi. Je tam možnosť v popup File Forma -> Text Form. Len neviem ako postupovať, ak vyberiem túto možnosť.
Pokiaľ by tu bola možnosť, tak by som jej dal prednosť. Ináč použijem Tebou odporúčaný program.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline mirus

  • Mladík
  • **
  • Příspěvků: 57
  • Karma: 11
    • Verze Delphi: Delphi 10.2
Re:Ravereport - lokalizácia
« Odpověď #5 kdy: 26-07-2012, 10:14:11 »
Build jsem myslel jako znovu zkompilovat aplikaci klávesou F9 (v Delphi). S *.rav soubory to nemá nic společného.

Samotné DFM v delphi otevřeš jenom jako textový soubor.
Podle mne by si musel mít i zdrojový PAS soubor k tomu DFM, aby šlo upravovat v design módu a otevírat to přes PAS soubor.
Pomocí toho programu dfmedit si můžeš i pohodlně upravit velikosti komponent na formuláři jako v design módu a nepotřebuješ PAS soubor.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #6 kdy: 26-07-2012, 11:11:44 »
// Build jsem myslel jako znovu zkompilovat aplikaci klávesou F9 (v Delphi). S *.rav soubory to nemá nic společného.
To mám vyskúšané. Tak to nefunguje. Musím otvoriť svoje zostavy a dať uložiť. Takto sa prejavia zmeny vykonané v *.dfm.
So samotnou aplikáciou nie je nutné nič robiť.
Ďakujem za rady. Večer to vyskúšam.

Poznámka: Pri priamej úprave *.dfm mám problém s rozhádzanou diakritikou. Tak to bolo aj v D7.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline mirus

  • Mladík
  • **
  • Příspěvků: 57
  • Karma: 11
    • Verze Delphi: Delphi 10.2
Re:Ravereport - lokalizácia
« Odpověď #7 kdy: 26-07-2012, 12:24:46 »
Možná tím jak dáš uložit sestavy, tím donutíš linker aby znovu přidal *.dfm soubory k aplikaci pokud používáš property StoreRAV v TRvProject pro ukládání souboru sestav RAV.
Je to jenom o tom udělat Clean projektu (smažou se zkompilované unity *.dcu) a při dalším Build se vše znovu sestaví a změny provedé v DFM se přilinkují do projektu.
Doporučuji po změnách v DFM udělat Clean, Build v menu Projekt.

DFM editované v PSPadu po kodování Windows 1250 jsou dobře čitelné v aplikaci. Delphi editor používá jiné kódování myslím, že UTF-8. Také se mi funkční DFM soubory v WINDOWS-1250 při otevření v delphi editoru zmrší lokalizované texty.
Ve finále je funkční DFM v kódování Windows-1250 v kompilovaném projektu.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #8 kdy: 26-07-2012, 12:40:53 »
Skúsil som dfmedit (použil som ť ) a vyzerá to v poriadku.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #9 kdy: 27-07-2012, 08:20:14 »
Máš pravdu. Build sa musí použiť.
Mám jednu kozmetickú chybu
Label.Caption : = 'of 10';

Potrebujem 'z 10'. Problém je v tom, že text sa generuje dynamicky. Je nejaká možnosť prepasírovať tam "z" namiesto "of"?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline mirus

  • Mladík
  • **
  • Příspěvků: 57
  • Karma: 11
    • Verze Delphi: Delphi 10.2
Re:Ravereport - lokalizácia
« Odpověď #10 kdy: 27-07-2012, 10:33:25 »
Nevím co máš přesně na mysli, ale myslím, že se to dá pomoci pomocí property TRvSystem.SystemFiler.StatusText (popř. StatusFormat).
Je to TStrings a myslím, že se dává na každý řádek nějaká forma toho textu, ale nikdy jsem to nepotřeboval.
Dost se toho dá ovlivnit upravením komponenty TRvSystem.
Pozn. Samozřejmě ty lokalizace fungují pouze u spuštěné aplikace. V delphi návrhu a náhledu je to původní v angličtině.

Raději použij jiný generátor sestav. Třeba FastReport.
Od RaveReports jsem utekl.
a) nelze vyexportovat PDF s českýmy znaky v BE verzi (použil jsem potom export přes eDocEngine od Gnostice, abych si pomohl)
b) fastreport je opravdu rychlejší a lépe se lokalizuje.

- u Rave reportu jsem si stejně udělal vlastní preview form, setupform jsem nepoužíval.
- u FastReportu není problém s češtinou v sestavách.
- fast report dokáže dělat i sestavy pro jehličkové tiskárny. lépe se tam skriptuje v sestavě než u rave reports.
- u rave reports mi po upgradech delphi nastávaly problémy v sestavách které obsahovaly skripty.
Jestli to myslíš vážně s reporty, tak se RaveReports určitě vyhni.

FastReport jsem si koupil v plné verzi a je tam i Designer, který se může nabídnout v programu. A vyjde to levněji, než koupit plný RaveReports a ještě je to v DLL knihovně.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #11 kdy: 27-07-2012, 11:20:52 »
Ja som sa raz pýtal čo uprednostniť. Nebola žiadna reakcia.
To je existujúci projekt a prerábať zostavy je v tomto prípade nezmysel. Lokalizácia bola podstatne jednoduchšia.

V nových projektoch som sa rozhodol pre  FastReport. Jeden z dôvodov je aj práca priamo v Delphi. V RaveReport to bol trest. Napr. písať podmienky pre farbu textu, sčítavať hodnoty - musí byť dodržané poradie.

Som amatér. Väčšinou mi stačia free verzie. Ak by mi nestačili tak si to viem aj kúpiť. Rád kupujem veci, ktoré potom nevyužijem. Som rád, že si mi potvrdil moje rozhodnutie.

K samostatnému problému.

Vo formulári v nejakej udalosti (napríklad predchádzanie strán zostavy) sa generuje (zjednodušene) niečo také
Label.Caption := 'of ' + IntToStr(Page);

A v *.dfm samotný kód nie je dostupný. Myslím tým DFMEdit a Delphi. V D7 som si nejako vytvoril *.pas. V DXE2 to neviem.
Neviem či by bolo niečo možné pomocou PSPad a jemu podobných. Nie som programátor. Som samouk.

Ide o náhradu textu  'of '
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline mirus

  • Mladík
  • **
  • Příspěvků: 57
  • Karma: 11
    • Verze Delphi: Delphi 10.2
Re:Ravereport - lokalizácia
« Odpověď #12 kdy: 27-07-2012, 15:02:07 »
Asi to půjde jedině.
Vytvorit proceduru pro event v komponentě TRvSystem.OverridePreview.

Kód: Delphi [Vybrat]
  1. procedure TForm1.RvSystem1OverridePreview(ReportSystem: TRvSystem;
  2.   OverrideMode: TOverrideMode; var OverrideForm: TForm);
  3. begin
  4. case
  5.     OverrideMode of
  6.     omCreate:
  7.       begin
  8.         OverrideForm := TRavePreviewForm.Create(nil);
  9.         OverrideForm.Caption := ReportSystem.TitlePreview;
  10.         (OverrideForm as TRavePreviewForm).ReportSystem := ReportSystem;
  11.       end;
  12.     omShow:
  13.       begin
  14.           ReportSystem.SystemPreview.InitPreview((OverrideForm As TRavePreviewForm).RvRenderPreview);
  15.           If Assigned(ReportSystem.OnPreviewSetup) Then
  16.           Begin
  17.             ReportSystem.OnPreviewSetup((OverrideForm As TRavePreviewForm).RvRenderPreview);
  18.           End; { if }
  19.           (OverrideForm As TRavePreviewForm).RvRenderPreview.InputFileName := ReportSystem.SystemFiler.Filename;
  20.           (OverrideForm As TRavePreviewForm).RvRenderPreview.NDRStream := ReportSystem.SystemFiler.Stream;
  21.           (OverrideForm As TRavePreviewForm).RvRenderPreview.Active:=True;
  22.           (OverrideForm As TRavePreviewForm).PageLabel.Caption:='z ' + IntToStr((OverrideForm As TRavePreviewForm).RvRenderPreview.Pages);
  23.  
  24.           (* *)
  25.           If soPreviewModal In ReportSystem.SystemOptions Then
  26.           Begin
  27.              (OverrideForm As TRavePreviewForm).ShowModal;
  28.           End
  29.           Else
  30.           Begin
  31.              (OverrideForm As TRavePreviewForm).Show;
  32.           End; { else }
  33.       end;
  34.     omWait:
  35.       begin
  36.           If Not (soPreviewModal In ReportSystem.SystemOptions) Then
  37.           Begin
  38.               // Wait for close
  39.               Repeat
  40.                    Sleep(250);
  41.                    Application.ProcessMessages;
  42.               Until Not OverrideForm.Visible;
  43.           End; { if }
  44.       end;
  45.     omFree:
  46.       begin
  47.         OverrideForm.Free;
  48.       end;
  49.   end;
  50. end;
  51.  

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #13 kdy: 27-07-2012, 16:04:09 »
Vôbec tomu nerozumiem, ale tu predpokladám preklep  omCreate: omShow: - onCreate: onShow:
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2482
  • Karma: 131
    • Verze Delphi: D2007, XE3, DX10
Re:Ravereport - lokalizácia
« Odpověď #14 kdy: 27-07-2012, 16:22:49 »
Vôbec tomu nerozumiem, ale tu predpokladám preklep  omCreate: omShow: - onCreate: onShow:

Ale ne, to om je prefix odvozeny z Override Mode -> pojmenovani clenu z vyctoveho typu TOverrideMode

Offline Sender

  • Plnoletý
  • ***
  • Příspěvků: 184
  • Karma: 5
    • Verze Delphi: Delphi 7 Prof.
Re:Ravereport - lokalizácia
« Odpověď #15 kdy: 27-07-2012, 20:13:13 »
Lze dostat nějak do Rave diakritiku ? V D7 s tím mám problémy.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #16 kdy: 28-07-2012, 09:05:29 »
V akom zmysle? Kde presne? V zostavách som s tým problém nemal.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #17 kdy: 28-07-2012, 14:15:33 »
Tak som skúsil tú procedúru. "z" tam je, ale nezobrazí sa samotná zostava. Formulár je prázdny.

(OverrideForm As TRavePreviewForm).RvRenderPreview.InputFileName := ReportSystem.SystemFiler.Filename;

Filename nemá priradenú hodnotu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Sender

  • Plnoletý
  • ***
  • Příspěvků: 184
  • Karma: 5
    • Verze Delphi: Delphi 7 Prof.
Re:Ravereport - lokalizácia
« Odpověď #18 kdy: 28-07-2012, 18:36:20 »
S diakritikou jsem měl (pořád mám) při ukládání za pomoci komponenty RvRenderPDF do PDF souboru.
(používám D7 prof)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #19 kdy: 29-07-2012, 15:46:35 »
Report už zobrazím. Len to má jednu chybu. Pri listovaní zostavou sa vždy aktualizuje
(OverrideForm As TRavePreviewForm).PageLabel.Caption
a tak sa tam objaví "of".
Pokiaľ nejakým spôsobom nezískam *.pas, tak tam nechám "of".
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #20 kdy: 29-07-2012, 15:48:32 »
to Sender - žiaľ nie si sám. Pozri sa do archívu. V minulosti sa tomu venovali.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Sender

  • Plnoletý
  • ***
  • Příspěvků: 184
  • Karma: 5
    • Verze Delphi: Delphi 7 Prof.
Re:Ravereport - lokalizácia
« Odpověď #21 kdy: 29-07-2012, 15:59:27 »
jj,archiv jsem prohlížel několikrát.Experimenty s Rave taky,ale bez úspěchu.Vyřešil jsem to stažením komponenty která umí tisk do PDF bez externích zdrojů.
Myslel jsem spíš to tak,jestli už to někdo s tím Rave nevyřešil...

Offline mirus

  • Mladík
  • **
  • Příspěvků: 57
  • Karma: 11
    • Verze Delphi: Delphi 10.2
Re:Ravereport - lokalizácia
« Odpověď #22 kdy: 04-08-2012, 21:31:28 »
to Sender. Jak jsem již psal dříve komponetou RvRenderPDF se nezdaří vyexportovat sestavu s českou diakritikou. Řešil jsem to napojením RaveExportem v komponentách GNostice eDocEngine. Také jsem hodně hledal a nenašel jsem funkční řešení přímého exportu sestavy do PDF komponentou RvRenderPDF. Je to způsobeno snad fontem ve vegenrovaném PDF. Snad po úpravě zdrojáků prý by to snad mělo jít, ale to chce si koupit Rave BEX (se zdrojovými kódy).

Offline mirus

  • Mladík
  • **
  • Příspěvků: 57
  • Karma: 11
    • Verze Delphi: Delphi 10.2
Re:Ravereport - lokalizácia
« Odpověď #23 kdy: 04-08-2012, 22:29:30 »
To Stanislav hruška: Vyřešil jsem to vlastním preview formulářem a měl jsem preview v celé své režii. Pomocí té procedury OverridePreview se nastaví vlastní previewform.

Tohle vygeneruje náhled. Mám to až ve svém PreviewFormu v onShow, proto nefungoval výňatek kódu minule.
Kód: Delphi [Vybrat]
  1. ..
  2. RvRenderPreview.RenderPage(1);
  3. ..
  4.  
Ta lokalizace asi bude řešitelná pouze přes vlastní preview form.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4113
  • Karma: 36
    • Verze Delphi: XE7 professional
Re:Ravereport - lokalizácia
« Odpověď #24 kdy: 06-08-2012, 09:07:38 »
Zobrazenie som vyriešil pomocou Repaint. Nakoniec som sa rozhodol na to of vykašľať.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.