Alaska Software Inc. - Converting from Escape! printing library
Username: Password:
AuthorTopic: Converting from Escape! printing library
Stanwood CampsmithConverting from Escape! printing library
on Mon, 17 Apr 2006 10:16:24 -0400
Hello,

We've been using the Escape! laser printer library for years.  I'd  
apreciate any guidance on how to replace those functions without  
completely re-writing sever dozen reports from scratch.

Thanks again!
--Stanwood Campsmith
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
mark carew Re: Converting from Escape! printing library
on Tue, 18 Apr 2006 06:45:48 +1000
On Mon, 17 Apr 2006 10:16:24 -0400, Stanwood Campsmith wrote:

> Hello,
> 
> We've been using the Escape! laser printer library for years.  I'd  
> appreciate any guidance on how to replace those functions without  
> completely re-writing sever dozen reports from scratch.
> 
> Thanks again!
> --Stanwood Campsmith
> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Hi Stanwood,

If you use @ <row>, <col> say for printing you could start by isolating
your print routines in separate prgs and using the following to translate
your print statements into a function that uses windows printing xbpprinter
class functions. I have done been through this exercise with at least four
clipper systems that I have converted to xBase++. Its usually a matter of
using the pre-processor to switch your printing commands from text to gui
printing.

It would help if you could show some typical printing source code.

#command  @ <nRow>, <nCol> SAY <say> [PICTURE <picture>];
      =>  printAt(<nRow>, <nCol>, <say> [, <picture>])

Regards
Mark
Stanwood CampsmithRe: Converting from Escape! printing library
on Tue, 18 Apr 2006 17:19:58 -0400
Mark;

Here's a small snippet from a single-page report that doesn't use @..say

  *- box heading
    hpGrayBar( nProw, nOffHorz+8, nInSide-4, 1, 20, "M" )
    hpCenter( hpBold("- Patient -"), nProw, 45+nOffHorz, "M"  )
    hpAtSay( nProw, nOffHorz+10, wf->CUSTNO, "M" )
    hpAtSay( nProw, nOffHorz+70, wf->ORDER_NO, "M" )
    nProw += nRowH
    hpBox(nHoldRow-nRowH, nOffHorz, nProw+1, 100+nOffHorz, 2, "M")

    nProw += nRowH
    hpRJust( hpBold("Name:"), nProw, nPcol, "M"  )
    hpAtSay( nProw, nPcol+3, LNAME(wf->PT_LNAME, wf->PT_FNAME,30), "M" )

    nProw += nRowH
    hpRJust( hpBold("Address:"), nProw, nPcol, "M"  )
    hpAtSay( nProw, nPcol+3, wf->PT_ADDR, "M" )

    nProw += nRowH
    IF !EMPTY( wf->PT_CITY )
       hpAtSay( nProw, nPcol+3, CITYX( wf->PT_CITY, wf->PT_STATE,  
wf->PT_ZIP, 30 ), "M"  )
    ELSE
       hpAtSay( nProw, nPcol+3, REPLICATE("_", 20), "M" )
       hpAtSay( nProw, nPcol+35, REPLICATE("_", 3), "M" )
       hpAtSay( nProw, nPcol+40, REPLICATE("_", 5), "M" )
    ENDIF

    nProw += nRowH
    hpRJust( hpBold("Phone1:"), nProw, nPcol, "M"  )
    cDetail := IIF( EMPTY( SUBSTR(wf->PT_PHONE1,6,3) ), "(____)____-_____",  
wf->PT_PHONE1 )
    cDetail += SPACE(5) + IIF( EMPTY(wf->PT_PTYP1), "_______", wf->PT_PTYP1)
    hpAtSay( nProw, nPcol+3, cDetail, "M"  )
    IF UPPER(TRIM(wf->PT_PTYP1)) <> "HOME"
       cDetail := IIF( EMPTY(wf->PT_PWHO1), "__________","")
       hpAtSay( nProw, nPcol+50, cDetail, "M"  )
    ENDIF

I'll have a look at the XbpPrinter class and see how far I can get writing  
my own wrappers.

Thanks again;
--Stanwood

On Mon, 17 Apr 2006 16:45:48 -0400, mark carew  
<markcarew@magicwanddept.com.au> wrote:

