I googled for a couple of hours to find this for a similar problem:
'probably this is due to the sometimes asynchroneous nature of the
dispatch calls, try inserting a wait command'
So I changed the start of the code to:
if chapters.getBoolean(6) then
wait(120)
args4(0).Name = "TableName"
...
and that solved my problem !
Thanks to all that helped me in getting my macro to work,
Greetings,
Alain
On 20-08-13 11:56, Alain Van Utterbeeck wrote:
Hello,
I have the following code in a macro:
if chapters.getBoolean(6) then
args4(0).Name = "TableName"
args4(0).Value = "Tabel1"
args4(1).Name = "Columns"
args4(1).Value = 3
args4(2).Name = "Rows"
args4(2).Value = 2
args4(3).Name = "Flags"
args4(3).Value = 11
dispatcher.executeDispatch(document,
".uno:InsertTable", "", 0, args4())
args1(0).Name = "Text"
args1(0).Value = "Product"
dispatcher.executeDispatch(document,
".uno:InsertText", "", 0, args1())
dispatcher.executeDispatch(document,
".uno:JumpToNextCell", "", 0, Array())
args1(0).Name = "Text"
args1(0).Value = "Hoev."
dispatcher.executeDispatch(document,
".uno:InsertText", "", 0, args1())
dispatcher.executeDispatch(document,
".uno:JumpToNextCell", "", 0, Array())
args1(0).Name = "Text"
args1(0).Value = "Prijs"
dispatcher.executeDispatch(document,
".uno:InsertText", "", 0, args1())
sale_order_lines=DBsql4.executeQuery("SELECT name,
product_uom_qty, " + _
"(product_uom_qty *
price_unit) AS amount, " + _
"(SELECT seq_document from
product_product where product_product.id = sale_order_line.product_id)
AS seq " + _
" FROM sale_order_line WHERE "
+ _
"order_id = " + sale_order_id
+ " ORDER BY seq")
While sale_order_lines.next
naam=sale_order_lines.getString(1)
qty=sale_order_lines.getString(2)
amount=sale_order_lines.getString(3)
args1(0).Name = "Text"
args1(0).Value = naam
dispatcher.executeDispatch(document,
".uno:JumpToNextCell", "", 0, Array())
dispatcher.executeDispatch(document,
".uno:InsertText", "", 0, args1())
args1(0).Name = "Text"
args1(0).Value = qty
dispatcher.executeDispatch(document,
".uno:JumpToNextCell", "", 0, Array())
dispatcher.executeDispatch(document,
".uno:InsertText", "", 0, args1())
dispatcher.executeDispatch(document,
".uno:NumberFormatDecimal", "", 0, Array())
args1(0).Name = "Text"
args1(0).Value = amount
dispatcher.executeDispatch(document,
".uno:JumpToNextCell", "", 0, Array())
dispatcher.executeDispatch(document,
".uno:InsertText", "", 0, args1())
dispatcher.executeDispatch(document,
".uno:NumberFormatDecimal", "", 0, Array())
Wend
mCurs.gotoEnd(False)
end if
The result that I get is:
Does anybody have an idea why the dispatcher.executeDispatch(document,
".uno:JumpToNextCell", "", 0, Array()) is not working?
The crazy thing is that if I put a breakpoint on the first line of
this code, and go through it step by step, it works fine and I get :
Another strange thing is that the third column containing the price is
set to 0 while in the first screenprint, if you look closely at the
contents that is completely in the first cell, the prices are not 0 !!!
Any ideas please?
Thanks in advance for any help...
Greetings,
Alain
--
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