Gostaria de saber como imprimir variaveis de uma base de dados para win32prn()
Gostaria que me enviassem um exemplo que escolhe as impressoras de rede e locais e imprimisse um pequeno relatorio como se fazia no clipper com variaveis
Obrigado
Com os melhores cumprimentos a todos
lapinhazzz
Código: Selecionar todos
*--------------------------------------------------------------------------------------
#define FORM_A4 9
#define RGB( nR,nG,nB ) ( nR + ( nG * 256 ) + ( nB * 256 * 256 ) )
#define PS_SOLID 0
#define BLACK RGB( 0x0 ,0x0 ,0x0 )
#define BLUE RGB( 0x0 ,0x0 ,0x85 )
#define GREEN RGB( 0x0 ,0x85,0x0 )
#define CYAN RGB( 0x0 ,0x85,0x85 )
#define RED RGB( 0x85,0x0 ,0x0 )
#define MAGENTA RGB( 0x85,0x0 ,0x85 )
#define BROWN RGB( 0x85,0x85,0x0 )
#define WHITE RGB( 0xC6,0xC6,0xC6 )
*
*--------------------------------------------------------------------------------------
FUNCTION Main()
LOCAL nPrn:=1
LOCAL aPrn:= GetPrinters()
CLS
sele 3
use produtos
inde on codigoprod to cprod
c=prod
IF EMPTY(aPrn)
Alert("No printers installed - Cannot continue")
QUIT
ENDIF
DO WHILE !EMPTY(nPrn)
CLS
@ 0,0 SAY 'Programa de teste Classe WIN32PRN(). Escolha uma impressora. ESC' +;
' para sair.'
@ 1,0 TO maxRow(),maxCol()
nPrn:= ACHOICE(2,1,maxRow()-1,maxCol()-1,aPrn,.T.,,nPrn)
IF !EMPTY(nPrn)
PrnTest(aPrn[nPrn])
ENDIF
ENDDO
*
@ 22,00 say ""
RETURN(NIL)
*
*--------------------------------------------------------------------------------------
STATIC FUNCTION PrnTest(cPrinter)
LOCAL oPrinter:= WIN32PRN():New(cPrinter), aFonts, x, nColFixed, nColTTF, ;
nColCharSet, aForms
oPrinter:Landscape:= .F.
oPrinter:FormType := FORM_A4
oPrinter:Copies := 1
*
c_string := "Teste-" + LTRIM(STR(YEAR(DATE()))) + "-" + STRZERO(MONTH(DATE()),2) +;
"-" + LTRIM(STR(DAY(DATE()))) + "=" + TIME()
*
IF !oPrinter:Create()
Alert("Cannot Create Printer")
ELSE
IF !oPrinter:startDoc( c_string )
Alert("StartDoc() failed")
ELSE
nFont := 12
oPrinter:SetFont('Courier New',12,{1,nFont}, 0, .F., .F.)
FOR N = 1 TO 2
oPrinter:NewLine()
NEXT N
*
*-----------------------------------------------------------------------------
*================================== Busca de informa‡äes =====================
oPrinter:TextOut("Impressora: " + oPrinter:PrinterName + ' ' +;
'MaxRow() = '+ltrim(STR(oPrinter:MaxRow(),4)) +;
' MaxCol() = '+ltrim(STR(oPrinter:MaxCol(),4)) , .t.)
oPrinter:NewLine()
oPrinter:SetFont('Courier New',12,{1,nFont}, 0, .F., .F.)
oPrinter:Textout(STR(oprinter:LineHeight() ) + " -altura da linha",.t.)
oPrinter:Textout(STR(oprinter:CharWidth() ) + " -largura da coluna",.T.)
oPrinter:TextOut(STR(oPrinter:Prow() ) + " -N£mero da linha",.T.)
oPrinter:TextOut(STR(oPrinter:GetCharWidth() ) + " -GetCharWidth",.T.)
oPrinter:TextOut(STR(oPrinter:GetCharHeight() ) + " -GetCharHeigth",.T.)
oPrinter:Textout(STR(oprinter:Prow() ) + " -Posi‡Æo atual da " +;
"linha",.T.)
/*
Onde:
oPrinter:TextOut("Texto a ser impresso",.T.)
1-Texto;
2-Opcional: Avan‡a linha automaticamente (.T.) ou nÆo (.F.),
sendo (.F.) o seu valor Default, quando suprimido.
*/
*======================= Aqui come‡a a impressÆo da 1¦ p gina ================
oPrinter:NewLine()
FOR nLinha = 1 TO 3
oPrinter:SetPrc(oPrinter:Prow()+01, nLinha )
oPrinter:Textout(ALLTRIM(STR(oPrinter:Prow()))+ c +;
"ola",.f.)
NEXT nLinha
oPrinter:TextAtFont(oPrinter:mm_to_posx(105),oPrinter:mm_to_posy(75), +;
"Imprimindo em negrito centralizado na horizontal","Courier New", +;
8,,700,,.T.,,,,,2)
/*
Onde:
1-Imprime a 105mm da margem esquerda;
2-Na linha 2;
3-Texto;
4-Fonte Courier New;
5-Tamanho da fonte, 10;
6-Divisor do tamanho da fonte;
7-O valor 700 indice Bold (negrito) ou (.F.);
8-Controla o sublinhado (.T.) ou (.F.);
9-Controla o it lico (.T.) ou (.F.);
10-nCharSet;
11-Nova linha (.T.) ou nÆo (.F.)
12-Atualiza PosX (.T.) ou nÆo (.F.)
13-Controla a cor de impressÆo;
14-O valor "2" indica impressÆo centralizada, "0" o texto seria
impresso … esquerda da posi‡Æo 105mm, e "1" o texto estaria …
direita do ponto 105 mm.
*/
*======================= Aqui come‡a a impressÆo da 2¦ p gina ================
oPrinter:NewPage()
oPrinter:NewLine()
endi
endif


