Inline strings supported
Download link
See also append from xlsx 3.1
Recently Internet Explorer was "replaced" by Edge in some versions of Windows 10.
"Where is my beloved Internet Explorer? Internet Explorer is Gone! Oh, No!"
I noticed that the solution used by Microsoft was to to add an add-on in Internet Explorer.
So I ran IExplorer "InPrivate" (right click on the IExplorer shortcut and choose InPrivate Browsing), then I clicked Manage add-ons (via Internet Options-> Programs)
There I saw an add-on called IeToEdge. This way I saw its name and where is stored
I propose two workarounds, both of them verified:
1) First I renamed the Exe file
To do that, I went to the folder pointed (in my case was C:\Program Files (x86)\Microsoft\Edge\Application\110.0.1587.63\BHO - but the version number could be different on other machines, and I've even found more than a single such folder, depending on how many updates the machine has), and renamed ie_to_edge_stub.exe into something else (like ie_to_edge_stub.exe.old)
2) Another approach was to leave the EXE file untouched, and delete the key from registry.
The appropriate key is located here: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects, where I searched for a key that contains IeToEdge.
Support for documents created with JasperReports Library (Inline strings supported)
Download link
See also
http://praisachion.blogspot.com/2017/08/importfromxlsx-40.html
Like icons or static cursors, animated cursors are containers.
The structure is relatively simple. Besides the contained icons, you must provide the default speed of animation, the order in which frames are displayed (first frame is frame number 0) and the time in 1/60 sec for each step to be displayed (speed of animation)
Just look at the next code.
FUNCTION ico2ani
*****************************************************************RETURNENDIF
lnDelay = 10ENDIF
lnSteps = ALEN(laIcons,1)ELSE
lnSteps = ALEN(laSeq,1)
lnbfAttr = 3
FOR lni = 1 TO ALEN(laSeq,1)
IF TYPE("m.laSeq[1,1]") = "N"
lcSeq = m.lcSeq + BINTOC(m.laSeq[m.lni,1], "4RS")
ENDIFIF TYPE("m.laSeq[1,2]") = "N"
lcRate = m.lcRate + BINTOC(m.laSeq[m.lni,2], "4RS")
ENDIF
NEXT
IF !EMPTY(m.lcRate)
lcRate = "rate" + BINTOC(LEN(m.lcRate), "4RS") + m.lcRate
ENDIF
IF !EMPTY(m.lcSeq)
lcSeq = "seq " + BINTOC(LEN(m.lcSeq), "4RS") + m.lcSeq
ENDIFENDIF
lnLenSeq = LEN(m.lcSeq)
lnLenRate = LEN(m.lcRate)
lcIco[m.lni] = FILETOSTR(m.laIcons[m.lni])NEXT
lnLen[m.lni] = LEN(m.lcIco[m.lni])
lnLenIco = m.lnLenIco + 8 + lnLen[m.lni]
lcResult = m.lcResult + "icon" + BINTOC(m.lnLen[m.lni], "4RS") + m.lcIco[m.lni]NEXT
Two demos:
1) Using faces:
Related links
An icon (file with the "ico" extension( is a container, so it contains one or more pictures. To manage these pictures, the ico file has a simple header.
As you can see below, the same code can be used to generate a static cursor (a file with the "cur" extension), because there are only a few differences between icons and cursors.