> On Mon, 17 Apr 2006 10:16:24 -0400, Stanwood Campsmith wrote:
>
>> Hello,
>>
>> We've been using the Escape! laser printer library for years.  I'd
>> appreciate any guidance on how to replace those functions without
>> completely re-writing sever dozen reports from scratch.
>>
>> Thanks again!
>> --Stanwood Campsmith
>> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>
> Hi Stanwood,
>
> If you use @ <row>, <col> say for printing you could start by isolating
> your print routines in separate prgs and using the following to translate
> your print statements into a function that uses windows printing  
> xbpprinter
> class functions. I have done been through this exercise with at least  
> four
> clipper systems that I have converted to xBase++. Its usually a matter of
> using the pre-processor to switch your printing commands from text to gui
> printing.
>
> It would help if you could show some typical printing source code.
>
> #command  @ <nRow>, <nCol> SAY <say> [PICTURE <picture>];
>       =>  printAt(<nRow>, <nCol>, <say> [, <picture>])
>
> Regards
> Mark



Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
James Loughner Re: Converting from Escape! printing library
on Tue, 18 Apr 2006 20:10:09 -0400
These functions may help

Stanwood Campsmith wrote:
> Mark;
> 
> Here's a small snippet from a single-page report that doesn't use @..say
> 
>  *- box heading
>    hpGrayBar( nProw, nOffHorz+8, nInSide-4, 1, 20, "M" )
>    hpCenter( hpBold("- Patient -"), nProw, 45+nOffHorz, "M"  )
>    hpAtSay( nProw, nOffHorz+10, wf->CUSTNO, "M" )
>    hpAtSay( nProw, nOffHorz+70, wf->ORDER_NO, "M" )
>    nProw += nRowH
>    hpBox(nHoldRow-nRowH, nOffHorz, nProw+1, 100+nOffHorz, 2, "M")
> 
>    nProw += nRowH
>    hpRJust( hpBold("Name:"), nProw, nPcol, "M"  )
>    hpAtSay( nProw, nPcol+3, LNAME(wf->PT_LNAME, wf->PT_FNAME,30), "M" )
> 
>    nProw += nRowH
>    hpRJust( hpBold("Address:"), nProw, nPcol, "M"  )
>    hpAtSay( nProw, nPcol+3, wf->PT_ADDR, "M" )
> 
>    nProw += nRowH
>    IF !EMPTY( wf->PT_CITY )
>       hpAtSay( nProw, nPcol+3, CITYX( wf->PT_CITY, wf->PT_STATE,  
> wf->PT_ZIP, 30 ), "M"  )
>    ELSE
>       hpAtSay( nProw, nPcol+3, REPLICATE("_", 20), "M" )
>       hpAtSay( nProw, nPcol+35, REPLICATE("_", 3), "M" )
>       hpAtSay( nProw, nPcol+40, REPLICATE("_", 5), "M" )
>    ENDIF
> 
>    nProw += nRowH
>    hpRJust( hpBold("Phone1:"), nProw, nPcol, "M"  )
>    cDetail := IIF( EMPTY( SUBSTR(wf->PT_PHONE1,6,3) ), 
> "(____)____-_____",  wf->PT_PHONE1 )
>    cDetail += SPACE(5) + IIF( EMPTY(wf->PT_PTYP1), "_______", wf->PT_PTYP1)
>    hpAtSay( nProw, nPcol+3, cDetail, "M"  )
>    IF UPPER(TRIM(wf->PT_PTYP1)) <> "HOME"
>       cDetail := IIF( EMPTY(wf->PT_PWHO1), "__________","")
>       hpAtSay( nProw, nPcol+50, cDetail, "M"  )
>    ENDIF
> 
> I'll have a look at the XbpPrinter class and see how far I can get 
> writing  my own wrappers.
> 
> Thanks again;
> --Stanwood
> 
> On Mon, 17 Apr 2006 16:45:48 -0400, mark carew  
> <markcarew@magicwanddept.com.au> wrote:
> 
>> On Mon, 17 Apr 2006 10:16:24 -0400, Stanwood Campsmith wrote:
>>
>>> Hello,
>>>
>>> We've been using the Escape! laser printer library for years.  I'd
>>> appreciate any guidance on how to replace those functions without
>>> completely re-writing sever dozen reports from scratch.
>>>
>>> Thanks again!
>>> --Stanwood Campsmith
>>> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>>
>>
>> Hi Stanwood,
>>
>> If you use @ <row>, <col> say for printing you could start by isolating
>> your print routines in separate prgs and using the following to translate
>> your print statements into a function that uses windows printing  
>> xbpprinter
>> class functions. I have done been through this exercise with at least  
>> four
>> clipper systems that I have converted to xBase++. Its usually a matter of
>> using the pre-processor to switch your printing commands from text to gui
>> printing.
>>
>> It would help if you could show some typical printing source code.
>>
>> #command  @ <nRow>, <nCol> SAY <say> [PICTURE <picture>];
>>       =>  printAt(<nRow>, <nCol>, <say> [, <picture>])
>>
>> Regards
>> Mark
> 
> 
> 
>


