The problem is probably because these are input fields in a form. Either that, or it is because the fields are not anchored directly into the text in a way that enumerating text will display them.

Can you email a copy of your document directly to me (off list). As long as it contains the text fields, that is sufficient (in other words, you can remove all the text that you like).

On 05/07/2013 03:12 AM, Vieri 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.

Thanks,

Vieri

--
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info:  http://www.pitonyak.org/oo.php


--
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