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 <[email protected]> wrote:
> > --- On Mon, 5/6/13, Andrew Douglas
> > Pitonyak <[email protected]>
> > 
> > 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: [email protected]
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