LOGOS 4 COM API - Make more datatypes work with DataTypes.GetDataType

Page 1 of 1 (3 items)
This post has 2 Replies | 0 Followers

Posts 232
AndyTheGreek | Forum Activity | Posted: Mon, Jul 19 2010 4:19 AM

I'm using the API to get the names of all Bible books as follows (Delphi code)

BibleData := LogosApp.DataTypes.GetDataType('Bible').Details as LogosBibleDataTypeDetails;

I can then use FirstBook and NextBook to get a list of all books and I then drill into this to get the chapters for each book and verses for each chapter. In this way I can build a dynamic Bible Reference selection screen.

Fine so far.

BUT - the line GetDataType('Bible') does not allow me to specify which Bible I want. Weirdly, it works for the English Standard Version (GetDataType('BibleESV')) but not for others - GetDataType('BibleNIV') or GetDataType('BibleRSV') return nothing...

The reason for the request is simple - not all Bibles have the same books (Apocrapha etc) or the same verse numberings and I would like to code the verse selector to work with 'typical' Bibles and not so typical Bibles...

So, in other words, I would like every Bible in Logos to have a datatype of LogosBibleDataTypeDetails in the same way that the ESV (apparently) does...

Posts 41
Paul Davey | Forum Activity | Replied: Tue, Jul 20 2010 11:30 AM

Hi Andy

If a resource has a datatype "Bible" then I think it will contain the 66 Books.  I don't know why the ESV is different - so is the NASB (NASB is of datatype BibleNASB95).  The datatype is not necessarily tied to the version.  Each version has a datatype - most seem to be "Bible".

If you want to specify the Bible, you have to specify the resource.  You can get a collection of all the Bibles using the GetResourcesByResourceType(“text.monograph.bible”) method of the Library.  I think you then need to load it into a Panel so you can query it's datatype.


Incidently, I could not get the Library.GetResourceInfo(ResourceId : String) method to work.  It always returned Null.

Posts 232
AndyTheGreek | Forum Activity | Replied: Thu, Jul 22 2010 4:38 AM


The simple Bible DataType returns the Apocrapha as well. BibleNA27 returns the NT, as expected. However, most of the bible resources just have the type 'Bible' and so I can't easily query Logos for which books are in which particular Bible.

I'm also uncertain as to how to ask a resource directly what its resource type is - a method GetDataType(resourceID) seems to be missing. GetResourceInfo doesn't tell me this (not that I''ve used this method). Weirdly, if a resource is open, I can ask the panel using GetCurrentReferencesAndHeadwords and can get the data type from that.

It seems weirdly incomplete - but I may be overlooking something...



Page 1 of 1 (3 items) | RSS