ExamplePrn.zip
James Loughner Re: Converting from Escape! printing library
on Tue, 18 Apr 2006 20:12:57 -0400
Sorry guys I didn't realize that the zp wa so large.

Jim

James Loughner wrote:

> These functions may help
> 
> Stanwood Campsmith wrote:
> 
>> Mark;
>>
>> Here's a small snippet from a single-page report that doesn't use @..say
>>
>>  *- box heading
>>    hpGrayBar( nProw, nOffHorz+8, nInSide-4, 1, 20, "M" )
>>    hpCenter( hpBold("- Patient -"), nProw, 45+nOffHorz, "M"  )
>>    hpAtSay( nProw, nOffHorz+10, wf->CUSTNO, "M" )
>>    hpAtSay( nProw, nOffHorz+70, wf->ORDER_NO, "M" )
>>    nProw += nRowH
>>    hpBox(nHoldRow-nRowH, nOffHorz, nProw+1, 100+nOffHorz, 2, "M")
>>
>>    nProw += nRowH
>>    hpRJust( hpBold("Name:"), nProw, nPcol, "M"  )
>>    hpAtSay( nProw, nPcol+3, LNAME(wf->PT_LNAME, wf->PT_FNAME,30), "M" )
>>
>>    nProw += nRowH
>>    hpRJust( hpBold("Address:"), nProw, nPcol, "M"  )
>>    hpAtSay( nProw, nPcol+3, wf->PT_ADDR, "M" )
>>
>>    nProw += nRowH
>>    IF !EMPTY( wf->PT_CITY )
>>       hpAtSay( nProw, nPcol+3, CITYX( wf->PT_CITY, wf->PT_STATE,  
>> wf->PT_ZIP, 30 ), "M"  )
>>    ELSE
>>       hpAtSay( nProw, nPcol+3, REPLICATE("_", 20), "M" )
>>       hpAtSay( nProw, nPcol+35, REPLICATE("_", 3), "M" )
>>       hpAtSay( nProw, nPcol+40, REPLICATE("_", 5), "M" )
>>    ENDIF
>>
>>    nProw += nRowH
>>    hpRJust( hpBold("Phone1:"), nProw, nPcol, "M"  )
>>    cDetail := IIF( EMPTY( SUBSTR(wf->PT_PHONE1,6,3) ), 
>> "(____)____-_____",  wf->PT_PHONE1 )
>>    cDetail += SPACE(5) + IIF( EMPTY(wf->PT_PTYP1), "_______", 
>> wf->PT_PTYP1)
>>    hpAtSay( nProw, nPcol+3, cDetail, "M"  )
>>    IF UPPER(TRIM(wf->PT_PTYP1)) <> "HOME"
>>       cDetail := IIF( EMPTY(wf->PT_PWHO1), "__________","")
>>       hpAtSay( nProw, nPcol+50, cDetail, "M"  )
>>    ENDIF
>>
>> I'll have a look at the XbpPrinter class and see how far I can get 
>> writing  my own wrappers.
>>
>> Thanks again;
>> --Stanwood
>>
>> On Mon, 17 Apr 2006 16:45:48 -0400, mark carew  
>> <markcarew@magicwanddept.com.au> wrote:
>>
>>> On Mon, 17 Apr 2006 10:16:24 -0400, Stanwood Campsmith wrote:
>>>
>>>> Hello,
>>>>
>>>> We've been using the Escape! laser printer library for years.  I'd
>>>> appreciate any guidance on how to replace those functions without
>>>> completely re-writing sever dozen reports from scratch.
>>>>
>>>> Thanks again!
>>>> --Stanwood Campsmith
>>>> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>>>
>>>
>>>
>>> Hi Stanwood,
>>>
>>> If you use @ <row>, <col> say for printing you could start by isolating
>>> your print routines in separate prgs and using the following to 
>>> translate
>>> your print statements into a function that uses windows printing  
>>> xbpprinter
>>> class functions. I have done been through this exercise with at 
>>> least  four
>>> clipper systems that I have converted to xBase++. Its usually a 
>>> matter of
>>> using the pre-processor to switch your printing commands from text to 
>>> gui
>>> printing.
>>>
>>> It would help if you could show some typical printing source code.
>>>
>>> #command  @ <nRow>, <nCol> SAY <say> [PICTURE <picture>];
>>>       =>  printAt(<nRow>, <nCol>, <say> [, <picture>])
>>>
>>> Regards
>>> Mark
>>
>>
>>
>>
>>
>
Gale Ford Re: Converting from Escape! printing library
on Wed, 19 Apr 2006 09:44:48 -0500
You can download beta version of Abeelabs PageScript 32.
You could probable translate or wrap their functions to yours.
Here is link to online manual.
http://www.abeelabs.com/guides/ps32XB/index.html

