Comandos ADVPL
Comandos ADVPL
Comandos ADVPL
import.css=/download/attachments/327912/newLayout.css
Colapse ALL
Expand ALL
Classe: FWMsPrinter
Cria um objeto que permite visualizar e imprimir relatório.
Hierarquia
Construtores
New
New
Sintaxe
FWMsPrinter(): New ( < cFilePrintert >, [ nDevice], [ lAdjustToLegacy], [ cPathInServer], [ lDisabeSetup ], [ lTReport], [ @oPrintSetup], [ cPrinter], [ lServer], [ lPDFAsPNG], [ lRaw], [ lViewPDF], [ nQtdCopy] ) --> oPrinter
Parâmetros
nDevice Numérico Tipos de Saída aceitos:IMP_SPOOL Envia para impressora.IMP_PDF Gera arquivo PDF à partir do relatório.Default é IMP_SPOOL
lAdjustToLegacy Lógico Se .T. recalcula as coordenadas para manter o legado de proporções com a classe TMSPrinter. Default é .T.IMPORTANTE: Este cálculos não funcionam corretamente quando houver retângulos do tipo BOX e FILLRECT no relatório, podendo haver distorções de algumas pixels o que acarretará no encavalamento dos retângulos no momento da impressão.
lDisabeSetup Lógico Se .T. não exibe a tela de Setup, ficando à cargo do programador definir quando e se será feita sua chamada. Default é .F.
lTReport Lógico Indica que a classe foi chamada pelo TReport. Default é .F.
lServer Lógico Indica impressão via Server (.REL Não será copiado para o Client). Default é .F.
lPDFAsPNG Lógico .T. Indica que será gerado o PDF no formato PNG. O Default é .T.
lRaw Lógico .T. indica impressão RAW/PCL, enviando para o dispositivo de impressão caracteres binários(RAW) ou caracteres programáveis específicos da impressora(PCL)
lViewPDF Lógico Quando o tipo de impressão for PDF, define se arquivo será exibido após a impressão. O default é .T.
nQtdCopy Numérico Define a quantidade de cópias a serem impressas quando utilizado o metodo de impressão igual a SPOOL. Recomendavel em casos aonde a utilização da classe FwMsPrinter se da por meio de eventos sem a intervenção do usuario (JOBs / Schedule por exemplo)Obs: Aplica-se apenas a ambientes que possuam o fonte FwMsPrinter.prw com data igual ou superior a 03/05/2012.
Retorno
oPrinter
()
Retorna o objeto criado.
Observações
Exemplos
lAdjustToLegacy := .F. lDisableSetup := .T.oPrinter := FWMSPrinter():New("Danfe.rel", IMP_PDF, lAdjustToLegacy, , lDisableSetup)// Ordem obrigátoria de configuração do relatóriooPrinter:SetResolution(72)oPrinter:SetPortrait()oPrinter:SetPaperSize(DMPAPER_A4) oPrinter:SetMargin(60,60,60,60) // nEsquerda, nSuperior, nDireita, nInferior oPrinter:cPathPDF := "c:\directory\" // Caso seja utilizada impressão em IMP_PDF
Métodos
Box
Box
Sintaxe
FWMsPrinter(): Box ( < nRow>, < nCol>, < nBottom>, < nRight>, [ cPixel] ) -->
Parâmetros
Observações
Exemplos
oPrinter:Box( 130, 10, 600, 900, "-4")
Cancel
Cancel
Sintaxe
Observações
Exemplos
oPrinter:Cancel()
Canceled
Canceled
Sintaxe
Retorno
lRet
()
Retorna se o relatório foi cancelado pelo método Cancel().
Observações
Exemplos
oPrinter:Canceled()
Cmtr2Pix
Cmtr2Pix
Devolve por referência, o valor convertido em pixels de uma coluna e uma linha.
Sintaxe
Parâmetros
Observações
Exemplos
nCol1 := 10nRow1 := 10oPrinter:Cmtr2Pix( nCol1, nRow1)//Resultado//nCol1 := 1107.08955224//nRow1 := 1107.26600985
Code128C
Code128C
Sintaxe
FWMsPrinter(): Code128C ( < nRow>, < nCol>, < cCodeBar>, < nSizeBar> ) -->
Parâmetros
Observações
Exemplos
#Include "PROTHEUS.CH"#Include "RPTDEF.CH" #INCLUDE "TBICONN.CH"User Function Code128C()Local oPrinter PREPARE ENVIRONMENT EMPRESA "01" FILIAL "01"oPrinter := FWMSPrinter():New('teste',6,.F.,,.T.,,,,,.F.)oPrinter:Setup()oPrinter:setDevice(IMP_PDF)oPrinter:cPathPDF :="C:\"oPrinter:Say(10,0,"Teste para Code128C") oPrinter:Code128c(100, 10, '1234567', 50) oPrinter:EndPage()oPrinter:Preview() FreeObj(oPrinter)oPrinter := NilRESET ENVIRONMENTReturn
FwMsBar
FwMsBar
Sintaxe
FWMsPrinter():FWMsBar(cTypeBar,nRow,nCol,cCode,oPrint,lCheck,Color,lHorz, nWidth,nHeigth,lBanner,cFont,cMode,lPrint,nPFWidth,nPFHeigth,lCmtr2Pix)-->
Parâmetros
"INT25","MAT25,"IND25","CODABAR","CODE3_9"
lBanner Lógico Se imprime a linha com o código embaixo da barra. Default .T.
cFont Caracter Nome do Fonte a ser utilizado. Defautl "Arial"
lPrint Lógico Se executa o método Print() de oPrinter pela MsBar. Default .T.
Observações
Exemplos
#INCLUDE "RPTDEF.CH"
#INCLUDE "FWPrintSetup.ch"
#INCLUDE "protheus.ch"
User Function totvsprt()
Local lAdjustToLegacy := .F.
Local lDisableSetup := .T.
Local oPrinter
Local cLocal := "\spool"
Local cCodINt25 := "34190184239878442204400130920002152710000053475"
Local cCodEAN := "123456789012"
oPrinter := FWMSPrinter():New("exemplo.rel", IMP_PDF, lAdjustToLegacy,cLocal, lDisableSetup, , , , , , .F., )
oPrinter:FWMSBAR("INT25" /*cTypeBar*/,1/*nRow*/ ,1/*nCol*/, cCodINt25/*cCode*/,oPrinter/*oPrint*/,.T./*lCheck*/,/*Color*/,.T./*lHorz*/,0.02/*nWidth*/,0.8/*nHeigth*/,.T./*lBanner*/,"Arial"/*cFont*/,NIL/*cMode*/,.F./*lPrint*/,2/*nPFWidth*/,2/*nPFHeigth*/,.F./*lCmtr2Pix*/
oPrinter:FWMSBAR("EAN13" /*cTypeBar*/,5/*nRow*/ ,1/*nCol*/ ,cCodEAN /*cCode*/,oPrinter/*oPrint*/,/*lCheck*/,/*Color*/,/*lHorz*/, /*nWidth*/,/*nHeigth*/,/*lBanner*/,/*cFont*/,/*cMode*/,.F./*lPrint*/,/*nPFWidth*/,/*nPFHeigth*/,/*lCmtr2Pix*/)
oPrinter:Setup()
if oPrinter:nModalResult == PD_OK
oPrinter:Preview()
EndIf
Return
DataMatrix
DataMatrix
Sintaxe
FWMsPrinter(): DataMatrix ( < nCol>, < nRow>, < cCodeBar>, < nSizeBar> ) -->
Parâmetros
Observações
Esta opção esta disponivel para TotvsPrinter.exe em versões superiores à 1.3.0. Para confirmação da versão utilize na linha de comando: totvsprinter -v.
Exemplos
#Include "PROTHEUS.CH"#Include "RPTDEF.CH" #INCLUDE "TBICONN.CH"User Function DataMatrix()Local oPrinter PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01"oPrinter := FWMSPrinter():New('teste',6,.F.,,.T.,,,,,.F.)oPrinter:Setup()oPrinter:setDevice(IMP_PDF)oPrinter:cPathPDF :="C:\"oPrinter:Say(180,0,"Teste para DataMatrix")oPrinter:DataMatrix(0,300,"DataMatrix gerado com sucesso", 100) oPrinter:EndPage()oPrinter:Preview() FreeObj(oPrinter)oPrinter := NilRESET ENVIRONMENTReturn
Ellipse
Ellipse
Sintaxe
FWMsPrinter(): Ellipse ( < nLeft>, < nTop>, < nBottom>, < nRigth>, [ nColorIn], [ nColorOut], [ nLineType], [ cPixel] ) -->
Parâmetros
nLineType Numérico Estilo da linha. Default 0. Para mais informações sobre os tipos disponíveis, consulte a área Observações.
cPixel Caracter Pixel no formato caractere exemplo “02”, caso necessário us de decimais utilize “-2” para 0,2 Pixels.
Observações
nLineType
Exemplos
1 de 4 15/8/2013 15:55
View Source http://tdn.totvs.com/plugins/viewsource/viewpagesrc.action?pageId=3...
EndPage
EndPage
Sintaxe
Observações
Exemplos
oPrinter:EndPage()
FillRect
FillRect
Cria um objeto do tipo retângulo, que pode ser preenchido com uma determinada cor.
Sintaxe
Parâmetros
oBrush Objeto Indica o objeto do tipo TBrush utilizado para definir a cor de preenchimento do shape e responsável pelo preenchimento do retângulo.
cPixel Caracter Expessura da linha em pixels. Default é "-2"
Observações
Exemplos
oBrush1 := TBrush():New( , CLR_YELLOW)oPrinter:Fillrect( {100, 10, 200, 200 }, oBrush1, "-2")
GetFontWidths
GetFontWidths
Sintaxe
Parâmetros
aFontSize Array of Record Vetor passado por referencia que recebera a lista de largura da fonte selecionada X
Retorno
aRet
()
Vetor passado por referencia que recebera a lista de largura da fonte selecionada
Observações
null
GetOrientation
GetOrientation
Sintaxe
Observações
nOrientation
Exemplos
oPrinter:GetOrientation()
GetTextHeight
GetTextHeight
Sintaxe
Parâmetros
oFont Objeto Indica o objeto do tipo TFont, utilizado para definir as características da fonte e realizar o cálculo. X
Retorno
nHeight
()
Retorna a altura do texto.
Observações
Exemplos
oFont1 := TFont():New( 'Courier New', , -18, .T.)nHeight := oPrinter:GetTextheight( "Teste", oFont1)
GetTextWidth
GetTextWidth
Sintaxe
Parâmetros
oFont Objeto Indica o objeto do tipo TFont, utilizado para definir as características da fonte e realizar o cálculo. X
Retorno
nWidth
()
Retorna a largura do texto.
Observações
null
Exemplos
oFont1 := TFont():New( 'Courier New', , -18, .T.)nWidht := oPrinter:GetTextWidth( "Teste", oFont1)
GetViewPDF
GetViewPDF
Quando o tipo de impressão for PDF, retorna se o arquivo será exibido após a impressão.
Sintaxe
Observações
Este método estará disponível em pacote de lib, no qual o fonte FWMSPrinter.PRW tenha a data superior ou igual a 08/09/2011.
Exemplos
oPrinter:GetViewPDF()
IsPrinterActive
IsPrinterActive
Sintaxe
Observações
Exemplos
oPrinter:IsPrinterActive()
Line
Line
Sintaxe
FWMsPrinter(): Line ( < nTop>, < nLeft>, < nBottom>, < nRight>, [ nColor], [ cPixel] ) -->
Parâmetros
Observações
Exemplos
oPrinter:Line( 130, 10, 130, 900, "-4")
nHorzRes
nHorzRes
Sintaxe
Observações
Exemplos
oPrinter:nHorzRes()
nHorzSize
nHorzSize
Sintaxe
Retorno
nHorzSize
()
Largura da página
Observações
null
Exemplos
oPrinter:nHorzSize()
nLogPixelX
nLogPixelX
Sintaxe
Retorno
nResult
()
Retorna a resolução vertical em pixels da impressora configurada.
Observações
Exemplos
oPrinter:nLogPixelX()
nLogPixelY
nLogPixelY
Sintaxe
Retorno
nResult
()
Retorna a resolução horizontal em pixels da impressora configurada.
Observações
Exemplos
oPrinter:nLogPixelY()
nVertRes
nVertRes
Sintaxe
2 de 4 15/8/2013 15:55
View Source http://tdn.totvs.com/plugins/viewsource/viewpagesrc.action?pageId=3...
nResult
()
Retorna a resolução vertical da impressora configurada.
Observações
Exemplos
oPrinter:nVertRes()
nVertSize
nVertSize
Sintaxe
Observações
Exemplos
oPrinter:nVertSize()
PaperSize
PaperSize
Sintaxe
Observações
null
Exemplos
oPrinter:PaperSize()
Preview
Preview
Sintaxe
Observações
Exemplos
oPrinter:Preview()
Sintaxe
Observações
Exemplos
oPrinter:Print()
PrinterName
PrinterName
Sintaxe
Observações
A imagem é ajustada para preencher todo o espaço definido entre a altura e largura do objeto.
Exemplos
oPrinter:PrinterName()
QRCode
QRCode
Sintaxe
FWMsPrinter(): QRCode ( < nCol>, < nRow>, < cCodeBar>, < nSizeBar> ) -->
Parâmetros
Observações
Esta opção esta disponivel para TotvsPrinter.exe em versões superiores à 1.3.0. Para confirmação da versão utilize na linha de comando: totvsprinter -v.
Exemplos
#Include "PROTHEUS.CH"#Include "RPTDEF.CH" #INCLUDE "TBICONN.CH"User Function QRCode()Local oPrinter PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01"oPrinter := FWMSPrinter():New('teste',6,.F.,,.T.,,,,,.F.)oPrinter:Setup()oPrinter:setDevice(IMP_PDF)oPrinter:cPathPDF :="C:\"oPrinter:Say(40,0,"Teste para QRCode")oPrinter:QRCode(0,150,"QR Code gerado com sucesso", 100) oPrinter:EndPage()oPrinter:Preview() FreeObj(oPrinter)oPrinter := NilRESET ENVIRONMENTReturn
Say
Say
Sintaxe
FWMsPrinter(): Say ( < nRow>, < nCol>, < cText>, [ oFont], [ nWidth], [ nClrText], [ nAngle] ) -->
Parâmetros
oFont Objeto Indica o objeto do tipo TFont utilizado para definir as características da fonte aplicada na exibição do conteúdo do controle visual.
Observações
A imagem é ajustada para preencher todo o espaço definido entre a altura e largura do objeto.
Exemplos
oFont1 := TFont():New( "Courier New", , -18, .T.)oPrinter:Say( 10, 10, "texto para visualização", oFont1, 1400, CLR_HRED)
SayAlign
SayAlign
Sintaxe
FWMsPrinter(): SayAlign ( < nRow>, < nCol>, < cText>, [ oFont], [ nWidth], [ nHeigth], [ nClrText], [ nAlignHorz], [ nAlignVert ] ) -->
Parâmetros
oFont Objeto Indica o objeto do tipo TFont utilizado para definir as características da fonte aplicada na exibição do conteúdo do controle visual.
nAlignHorz Numérico Alinhamento Horizontal. Para mais informações sobre os alinhamentos disponíveis, consulte a área Observações.
nAlignVert Numérico Alinhamento Vertical. Para mais informações sobre os alinhamentos disponíveis, consulte a área Observações.
Observações
nAlignHorz
nAlignVert
Exemplos
oFont1 := TFont():New('Courier new',,-18,.T.)oPrinter:SayAlign( 10,10,"Texto para visualização",oFont1,1400, 200, CLR_HRED, 0, 2 )
SayBitmap
SayBitmap
Sintaxe
FWMsPrinter(): SayBitmap ( < nRow>, < nCol>, < cBitmap>, [ nWidth], [ nHeight] ) -->
Parâmetros
cBitmap Caracter Indica o diretório e o nome, com extensão BMP (Bitmap), da imagem. X
Observações
A imagem é ajustada para preencher todo o espaço definido entre a altura e largura do objeto.
Exemplos
oPrinter:SayBitmap( 100, 200, "C:\Dir\totvs.bmp", 800, 800)
SetDevice
SetDevice
Sintaxe
Parâmetros
nDevice Numérico Tipos de Saída aceitos: IMP_SPOOL Envia para impressora. IMP_PDF Gera arquivo PDF à partir do relatório. Default é IMP_SPOOL X
Observações
null
Exemplos
oPrint:SetDevice(IMP_SPOOL)
SetFont
SetFont
Sintaxe
Parâmetros
Observações
null
Exemplos
oFont1 := TFont():New('Courier new',,-18,.T.)oPrinter:SetFont(oFont1)
SetLandscape
SetLandscape
Sintaxe
Observações
Exemplos
oPrinter:SetLandscape()
SetMargin
3 de 4 15/8/2013 15:55
View Source http://tdn.totvs.com/plugins/viewsource/viewpagesrc.action?pageId=3...
SetMargin
Sintaxe
FWMsPrinter(): SetMargin ( < nLeft>, < nTop>, < nRight>, < nBottom> ) -->
Parâmetros
Observações
null
Exemplos
oPrinter:SetMargin(10,10,10,10)
SetPaperSize
SetPaperSize
Sintaxe
Parâmetros
nPaperSize Numérico Indica o tamanho que será utilizado no papel. Para mais informações dos tipos de tamanho disponíveis, consulte a área Observações. X
Observações
nPaperSize
0 - Tamanho customizavel pelo usuario, informado em nHeight/nWidth. Aplicavel apenas em impressoes do tipo PDF.
1 - Letter 216mm x 279mm 637 x 823
3 - Tabloid 279mm x 432mm 823 x 1275
7 - Executive 184mm x 267mm 543 x 788
8 - A3 297mm x 420mm 876 x 1240
9 - A4 210mm x 297mm 620 x 876
Exemplos
oPrinter:setPaperSize(9)
SetPortrait
SetPortrait
Sintaxe
Observações
Exemplos
oPrinter:SetPortrait()
SetResolution
SetResolution
Sintaxe
Parâmetros
Observações
Atualmente a versão da Totvsprinter somente trabalha com o valor fixo de 72. Portanto não deve setar outro valor.
Exemplos
oPrinter:Resolution()
Setup
Setup
Sintaxe
Observações
Exemplos
oPrinter:Setup()
SetViewPDF
SetViewPDF
Quando o tipo de impressão for PDF, define se o arquivo será exibido após a impressão.
Sintaxe
Parâmetros
Observações
Este método estará disponível em pacote de lib, no qual o fonte FWMSPrinter.PRW tenha a data superior ou igual a 08/09/2011.
Exemplos
// para não apresentar o PDF após a geração do relatório.oPrinter:SetViewPDF(.F.)
StartPage
StartPage
Sintaxe
Observações
Exemplos
oPrinter:StartPage()
Propriedade
lServer Indica impressão via Server (.REL Não será copiado para o Client). Lógico
nModalResult Retorna o ModalResult do Setup, para que o usuário trate a informação Numérico
Observações
4 de 4 15/8/2013 15:55