Hi :)
You might find it well worth buying the 3rd party guide produced by Andrew 
Pitonyak.  This link helps get you there
https://wiki.documentfoundation.org/Documentation/Other_Documentation_and_Resources#Programmers

Andrew works hard on this list and in the Docs Team to help people with 
bits&bobs of code as do other people on this list but the book brings it all 
together rather well.  It might be a good investment.  I'm not sure how badly 
it is affected by alleged changes in the newer version of LO Basic being used 
by 4.0.0 and beyond but i suspect the book gives such a good overview that 
changes in the details are easy to figure out.  

Regards from 
Tom )  






>________________________________
> From: Vieri <rentor...@yahoo.com>
>To: users@global.libreoffice.org; mcmurchy1917-libreoff...@yahoo.co.uk 
>Sent: Wednesday, 8 May 2013, 12:16
>Subject: Re: [libreoffice-users] gettextfields
> 
>
>Thanks!
>
>Making progress... finally.
>
>Your code actually retrieved the text within my first "text box" (which is at 
>least something!) but then it fails with the error:
>
>LibreOffice 4.0.2.2
>BASIC runtime error.
>'423'
>Text
>
>it points to line:
>Print x.getName() & " : " & x.Text
>
>It may be choking on a "formatted field" within the document.
>
>Just out of curiosity, how did you know that you had to use 
>ThisComponent.DrawPage.Forms? As a novice, I find the documentation to be 
>quite confusing and a supposedly "simple" task such as getting text field 
>values seems to be quite difficult. I mean, I found examples on the net and 
>they all start with something like:
>
>  vEnum = ThisComponent.getTextFields().createEnumeration()
>  If Not IsNull(vEnum) Then
>    Do While vEnum.hasMoreElements()
>      vVal = vEnum.nextElement()
>
>but then I either don't know how to continue or the examples I found on the 
>net don't work (maybe outdated OO or LO versions).
>
>BTW, is there an IDE that can auto-complete Basic code (eg. vVal.??? as in the 
>example above).
>
>Thanks,
>
>Vieri
>
>--- On Wed, 5/8/13, mcmurchy1917-libreoff...@yahoo.co.uk 
><mcmurchy1917-libreoff...@yahoo.co.uk> wrote:
>
>> I've created two "Text Boxes" in a
>> form in a writer document.
>> 
>> I can iterate over them like this grabbing the text as I go
>> 
>> 
>> Sub EnumerateFields
>> 
>>     oDoc = ThisComponent
>>     oDrawPage = oDoc.DrawPage
>>     oForm = oDrawPage.Forms.GetByIndex(0)
>>       For i = 0 To oForm.getCount()-1
>>          x =
>> oForm.getByIndex(i)
>>          Print
>> x.getName() & " : " & x.Text
>>       Next
>>   
>> End Sub
>> 
>> 
>> Does this help in anyway?
>> 
>> Iain
>> 
>> 
>> On Wednesday 08 May 2013 01:50:02 Vieri wrote:
>> > --- On Tue, 5/7/13, Vieri <rentor...@yahoo.com>
>> wrote:
>> > > --- On Mon, 5/6/13, Andrew Douglas
>> > > Pitonyak <and...@pitonyak.org>
>> > > 
>> > > wrote:
>> > > > On 05/06/2013 05:21 AM, Vieri wrote:
>> > > > > Hi,
>> > > > > 
>> > > > > I have an odt writer document with 2
>> input text
>> > > 
>> > > fields
>> > > 
>> > > > (added with the form designer toolbar). I
>> manually type
>> > > 
>> > > text
>> > > 
>> > > > into one of the fields. I copy/pasted a macro
>> to see if
>> > > 
>> > > I
>> > > 
>> > > > could grab the text within the input field
>> but haven't
>> > > 
>> > > had
>> > > 
>> > > > any luck. This is the test macro in Basic:
>> > > > > Sub EnumerateFields
>> > > > >
>> > > > >    vEnum =
>> > > > 
>> > > >
>> ThisComponent.getTextFields().createEnumeration()
>> > > > 
>> > > > >    If Not IsNull(vEnum) Then
>> > > > >      If
>> vEnum.hasMoreElements() Then
>> > > > >        Print "OK"
>> > > > >      Else
>> > > > >        Print "NOT
>> OK"
>> > > > >      End If
>> > > > >    End If
>> > > > >
>> > > > > End Sub
>> > > > > 
>> > > > > If I manually run this macro I get the
>> "NOT OK"
>> > > > 
>> > > > message.
>> > > > 
>> > > > > What am I doing wrong?
>> > > > > What is the correct way of getting the
>> text field
>> > > > 
>> > > > elements?
>> > > > 
>> > > > > Thanks
>> > > > > 
>> > > > > Vieri
>> > > > 
>> > > > I grabbed these two routines from my test
>> modules
>> > > 
>> > > without
>> > > 
>> > > > running them first....
>> > > 
>> > > Hi,
>> > > 
>> > > Thanks for the reply but I'm still having
>> trouble.
>> > > I'm either way off-course, misusing LO or making a
>> dumb
>> > > rookie mistake.
>> > > 
>> > > I copied your macros to my odt document.
>> > > I then did a "tools, macros, run macro..." and
>> selected the
>> > > Subs I copied.
>> > > If I run EnumerateTextFields then it yields the
>> "Finished"
>> > > message box (nothing else).
>> > > If I run DisplayMasterFields then it yields the
>> following
>> > > message:
>> > > 
>> > > ===Text Field Masters===
>> > >
>> (com.sun.star.text.fieldmaster.SetExpression.Illustration,Illustration)
>> > >
>> (com.sun.star.text.fieldmaster.SetExpression.Table,Table)
>> > >
>> (com.sun.star.text.fieldmaster.SetExpression.Text,Text)
>> > >
>> (com.sun.star.text.fieldmaster.SetExpression.Drawing,Drawing)
>> > > 
>> > > My odt document has 2 input fields in a form.
>> > > 
>> > > By the way, if I place a button within my form and
>> configure
>> > > the "Mouse button pressed" to launch, say,
>> > > EnumerateTextFields then I get the following error
>> message:
>> > > "LibreOffice 4.0.2.2 BASIC runtime error. '423'
>> > > getTextFields" and it points at the line:
>> > > "oEnum =
>> oDoc.getTextFields().createEnumeration()"
>> > > 
>> > > I'm stuck on something that should be quite
>> simple.
>> > > I'm attaching my odt file hoping that someone can
>> tell me
>> > > what novice mistake I'm making.
>> > 
>> > Trying to attach the file again but it seems that the
>> mailing list strips it
>> > out.
>> > 
>> > Thanks,
>> > 
>> > Vieri
>> 
>> -- 
>> To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
>> Problems? 
>> http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
>> Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
>> List archive: http://listarchives.libreoffice.org/global/users/
>> All messages sent to this list will be publicly archived and
>> cannot be deleted
>> 
>> 
>
>-- 
>To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
>Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
>Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
>List archive: http://listarchives.libreoffice.org/global/users/
>All messages sent to this list will be publicly archived and cannot be deleted
>
>
>
-- 
To unsubscribe e-mail to: users+unsubscr...@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Reply via email to