Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index




http://www.pitonyak.org/OOME_3_0.odt
http://www.pitonyak.org/AndrewMacro.odt

This document contains information on forms and such

http://www.pitonyak.org/database/AndrewBase.odt


On 05/08/2013 08:33 AM, Tom Davies wrote:
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 <rentorbuy@yahoo.com>
To: users@global.libreoffice.org; mcmurchy1917-libreoffice@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-libreoffice@yahoo.co.uk <mcmurchy1917-libreoffice@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 <rentorbuy@yahoo.com>
wrote:
--- On Mon, 5/6/13, Andrew Douglas
Pitonyak <andrew@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+unsubscribe@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+unsubscribe@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




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


--
To unsubscribe e-mail to: users+unsubscribe@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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.