Autor Téma: TMS TDBAdvRichEditor - FastReport  (Přečteno 220 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4643
  • Karma: 40
    • Verze Delphi: XE7 professional
TMS TDBAdvRichEditor - FastReport
« kdy: 06-12-2019, 21:51:16 »
V krátkej dobe to je už tretia vec, ktorá mi bráni v práci.
Pred dávnejším časom som sa naťahoval s TMS ohľadom RTF. Zvalili to na nesprávnu kódovú stránku. Teraz som prešiel na DB komponenty. Takže formuláre mi fungujú ako majú.
Ale FastReport 6.0 mi nezobrazí správne obsah. Do TfrxRichView vložím [ReportText."CONTENT"] a vždy sa mi zobrazí:
Kód: Delphi [Vybrat]
  1. TPFO
  2. TStateSaver
Bez ohľadu na obsah poľa.
Jedná sa FB a pole BLOB. Nikde nie sú žiadne nastavenia, voľby. Či už TMS alebo FR. Ak text z TMS skopírujem do Word-u, tak je OK.
Prosím, čo s tým?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4643
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #1 kdy: 06-12-2019, 22:15:27 »
Bolo by riešením uložiť RTF do VarChar? Prešiel som návody, demá i internet a nikde som nič nenašiel.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 554
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #2 kdy: 07-12-2019, 00:20:06 »
V krátkej dobe to je už tretia vec, ktorá mi bráni v práci.
Pred dávnejším časom som sa naťahoval s TMS ohľadom RTF. Zvalili to na nesprávnu kódovú stránku. Teraz som prešiel na DB komponenty. Takže formuláre mi fungujú ako majú.
Ale FastReport 6.0 mi nezobrazí správne obsah. Do TfrxRichView vložím [ReportText."CONTENT"] a vždy sa mi zobrazí:
Kód: Delphi [Vybrat]
  1. TPFO
  2. TStateSaver
Bez ohľadu na obsah poľa.
Jedná sa FB a pole BLOB. Nikde nie sú žiadne nastavenia, voľby. Či už TMS alebo FR. Ak text z TMS skopírujem do Word-u, tak je OK.
Prosím, čo s tým?
Neviem nič o FastReporte. Ani nemám naštudovaný TMS komponent TDBAdvRichEditor.
Ale na druhej strane  TDBAdvMemo mi funguje s databázou perfektne a presne podľa návodu.
Preto jediné, čo môžem poradiť je, že vyskúšať čisté TMS riešenie:
  • TDBAdvRichEditor a
  • databáza
To musí chodiť ako hodinky. Vkladanie aj čítanie.
A až potom keď bude prvý problém 100% zvládnutý, prejsť na kombináciu TMS + FastReport.

PS
Osobne, z princípu žiadne db reporty nepoužívam.
Už veky všetko preklápam do Excelu. S tým si bohate vystačím.
V Delphi tých reportov bolo neúrekom.. Netrúfam si napísať ani číslo. Nieže ich všetky vymenovať. Preto som rezignoval pred veľa rokmi.
A ešte či je platený, neplatený, napolovicu platený.. brr..


Offline miroB

  • Guru
  • *****
  • Příspěvků: 554
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #3 kdy: 07-12-2019, 00:30:01 »
Bolo by riešením uložiť RTF do VarChar? Prešiel som návody, demá i internet a nikde som nič nenašiel.
DbAdvMemo mám vo Varchar. Je to síce trochu iné kafe, pretože AdvMemo číta obyčajný text a potom ho na mieste preformátuje (Highlighter/Zvýrazňovač)
Ale vyskúšal by som s Varchar aj DbAdvRichEdit. Nie je vylúčené, že pofrčí ako potrebuješ. Stále však netuším, kde sa do toho zapája FR.
Iná vec je, že aspoň niečo ti pôjde. Ako prvý krok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4643
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #4 kdy: 07-12-2019, 08:00:16 »
Keď som použil štandardný RichEdit a sám si to uložil a načítal z DB, tak všetko fungovalo ako malo. Formuláre i FR zostavy.
Nahodil som AdvRichEdit a nenačítaval to korektne. Ale uložil to čo som napísal. FR OK.
Teraz DBAdvRichEdit. Formuláre OK ale FR zostavy totálny nezmysel.
Keď si to uložím do Varchar, tak určite prídem o možnosť uložiť tam obrázok (skenovaný podpis).
.
Keď mi tu nikto neporadí, tak asi budem musieť urobiť nejakého mačkopsa. A hádať sa. Ale s kým? TMS či tvorcami FR?
« Poslední změna: 07-12-2019, 08:02:24 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4643
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #5 kdy: 07-12-2019, 08:46:57 »
TMS musí používať nejaký čudný Stream. Nahodil som štandardný DBRichEdit a mám Invalid stream format. To isté som mal, ak som tam uložil údaje ja a mal ich načítať TMS.
Nerozumiem tomu. Asi to nikto nepoužíva :)  Veď za niečo také by ich užívatelia ukameňovali.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4643
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #6 kdy: 07-12-2019, 11:43:43 »
Nakoniec som podľa všetkého našiel riešenie. Spočíva v použití TAdvRichEditor spolu s TDBAdvRichEditorRTFIO.
Neviem načo tam potom majú TDBAdvRichEditor?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 554
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #7 kdy: 07-12-2019, 23:01:25 »
Nakoniec som podľa všetkého našiel riešenie. Spočíva v použití TAdvRichEditor spolu s TDBAdvRichEditorRTFIO.
Neviem načo tam potom majú TDBAdvRichEditor?
V demo DBAdvRichEditorDemo od TMS, keď napojím na databázu
  • TDBAdvRichEditor, tak to pekne funguje aj z obrázkami. Keď sa už pre teba trápim, tak som si tam pridal na skúšku aj holú babu od Helmuta Newtona
  • To čo popisuješ: "TPFO
    TStateSaver" sa stane, keď napojím miesto dbadvrichedit, komponentu TDBAdvMemo