Stanwood Campsmith wrote:
> Mark;
> 
> Here's a small snippet from a single-page report that doesn't use @..say
> 
>  *- box heading
>    hpGrayBar( nProw, nOffHorz+8, nInSide-4, 1, 20, "M" )
>    hpCenter( hpBold("- Patient -"), nProw, 45+nOffHorz, "M"  )
>    hpAtSay( nProw, nOffHorz+10, wf->CUSTNO, "M" )
>    hpAtSay( nProw, nOffHorz+70, wf->ORDER_NO, "M" )
>    nProw += nRowH
>    hpBox(nHoldRow-nRowH, nOffHorz, nProw+1, 100+nOffHorz, 2, "M")
> 
>    nProw += nRowH
>    hpRJust( hpBold("Name:"), nProw, nPcol, "M"  )
>    hpAtSay( nProw, nPcol+3, LNAME(wf->PT_LNAME, wf->PT_FNAME,30), "M" )
> 
>    nProw += nRowH
>    hpRJust( hpBold("Address:"), nProw, nPcol, "M"  )
>    hpAtSay( nProw, nPcol+3, wf->PT_ADDR, "M" )
> 
>    nProw += nRowH
>    IF !EMPTY( wf->PT_CITY )
>       hpAtSay( nProw, nPcol+3, CITYX( wf->PT_CITY, wf->PT_STATE, 
> wf->PT_ZIP, 30 ), "M"  )
>    ELSE
>       hpAtSay( nProw, nPcol+3, REPLICATE("_", 20), "M" )
>       hpAtSay( nProw, nPcol+35, REPLICATE("_", 3), "M" )
>       hpAtSay( nProw, nPcol+40, REPLICATE("_", 5), "M" )
>    ENDIF
> 
>    nProw += nRowH
>    hpRJust( hpBold("Phone1:"), nProw, nPcol, "M"  )
>    cDetail := IIF( EMPTY( SUBSTR(wf->PT_PHONE1,6,3) ), 
> "(____)____-_____", wf->PT_PHONE1 )
>    cDetail += SPACE(5) + IIF( EMPTY(wf->PT_PTYP1), "_______", wf->PT_PTYP1)
>    hpAtSay( nProw, nPcol+3, cDetail, "M"  )
>    IF UPPER(TRIM(wf->PT_PTYP1)) <> "HOME"
>       cDetail := IIF( EMPTY(wf->PT_PWHO1), "__________","")
>       hpAtSay( nProw, nPcol+50, cDetail, "M"  )
>    ENDIF
> 
> I'll have a look at the XbpPrinter class and see how far I can get 
> writing my own wrappers.
> 
> Thanks again;
> --Stanwood
> 
> On Mon, 17 Apr 2006 16:45:48 -0400, mark carew 
> <markcarew@magicwanddept.com.au> wrote:
> 
>> On Mon, 17 Apr 2006 10:16:24 -0400, Stanwood Campsmith wrote:
>>
>>> Hello,
>>>
>>> We've been using the Escape! laser printer library for years.  I'd
>>> appreciate any guidance on how to replace those functions without
>>> completely re-writing sever dozen reports from scratch.
>>>
>>> Thanks again!
>>> --Stanwood Campsmith
>>> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>>
>> Hi Stanwood,
>>
>> If you use @ <row>, <col> say for printing you could start by isolating
>> your print routines in separate prgs and using the following to translate
>> your print statements into a function that uses windows printing 
>> xbpprinter
>> class functions. I have done been through this exercise with at least 
>> four
>> clipper systems that I have converted to xBase++. Its usually a matter of
>> using the pre-processor to switch your printing commands from text to gui
>> printing.
>>
>> It would help if you could show some typical printing source code.
>>
>> #command  @ <nRow>, <nCol> SAY <say> [PICTURE <picture>];
>>       =>  printAt(<nRow>, <nCol>, <say> [, <picture>])
>>
>> Regards
>> Mark
> 
> 
> 
> --Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Richard DalzellRe: Converting from Escape! printing library
on Sun, 30 Apr 2006 13:55:23 -0500
Stanwood,

