Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Base alias is "Customer". Child alias is "Orders". 

Orders which are not paid is bold and font color is "red".

Download full example.

VFP show from multi page tiff first page only. If you want extract some page to independently files, you can use class _XFRX_TIFF_WRITER.


Info

This example is for XFRX 1920.1.0 because use data:template element  and stylefor attribute.

Data preparation

Code Block
m.lcTASTRADE=HOME(2)+"Tastrade\Data\"
OPEN DATA (m.lcTASTRADE+"TASTRADE")

USE Customer ORDER "CUSTOMER_I" IN 0
USE Orders ORDER "CUST_ORD" IN 0
USE Order_Line_Items ORDER "ORDER_ID" IN 0

SELECT order_Id, SUM(UNIT_PRICE*QUANTITY) AS Amount ;
  FROM Order_Line_Items;
  GROUP BY order_ID;
  INTO CURSOR order_amount 
  
SELECT ("order_amount")  
INDEX ON order_ID TAG "order_I"

SELECT ("Orders")
SET RELATION TO order_ID INTO ("order_amount")

SELECT ("Customer")
SET RELATION TO Customer_id INTO ("Orders")
SET FILTER TO RECNO()<=8

...

Code Block
TEXT TO m.pcOrderList TEXTMERGE NOSHOW
<p>
<p style="tab-stops:left 50px left 120px left 190px right 290px;">
<span style="font-weight:bold;font-style:italic;">Order list</span><br/>
<span style="font-weight:bold;">Number<tab/>Date<tab/>Deliver by<tab/>Paid<tab/>Amount</span><br/>
<hr style="width:100%;border-width:1px;border-style:solid;border-color:'Black';"></hr>

<data:template template="'Orders'" stylefor="{NOT PAID}{font-weight:bold;color:RGB(255,0,0)}">
<vfpev>ALLTRIM(ORDER_ID)</vfpev><tab/>
<vfpev>ORDER_DATE</vfpev><tab/>
<vfpev>DELIVER_BY</vfpev><tab/>
<vfpev>IIF(PAID, "Yes", "No")</vfpev><tab/>
<vfpev pictureformat="9 999 999.99">order_amount.Amount</vfpev>
<br>
</data:template>

</p>
ENDTEXT

Run XFRX

Code Block
m.loSession=EVALUATE([xfrx("XFRX#INIT")]) *m.loSession.setLogFile(m.lcPath+"XFRX.log") m.lnRetVal = loSession.SetParams(,,,,.T.,,"XFF") IF m.lnRetVal=0 m.loSession.ProcessReport(m.lcPath+"Customer_orders") m.loXFF=m.loSession.finalize()

.

Extract from first to second page, each page create new file 

Code Block
LOCAL m.lcSource, m.lcDestination, m.tnFrom, m.tnTo, m.tnAllEvenOdd, m.liFlags, m.loTIFF
m.lcSource="input.tiff"         && Input file
m.lcDestination="output_.tiff"  && Output file
m.tnFrom=1                      && from page
m.tnTo=2                        && to page
m.tnAllEvenOdd=1                && even or odd or all pages
m.liFlags=0                     && 1 - Append to existing file, 2 - selected pages to one file

SET PROCEDURE TO xfrx.prg
m.loTIFF=CREATEOBJECT("_XFRX_TIFF_WRITER")
?m.loTIFF.ExtractPage(m.lcSource, m.lcDestination, m.tnFrom, m.tnTo, m.tnAllEvenOdd, m.liFlags)

Extract from first to second page, each page create new file, page will add to existing file

Code Block
LOCAL m.lcSource, m.lcDestination, m.tnFrom, m.tnTo, m.tnAllEvenOdd, m.liFlags, m.loTIFF
m.lcSource="input.tiff"       && Input file
m.lcDestination="output.tiff" && Output file
m.tnFrom=1                    && from page
m.tnTo=2                      && to page
m.tnAllEvenOdd=1              && even or odd or all pages
m.liFlags=1                   && 1 - Append to existing file, 2 - selected pages to one file

SET PROCEDURE TO xfrx.prg
m.loTIFF=CREATEOBJECT("_XFRX_TIFF_WRITER")
?m.loTIFF.ExtractPage(m.lcSource, m.lcDestination, m.tnFrom

Extract  pages 5.,6.,7.,8. and 10, each page create new file 

Code Block
LOCAL m.lcSource, m.lcDestination, m.tnFrom, m.tnTo, m.tnAllEvenOdd, m.liFlags, m.loTIFF
m.lcSource="input.tiff"         && Input file
m.lcDestination="output_.tiff"  && Output file
m.tnFrom="5-8,10"               && from page
m.tnTo=0                 SET CLASSLIB TO xfrxlib\xfrxlib ADDITIVE   && to page
m.loPreview = CREATEOBJECT("frmMPPreviewer")
   m.loPreview.iEmail = 1 && show the email icon
   m.loPreview.lVFP8 =.T. && use XFRX#INIT
   *m.loPreview.setLogFile(m.lcPath+"XFRXPreview.log")
   
   m.loPreview.windowtype = 1
   m.loPreview.windowState = 0tnAllEvenOdd=1                && even or odd or all pages
m.liFlags=0                     && 1 - Append to existing file, 2 - selected pages to one file

SET PROCEDURE TO xfrx.prg
m.loTIFF=CREATEOBJECT("_XFRX_TIFF_WRITER")
?m.loTIFF.ExtractPage(m.lcSource, m.lcDestination, m.tnFrom, m.tnTo, m.tnAllEvenOdd, m.liFlags)

Extract from first to second page, both pages will be in one new file 

Simply append mode.

Code Block
LOCAL m.lcSource, m.lcDestination, m.tnFrom, m.tnTo, m.tnAllEvenOdd, m.liFlags, m.loTIFF
m.lcSource="input.tiff"       && Input file
m.lcDestination="output.tiff" && Output file
m.tnFrom=1                    && from page
m.tnTo=2                      && m.loPreview.PreviewXFF(m.loXFF)
   m.loPreview.show()
   
ENDIF   

Result

...

to page
m.tnAllEvenOdd=1              && even or odd or all pages
m.liFlags=2                   && 1 - Append to existing file, 2 - selected pages to one file

SET PROCEDURE TO xfrx.prg
m.loTIFF=CREATEOBJECT("_XFRX_TIFF_WRITER")
?m.loTIFF.ExtractPage(m.lcSource, m.lcDestination, m.tnFrom