Seite 1 von 1

List & Label ILLDataProvider verfügbar für Xbase++

Verfasst: Fr, 13. Okt 2017 12:24
von mikehoffmann
Hallo L&L User,

ich habe im Auftrag eines anderen Xbase++ Users ein COM-Objekt implementiert, das das ILLDataProvider Interface exportiert. Damit kann man Daten an L&L weiterreichen, nachdem L&L gestartet wurde. Das braucht man für Multiple Report Containers und Nested Tables. Hier ein Link zur Beschreibung dieses Interfaces:

https://www.combit.net/en/blog/developm ... ontainers/

Alles, was man tun muss, ist eine Klasse zu schreiben, das von meinem LLDataProvider erbt und die Methoden überlädt, bei denen man reinlangen will. Ich selber verwende L&L nicht, aber mein Kunde ist glücklich, weil LLDataProvider funktioniert wie eine Lottchen.

Gibt es "da draußen" größeres Interesse dafür? Ich selber verwende L&L (noch) nicht. Das könnte sich aber nun ändern. Nachfolgend der Source Code der LLDataProvider Klasse, von der man erbt und deren Methoden man überladen kann.

Viele Grüße
Michael



SECTION CLASS LLDataProvider

CLASS LLDataProvider FROM ComObjectManager,ILLDataProviderImage
EXPORTED:
METHOD Init
METHOD OpenTable
METHOD OpenChildTable
METHOD GetRowCount
METHOD MoveNext
METHOD DefineRow
METHOD Dispose
METHOD SetUsedIdentifiers
METHOD ApplySortOrder
METHOD ApplyFilter
METHOD ApplyAdvancedFilter
METHOD SetOption
METHOD OnDestroy
ENDCLASS


METHOD LLDataProvider:Init(llJob)
::ComObjectManager:Init({||::OnDestroy()})
::ILLDataProviderImage:Init(self,self)
RETURN self


METHOD LLDataProvider:OpenTable(in_c_TableName, out_ifc_LLDataProvider)

RETURN NIL && or LLDataProvider object


METHOD LLDataProvider:OpenChildTable(in_c_Relation, out_ifc_LLDataProvider)

* Put the code here to open a related file or array or ....

RETURN NIL && or LLDataProvider object


METHOD LLDataProvider:GetRowCount

* Return the number of rows of your table or a value saying you don't know

RETURN 0


METHOD LLDataProvider:MoveNext

* Move to the next record

RETURN .F.


METHOD LLDataProvider:DefineRow

* Pass all data of the current row to L&L using the L&L API

RETURN .F.


METHOD LLDataProvider:Dispose

* Clean up all your don't need any more

RETURN .T.


METHOD LLDataProvider:SetUsedIdentifiers(in_array_FieldRestriction)

* reserved

RETURN .F.


METHOD LLDataProvider:ApplySortOrder(in_c_SortOrder);

* apply a named sort order

RETURN .F.


METHOD LLDataProvider:ApplyFilter(in_array_c_FieldNames, in_array_Values);

* apply a filter using fields and values they must contain

RETURN .F.


METHOD LLDataProvider:ApplyAdvancedFilter

* Reserved for Future use

RETURN .F.



METHOD LLDataProvider:SetOption(in_n_index,in_value)

* Set an option addressed by an index

RETURN .F.



* Called when last reference falls
METHOD LLDataProvider:OnDestroy
RETURN NIL


ENDSECTION

Re: List & Label ILLDataProvider verfügbar für Xbase++

Verfasst: Fr, 13. Okt 2017 13:14
von Tom
Gibt es "da draußen" größeres Interesse dafür?
Ja.

Re: List & Label ILLDataProvider verfügbar für Xbase++

Verfasst: Fr, 13. Okt 2017 13:36
von Koverhage
Auch von mir ein klares JA.

Re: List & Label ILLDataProvider verfügbar für Xbase++

Verfasst: Fr, 13. Okt 2017 17:25
von ramses
Ich auch: JA.

Re: List & Label ILLDataProvider verfügbar für Xbase++

Verfasst: Mi, 18. Okt 2017 11:05
von adrian
Auf jeden Fall auch ein JA

Re: List & Label ILLDataProvider verfügbar für Xbase++

Verfasst: Do, 19. Okt 2017 0:45
von mikehoffmann
Ich bin schon dran, etwas vorzubereiten. Dauert aber ein bissel.
Viele Grüße
Michael

Re: List & Label ILLDataProvider verfügbar für Xbase++

Verfasst: Mi, 25. Okt 2017 14:11
von mikehoffmann
Habe fertig. Das Beispiel gibt's hier:

http://www.xcockpit.com/download.html

... unter "Temporary Downloads (Doppelklicken zum Öffnen) / List & Label LLDataProvider Sample"

Ihr braucht 1.9, um das gute Stück zu bauen. Ihr dürft damit experimentieren, soviel Ihr wollt.
Ein kommerzieller Einsatz dieser Version ist nicht gestattet.

FF.

Michael