+1 800 256 3608 (toll-free in North America) or +49 7531 9060-10| service@combit.com

Problem mit GetVar

Hallo,

ich verwende SetVar / GetVar um einen globalen Schalter zu setzen. Die Variable wird im Tabellenkopf gesetzt und kann dort auch korrekt gelesen werden. In den Datenzeilen und Fusszeile wird die Variable ebenfalls verwendet. Der Schalter steuert ob eine Spalte ausgegeben wird.

Das Problem ist allerdings, das GetVar in der ersten Zeile NULL als Ergebnis zurückgibt. Alle folgenden Zeilen und der Fuß sind OK.

Version ist LL25 SP4

Es besteht hier ein Zusammenhang mit der Eigenschaft DelayTableHeader. Diese beschreibt, ob der Kopf einer Tabelle bei dem Aufruf von LlPrint(), oder erst bei dem ersten Drucken einer Datenzeile (LlPrintFields()) gedruckt werden soll:

TRUE: erst bei LlPrintFields() (Voreinstellung).

FALSE: schon bei LlPrint(). Falls Felder in der Kopfzeile verwendet werden, muss der Inhalt schon vor dem 1. LlPrint übergeben worden sein.

In Ihrem Fall müssten Sie daher die Eigenschaft auf „FALSE“ setzen, damit die Kopfzeile schon vor der ersten Datenzeile gedruckt wird. Unter .NET können die einfach die entsprechende Eigenschaft setzen. Ansonsten per LlSetOption:

LlSetOption(hjob, LL_OPTION_DELAYTABLEHEADER, 0)

Ich habe die von Ihnen vorgeschlagene Anpasung vorgenommen, das beschriebene Verhalten ändert sich allerdings nicht.

Der Kopf wird auch Problemlos gedruckt, im Kopf lässt sich der Wert der Variable mit GetVar auslesen - nur nicht in der ersten Tabellenzeile…

Wir haben hier die mögliche Ursache für dieses Verhalten gefunden. Der Workaround für Sie wäre „DatabindingMode“ auf „Compatible“ zu schalten. Das Problem wurde für die Version 26 gefixt. Falls Sie Interesse an dem Fix haben, würde ich Sie bitten in unserem Supportportal unter https://www.combit.net/supportportal/ einen Support-Case eröffnen.

Vieln Dank für die Information, ist der Fix denn in der aktuell verfügbaren Version 26 bereits enthalten oder erst in dem angekündigten Servicepack ?

Ich würde dann den Bericht zunächst unter V26 testen und dann ggf. ein Ticket eröffen…

Das Servicepack 26.001 ist seit gestern verfügbar :slight_smile: - da hat es der Fix nicht mehr reingeschafft. Sie könnten aber einen Hotfix vom Support erhalten, regulär werden wir die Änderung mit 26.002 ausliefern.

Hallo,
ich weiß nicht, ob ich einen verwandten Fehler habe oder mich einfach nur doof anstelle. Wir benutzen LL23 in der pA Version. Ich kann also keine Standalone-Beispiele liefern.
eigentlich wollte ich nur das setvar/getvar testen. Dazu habe ich ein Textfeld eingefügt, das hat zwei Zeilen:
SetVar(“test”,“1”,true)
nullsafe(getvar(“test”),“2”)
Warum funktioniert das nicht? Was mache ich falsch? Die erste Zeile liefert wie zu erwarten “1”. Die zweite Zeile nichts. Wenn ich die zweite Zeile zu nullsafe(getvar(“test”),“2”) +“testtext” ändere, bekomme ich immerhin “test” zurück, d.h. die Variable “test” ist leer, weil wenn ich einen Fehler hätte, würde ich ja den “testtext” nicht zurückbekommen?

Vielen Dank schon jetzt für die Hilfe.

Mit freundlichen Grüßen
Karl Schneider

© combit GmbH