I have used Roger Donnay's eXpress++ and Clayton Jone's TopDown products. 
Each one will make your task very easy to perform in addition you will have 
a very large assortment of other tools to assist you with your xBase++ code 
and projects.

Looking at your sample provided, it will be very simple to perform.

Rick

"Stanwood Campsmith" <scampsmith@hiemstraoptical.com> wrote in message 
news:op.s772vkf41asmv7@stan1...
Mark;

Here's a small snippet from a single-page report that doesn't use @..say

  *- box heading
    hpGrayBar( nProw, nOffHorz+8, nInSide-4, 1, 20, "M" )
    hpCenter( hpBold("- Patient -"), nProw, 45+nOffHorz, "M"  )
    hpAtSay( nProw, nOffHorz+10, wf->CUSTNO, "M" )
    hpAtSay( nProw, nOffHorz+70, wf->ORDER_NO, "M" )
    nProw += nRowH
    hpBox(nHoldRow-nRowH, nOffHorz, nProw+1, 100+nOffHorz, 2, "M")

    nProw += nRowH
    hpRJust( hpBold("Name:"), nProw, nPcol, "M"  )
    hpAtSay( nProw, nPcol+3, LNAME(wf->PT_LNAME, wf->PT_FNAME,30), "M" )

    nProw += nRowH
    hpRJust( hpBold("Address:"), nProw, nPcol, "M"  )
    hpAtSay( nProw, nPcol+3, wf->PT_ADDR, "M" )

    nProw += nRowH
    IF !EMPTY( wf->PT_CITY )
       hpAtSay( nProw, nPcol+3, CITYX( wf->PT_CITY, wf->PT_STATE,
wf->PT_ZIP, 30 ), "M"  )
    ELSE
       hpAtSay( nProw, nPcol+3, REPLICATE("_", 20), "M" )
       hpAtSay( nProw, nPcol+35, REPLICATE("_", 3), "M" )
       hpAtSay( nProw, nPcol+40, REPLICATE("_", 5), "M" )
    ENDIF

    nProw += nRowH
    hpRJust( hpBold("Phone1:"), nProw, nPcol, "M"  )
    cDetail := IIF( EMPTY( SUBSTR(wf->PT_PHONE1,6,3) ), "(____)____-_____",
wf->PT_PHONE1 )
    cDetail += SPACE(5) + IIF( EMPTY(wf->PT_PTYP1), "_______", wf->PT_PTYP1)
    hpAtSay( nProw, nPcol+3, cDetail, "M"  )
    IF UPPER(TRIM(wf->PT_PTYP1)) <> "HOME"
       cDetail := IIF( EMPTY(wf->PT_PWHO1), "__________","")
       hpAtSay( nProw, nPcol+50, cDetail, "M"  )
    ENDIF

I'll have a look at the XbpPrinter class and see how far I can get writing
my own wrappers.

Thanks again;
--Stanwood

On Mon, 17 Apr 2006 16:45:48 -0400, mark carew
<markcarew@magicwanddept.com.au> wrote:

> On Mon, 17 Apr 2006 10:16:24 -0400, Stanwood Campsmith wrote:
>
>> Hello,
>>
>> We've been using the Escape! laser printer library for years.  I'd
>> appreciate any guidance on how to replace those functions without
>> completely re-writing sever dozen reports from scratch.
>>
>> Thanks again!
>> --Stanwood Campsmith
>> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
>
> Hi Stanwood,
>
> If you use @ <row>, <col> say for printing you could start by isolating
> your print routines in separate prgs and using the following to translate
> your print statements into a function that uses windows printing 
> xbpprinter
> class functions. I have done been through this exercise with at least 
> four
> clipper systems that I have converted to xBase++. Its usually a matter of
> using the pre-processor to switch your printing commands from text to gui
> printing.
>
> It would help if you could show some typical printing source code.
>
> #command  @ <nRow>, <nCol> SAY <say> [PICTURE <picture>];
>       =>  printAt(<nRow>, <nCol>, <say> [, <picture>])
>
> Regards
> Mark



Using Opera's revolutionary e-mail client: http://www.opera.com/mail/