[Zkušenosti] Datová pole v objektu RichText

PříspěvekNapsal: 24.11.2009 09:45
od jan.havranek
Pokud je nějaké datové pole použité pouze v objektu RichText pomocí funkce MailMerge, může dojít k tomu, že se po uložení definice v běžném náhledu toto datové pole nedotahují.

Jedná o problém v optimalizátoru tisku. Ten nepočítá s atributy umístěnými uvnitř RichTextu.
Objekty TppDBText apod. mají vlastnost DataField, TppGroup má BreakName atd., odtud se sestavuje seznam použitých atributů. Stejně tak se prochází Calc a hledá se výskyt FieldObjects[‘XXX’], kde XXX je opět název atributu.
Z těchto údajů se potom vygeneruje omezený SELECT který plní pipeline, aby byl tisk rychlejší.
S datovými poli v RichTextu se (zatím) nepočítá, alespoň v kódu RPB je to tak napsané. Časem bude doplněno.

V tuto chvíli, pokud k situaci dojde, je třeba konkrétní datová pole použít ještě někde jinde, než pouze v RichTextu. Asi nejlepší varianta je tato pole prostě vyjmenovat na záložce Calc v nějaké události, ideálně v ReportBeforePrint. Stačí pouze metodou drag & drop přenést z datového stromu a oddělit středníky. Optimalizátor zjistí tato pole a přidá je do SELECTu pipeline.
datova_pole.jpg
datova_pole.jpg (130.97 KiB) Zobrazeno 3448 krát