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

Fragen zum DrawUserObject-Event


(Guest) #1

Hi Leute,
ich habe eine Problem mit dem DrawUserObject-Event.

Ich habe ein Grafikobject in einer Tabellenspalte eines Listenreports
eingebaut.
Wenn nun beim Erstellen des Reports die Tabelle durchlaufen wird und die
Spalte mit dem Grafikobject an der Reihe ist,
wird ja das Event "“DrawUserObject” ausgelöst.
Nun benötige ich aber innerhalb dieses Events den aktuellen Datensatz, der,
der gerade von LL verarbeitet wird.
Leider habe ich bisher keine Möglichkeit gefunden an diesen innerhalb der
dem Event zugewiesenen Methode heranzukommen.
In dem übergebenen Argument vom Typ “DrawUserObjectEventArgs” findet sich
kein Hinweis darauf und bei der als Sender übergebene Instanz des
ListLabel-Objectes finde ich auch nichts, bzw. weiß ich nicht, wo ich danach
suchen sollte.

Ich benötige dringend eine Lösung für dieses Problem.

Ich arbeite mit LL12 für .NET.

Vielen Dank für Eure Hilfe
Carsten


(Guest) #2

Hmmm, es gäbe mehrere Möglichkeiten.

Ich übergebe immer eine User-Pointer bei LL_OPTION_CALLBACKPARAMETER,
der von LL beim Callback mit übergeben wird und der meine
Klasseninstanz (üblicherweise ist es der ‘this’-Pointer) beschreibt.
Ich weiß nicht, ob der bei .NET noch frei ist.

Ansonsten kannst Du

a) wenn Du pro Thread nicht mehrere Drucke machst, Dir
thread-spezifisch in einer globalen Map die
ThreadID<->Klasseninstanz-Zeiger merken und im Callback nutzen, um auf
die Instanz zu kommen

b) einen Parameter an LL übergeben (Variable), die auf irgendeine Art
das druckende Objekt beschreibt, und die Du über
LlGetVariableContents() im Callback abfragst

Wenn Du erst mal den Callback “in” Deiner Klasseninstanz hast, d.h. in
einer Member-Funktion, dann sollte es weiter kein Problem sein, oder
habe ich was falsch verstanden?

Paulchen

“Carsten Ilwig” <ille7@onlineho…> wrote in message
news:298573172008174459@combit.net

Hi Leute,
ich habe eine Problem mit dem DrawUserObject-Event.

Ich habe ein Grafikobject in einer Tabellenspalte eines
Listenreports
eingebaut.
Wenn nun beim Erstellen des Reports die Tabelle durchlaufen wird und
die
Spalte mit dem Grafikobject an der Reihe ist,
wird ja das Event "“DrawUserObject” ausgelöst.
Nun benötige ich aber innerhalb dieses Events den aktuellen
Datensatz, der,
der gerade von LL verarbeitet wird.
Leider habe ich bisher keine Möglichkeit gefunden an diesen
innerhalb der
dem Event zugewiesenen Methode heranzukommen.
In dem übergebenen Argument vom Typ “DrawUserObjectEventArgs” findet
sich
kein Hinweis darauf und bei der als Sender übergebene Instanz des
ListLabel-Objectes finde ich auch nichts, bzw. weiß ich nicht, wo
ich danach
suchen sollte.

Ich benötige dringend eine Lösung für dieses Problem.

Ich arbeite mit LL12 für .NET.

Vielen Dank für Eure Hilfe
Carsten


(Guest) #3

Hallo Paul,

vielen Dank für Deinen Hilfeversuch.
Wie ich Deiner Antwort entnehme arbeitest Du nicht mit .NET.
Denn da läuft die ganze Sache etwas anders. Vor allem gibt es da auch keine
Zeiger mehr.

Das Problem ist auch nicht der Zugriff auf meine, den Ausdruck auslösende
Klasse,
den habe ich problemlos.
Mein Problem ist, dass ich während LL die Tabelle des Reports erstellt keine
Kennung bekomme, welcher Datensatz gerade “gedruckt” wird.
Und genau diese Angabe benötige ich innerhalb des DrawUserObject-Events.
Ich muss wissen, welche Datensatz bearbeitet wird, wenn das Event ausgelöst
wird.

Gruß
Carsten

“Paul Schmidt” <paulchen4@hotmai…> schrieb im Newsbeitrag
news:68431820088267@combit.net

Hmmm, es gäbe mehrere Möglichkeiten.

Ich übergebe immer eine User-Pointer bei LL_OPTION_CALLBACKPARAMETER,
der von LL beim Callback mit übergeben wird und der meine
Klasseninstanz (üblicherweise ist es der ‘this’-Pointer) beschreibt.
Ich weiß nicht, ob der bei .NET noch frei ist.

Ansonsten kannst Du

a) wenn Du pro Thread nicht mehrere Drucke machst, Dir
thread-spezifisch in einer globalen Map die
ThreadID<->Klasseninstanz-Zeiger merken und im Callback nutzen, um auf
die Instanz zu kommen

b) einen Parameter an LL übergeben (Variable), die auf irgendeine Art
das druckende Objekt beschreibt, und die Du über
LlGetVariableContents() im Callback abfragst

Wenn Du erst mal den Callback “in” Deiner Klasseninstanz hast, d.h. in
einer Member-Funktion, dann sollte es weiter kein Problem sein, oder
habe ich was falsch verstanden?

Paulchen

“Carsten Ilwig” <ille7@onlineho…> wrote in message
news:298573172008174459@combit.net

Hi Leute,
ich habe eine Problem mit dem DrawUserObject-Event.

Ich habe ein Grafikobject in einer Tabellenspalte eines
Listenreports
eingebaut.
Wenn nun beim Erstellen des Reports die Tabelle durchlaufen wird und
die
Spalte mit dem Grafikobject an der Reihe ist,
wird ja das Event "“DrawUserObject” ausgelöst.
Nun benötige ich aber innerhalb dieses Events den aktuellen
Datensatz, der,
der gerade von LL verarbeitet wird.
Leider habe ich bisher keine Möglichkeit gefunden an diesen
innerhalb der
dem Event zugewiesenen Methode heranzukommen.
In dem übergebenen Argument vom Typ “DrawUserObjectEventArgs” findet
sich
kein Hinweis darauf und bei der als Sender übergebene Instanz des
ListLabel-Objectes finde ich auch nichts, bzw. weiß ich nicht, wo
ich danach
suchen sollte.

Ich benötige dringend eine Lösung für dieses Problem.

Ich arbeite mit LL12 für .NET.

Vielen Dank für Eure Hilfe
Carsten