Getting a Table Formula in UNO

Michael michael.warner.ut at gmail.com
Sun Jun 28 18:57:20 UTC 2020


I'm trying to write a unit test for 
https://bugs.documentfoundation.org/show_bug.cgi?id=133647. As I see it, 
in order for this unit test to be effective, it needs to either compare 
to the formatted display value of the function (to check whether or not 
"** Expression is faulty **" is being shown) or compare to the formula 
text value (to see if it is getting translated the way I expect). But, I 
am having a heck of a time getting either of those in the unit test.

I put what I have so far in https://paste.debian.net/1154267/ with the 
output at the bottom in a comment.

The operational code in DomainMapper_Impl.cxx appears to be writing the 
formula text to a com.sun.star.text.TextField when importing the 
document, but trying to get an XTextField from an XCell like this:
         uno::Reference<text::XTextField> xTextField(xCell, uno::UNO_QUERY);

In the unit test isn't working, xTextField.is() is false.

I can get a calculated value by getting an XText from the XCell, but 
that's not what I am after.

As far as looking at the formatted display value, from what I can tell 
in a debugging session it seems like I need 
DocumentFieldsManager::UpdateTableFields() to run, but I don't know if 
this is happening when running a unit test, maybe it isn't. I can't tell 
if there is some way to force it from a unit test.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20200628/9f57d745/attachment.htm>


More information about the LibreOffice mailing list