List & Label ILLDataProvider verfügbar für Xbase++
Moderator: Moderatoren
- mikehoffmann
- Rekursionen-Architekt
- Beiträge: 136
- Registriert: Mo, 21. Sep 2015 16:22
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 19 Mal
List & Label ILLDataProvider verfügbar für Xbase++
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
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
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: List & Label ILLDataProvider verfügbar für Xbase++
Ja.Gibt es "da draußen" größeres Interesse dafür?
Herzlich,
Tom
Tom
- adrian
- Rekursionen-Architekt
- Beiträge: 272
- Registriert: Mo, 08. Mai 2006 8:58
- Wohnort: Aadorf TG
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: List & Label ILLDataProvider verfügbar für Xbase++
Auf jeden Fall auch ein JA
es Grüessli
Adrian
Adrian
- mikehoffmann
- Rekursionen-Architekt
- Beiträge: 136
- Registriert: Mo, 21. Sep 2015 16:22
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 19 Mal
Re: List & Label ILLDataProvider verfügbar für Xbase++
Ich bin schon dran, etwas vorzubereiten. Dauert aber ein bissel.
Viele Grüße
Michael
Viele Grüße
Michael
- mikehoffmann
- Rekursionen-Architekt
- Beiträge: 136
- Registriert: Mo, 21. Sep 2015 16:22
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 19 Mal
Re: List & Label ILLDataProvider verfügbar für Xbase++
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
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