
/& .LW(200,'Text Programming Demo' , 'Tahoma',12,1,rgb(128,0,128))


Since we have ability to execute engine methods from within text lines we can now actually venture even into text  
programming area.  This is of course hard and complex matter, which goes well beyond original purpose/scope of 
ReportSculptor, but even with these rather limited text processing and programming abilities, we do get some 'guns' 
if need arise to actually create more text oriented report stuff.  What I hope you will find particularly interesting, 
is possibility to call  and effectively blend-inn entire FRX-es and Form Objects into ongoing text output.  

Anyways, back to the subject ;
To execute engine method we wll simply preface text line with '/&'  and then we can run engine method just as we 
would do from our code.  Then we can use entire line of engine methods such are 

/& .SetFont( ,8,1)  &&Font Remains the same we just change font style to bold 
/& .RenderControl(_screen.ActiveForm.Repository.BlueBar,  .nTop ,25)
.RenderControl() /  .ImportFrx() / .lf() / .PaintBox() / DrawBox()
. SetFont()  / .SetColumnLeft()  /  .SetTop()  / And the all the rest ...
Moreover you can add your own drawing constructions as methods to a subclass of RS Engine you are using. So  
for instance, you can create/add your own bulleted lists, special text effects, styling  etc.
/& .SetFont(,9,0)  &&Back to regular 

Here belew is small demonstration of what can be done with it;

/& .RenderControl(_screen.ActiveForm.Repository.BlueBar,  .nTop - 2,25)
<b>Example 1   </b>  Wrapping 'Lorem Ipsum' around my head...

/& .SetFont(,,0)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla facilisi. Quisque dolor leo, sollicitudin a, porta vel, faucibus id, 
nunc. Suspendisse mollis nonummy tellus. Sed auctor pulvinar odio. Vestibulum ante ipsum primis in faucibus orci luctus 
et ultrices posuere cubilia Curae.
/& .RenderControl(_screen.ActiveForm.Repository.ImageSergio,  .nTop+5,25)
/& .SetColumnLeft(150)
<b>Lorem ipsum</b> dolor sit amet, consectetuer adipiscing elit.  Proin lorem lacus, mattis et, cursus ut, 
iverra faucibus, purus. Sed feugiat mauris quis velit. Etiam iaculis hendrerit urna. Vivamus 
olutpat dui vel est. Sed dictum est in metus.  Nullam facilisis aliquet turpis. Duis varius enim ut orci. 
onec lorem ligula, pellentesque ac, sodales at, ornare non, lacus.  Vivamus rutrum aliquam leo. 
orem ipsum dolor sit amet, consectetuer adipiscing elit.  Proin lorem lacus, mattis et, cursus ut, 
iverra faucibus, purus.  <i> Sed feugiat mauris quis velit. </i>  . Vivamus volutpat ui vel est.  Sed dictum 
est in metus. Nullam facilisis aliquet turpis. Duis varius enim ut orci.  onec lorem ligula, pellentesque ac, 
sodales at, ornare non, lacus.  Vivamus rutrum aliquam leo. 
//Restore Default left
/& .SetColumnLeft()
Lorem ipsum <i>Computer Freak urna</i>, consectetuer adipiscing elit.  Proin lorem lacus, mattis et, cursus ut, 
viverra faucibus, purus.  Sed feugiat mauris quis velit. Etiam iaculis hendrerit urna. Vivamus volutpat dui vel est. 
Sed dictum est in metus.  Nullam facilisis aliquet turpis. Duis varius enim ut orci.  Donec lorem ligula, pellentesque ac, 
sodales at, ornare non, lacus. 

/& .RenderControl(_screen.ActiveForm.Repository.BlueBar,  .nTop,25)
<b>Example 2  </b>  Presenting Text in multiple columns. 