Takže príslušné TMS demo za mňa funguje na 100%
Neviem ako v kombinácii s FR. Ale s tým ti musí pomôcť niekto iný.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4643
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #8 kdy: 08-12-2019, 10:17:13 »
Tu je vysvetlenie od TMS. Ja som to pred niekoľkými rokmi čítal. No kto si to má pamätať. Hlavne ak s tým nerobí:
.
TDBAdvRichEditor persists the data in binary format (RTE format) in a blob field, so a binary blob field is needed. This is by design.
If you do not wish to use a binary blob, you can use TAdvRichEditor and use TDBAdvbRichEditorRTFIO to persist to a text blob in RTF format.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 554
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #9 kdy: 08-12-2019, 12:03:35 »
V krátkej dobe to je už tretia vec, ktorá mi bráni v práci.
Pred dávnejším časom som sa naťahoval s TMS ohľadom RTF. Zvalili to na nesprávnu kódovú stránku. Teraz som prešiel na DB komponenty. Takže formuláre mi fungujú ako majú.
Ale FastReport 6.0 mi nezobrazí správne obsah. Do TfrxRichView vložím [ReportText."CONTENT"] a vždy sa mi zobrazí:
Kód: Delphi [Vybrat]
  1. TPFO
  2. TStateSaver
Bez ohľadu na obsah poľa.
Jedná sa FB a pole BLOB. Nikde nie sú žiadne nastavenia, voľby. Či už TMS alebo FR. Ak text z TMS skopírujem do Word-u, tak je OK.
Prosím, čo s tým?
Odpoveď vidím skôr v tom, čo som uviedol v mojom predošlom príspevku.
Že TPFO|TStateServer (viď citovaný originál ) je výsledkom napojenia TAdvMemo, namiesto napojenia TDBAdvRichEditor.
Pre daný účel boli teda zamenené komponenty.
Pod napojením, myslím napojenie na databázu.
Takže by sa hodilo "Accepted Solution" ako v SO. Alebo stačí aj ďakujem

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4643
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #10 kdy: 08-12-2019, 12:53:19 »
Neviem či Ti celkom rozumiem. Môj pohľad na vec:
  • TDBAdvRichEditor ukladá údaje vo formáte RTE - natívny formát pre binárne údaje
  • Aby som dostal do BLOB RichText, tak musím použiť kombináciu TAdvRichEditor + TDBAdvRichEditorRTFIO
  • TDBAdvRichEditorRTFIO zaisťuje (ako to nakoniec vypláva aj z názvu) napojenie na DB a uloženie/načítanie RTF
  • TMS nemá komponent na priame uloženie RTF do DB. To som si uvedomil až teraz
  • FR frxRtf... (či ako sa to menuje) pracuje len s RTF a nie s binárnymi údajmi
  • Predpokladám, že TPFO a TStateSaver sú začiatkom binárnych údajov. Hlavička
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 554
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #11 kdy: 08-12-2019, 13:39:29 »
Neviem či Ti celkom rozumiem. Môj pohľad na vec:
  • TDBAdvRichEditor ukladá údaje vo formáte RTE - natívny formát pre binárne údaje
  • Aby som dostal do BLOB RichText, tak musím použiť kombináciu TAdvRichEditor + TDBAdvRichEditorRTFIO
  • TDBAdvRichEditorRTFIO zaisťuje (ako to nakoniec vypláva aj z názvu) napojenie na DB a uloženie/načítanie RTF
  • TMS nemá komponent na priame uloženie RTF do DB. To som si uvedomil až teraz
  • FR frxRtf... (či ako sa to menuje) pracuje len s RTF a nie s binárnymi údajmi
  • Predpokladám, že TPFO a TStateSaver sú začiatkom binárnych údajov. Hlavička
Teraz som pochopil o čo ti ide.

Môžeš ísť aj cestou TMS s ich TDBAdvRichEdit, ten je sebestačný (čítanie aj zápis), až po hranicu s FR.
Pre export do FR môžeš potom využiť udalosť vyťahovania RTE z databázy a tam použiť RTFIO na trasnformáciu na RichText.
Vychádzam z toho, že FR len číta a už nezapisuje späť do DB.
Takže toto by bola najmenej bolestná cesta.

Že TMS odkladá do db vo formáte RTE, ti niekto písal už v predošlých tvojich príspevkoch. To si myslím vedel.
« Poslední změna: 08-12-2019, 13:44:04 od miroB »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4643
  • Karma: 40
    • Verze Delphi: XE7 professional
Re:TMS TDBAdvRichEditor - FastReport
« Odpověď #12 kdy: 08-12-2019, 13:44:43 »
Vedel, ale dávno zabudol ;)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.