Base alias is "Customer". Child alias is "Orders".
Orders which are not paid is bold and font color is "red".
Info |
---|
This example is for XFRX 19.1.0 because use data:template element and stylefor attribute. |
Data preparation
Code Block |
---|
SET PROCEDURE TO xfrx.fxp
m.loXLSX=CREATEOBJECT("_TOXLSX")
m.loXLSX.nMaxRow=65535 && 1048576, 65535
liErr=m.loXLSX.CopyToXLSX(m.lcAlias, m.lcFile, m.lcFCCallBack, m.lcSheetName, ;
m.llAddHeader, m.llShowGrid, m.loProgress, m.lcSheetExpressionGroup) |
...
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
|
Text format source preparation
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()
SET CLASSLIB TO xfrxlib\xfrxlib ADDITIVE
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 = 0
m.loPreview.PreviewXFF(m.loXFF)
m.loPreview.show()
ENDIF
|
Result