/& .PaintBox(.ntop,25,.nTop+260,750 ,rgb(211,213,228))
Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit.  
Proin lorem lacus, mattis et, 
cursus ut, iverra faucibus, 
purus. Sed feugiat mauris 
quis velit. Etiam iaculis hendr-
erit urna.  Sed dictum est in
Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit.  
Proin lorem lacus, mattis et, 
cursus ut, iverra faucibus, 
purus. Sed feugiat mauris 
quis velit. Etiam iaculis hendr-
erit urna. Vivamus olutpat 
dui vel est. Sed dictum est in
Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit.  
Proin lorem lacus, mattis et, 
cursus ut, iverra faucibus, 
erit urna. Vivamus olutpat 
Sed feugiat mauris quis velit.
/& .SetColumnLeft(220)
/& .lf(-21)
Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit.  
Proin lorem lacus, mattis et, 
cursus ut, iverra faucibus, 
/& .RenderControl(_screen.ActiveForm.Repository.Emily,  .nTop+5,220)
/& .lf(9)

purus. Sed feugiat mauris 
quis velit. Etiam iaculis hendr-
erit urna. Vivamus olutpat 
purus. Sed feugiat mauris 
quis velit. Etiam iaculis hendr-
erit urna. Vivamus olutpat 
dui vel est. 
/& .SetColumnLeft(400)
/& .lf(-21)
Sed dictum est in metus.  Nullam facilisis aliquet 
turpis. Duis varius enim ut orci. Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit.  Proin lorem lacus, mattis et, 
cursus ut, iverra faucibus, purus. Sed feugiat mauris 
quis velit. Etiam iaculis hendrerit urna. Vivamus olutpat 
dui vel est. Sed dictum est in metus.  Nullam facilisis aliquet 
turpis. Duis varius enim ut orci. Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit.  Proin lorem lacus, mattis et, 
cursus ut, iverra faucibus, purus. Sed feugiat mauris quis velit. 
Etiam iaculis hendrerit urna. Vivamus olutpat dui vel est. Sed 
dictum est in metus.  Nullam facilisis aliquet  
/& .RenderControl(_screen.ActiveForm.Repository.kids,  .nTop+5,580)
/& .SetColumnLeft(400)
Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit.  
Proin lorem lacus, mattis et, 
cursus ut, iverra faucibus, 
purus. Sed feugiat mauris 
quis velit. Etiam iaculis hendr-
erit urna. Vivamus olutpat 
dui vel est. Sed dictum est in
Lorem ipsum dolor sit amet, 
consectetuer adipiscing elit.  
//Restore Default left
/& .SetColumnLeft()

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.  Proin lorem lacus, mattis et, cursus ut, 
iverra faucibus, purus. Sed feugiat mauris quis velit. Etiam iaculis hendrerit urna. Vivamus 
olutpat dui vel est. Sed dictum est in metus.  Nullam facilisis aliquet turpis. Duis varius enim ut orci. 
onec lorem ligula, pellentesque ac, sodales at, ornare non, lacus.  Vivamus rutrum aliquam leo. 
orem ipsum dolor sit amet, consectetuer adipiscing elit.  Proin lorem lacus, mattis et, cursus ut, 
iverra faucibus, purus.  Sed feugiat mauris quis velit. Etiam iaculis hendrerit urna. Vivamus volutpat 
ui vel est.  Sed dictum est in metus. Nullam facilisis aliquet turpis.

/& .RenderControl(_screen.ActiveForm.Repository.BlueBarRight,  .nTop  ,80) 
/& .SetColumnLeft(480)
Hope you will enjoy this whole new paradigm 
being added to our standard FoxPro Reporting ;)  

//Comment: Reset Column Left
/& .SetColumnLeft() &&Rest column
 
And below this nice text, as indicated before we simply append our existing Frx Report ...  (See folowing page)
/& .LoadFrx(rsFrx(HOME() + 'SAMPLES\SOLUTION\REPORTS\colors.FRX' ))