O que é?

Classe que cria uma janela para a configuração dos parâmetros para uma impressão.

Muito utilizada em conjunto com a classe FwMsPrinter.


Métodos

A seguir são listados os métodos e eventuais detalhes de cada método.


New

Constrói o objeto e permite posteriormente as manipulações, operações e uso.

Sintaxe: FwPrintSetup():New(nFlags, [cTitle]) => objeto

Parâmetros:

NomeTipoDescrição
nFlagsNuméricoParâmetro de configuração, ver lista a seguir
cTitleCaracterTítulo a ser apresentado caso a janela seja exibida

Exemplo e lista dos parâmetros de configuração:


#include "fwprintsetup.ch"
// PD_ISTOTVSPRINTER=1
// PD_DISABLEDESTINATION=2
// PD_DISABLEORIENTATION=4
// PD_DISABLEPAPERSIZE=8
// PD_DISABLEPREVIEW=16

oPrintSetup := FWPrintSetup():New(PD_ISTOTVSPRINTER+PD_DISABLEDESTINATION, "Um título elegante")

Activate

Exibe a janela para o complemento da configuração pela pessoa usando o programa.

Sintaxe: FWPrintSetup():Activate() => nModalResult

Retorno: nModalResult

Quando pressionado o botão Ok => PD_OK = 1

Quando pressionado o botão Cancelar => PD_CANCEL = 2

GetProperty

Recupera informações das propriedades.

Sintaxe: FwPrintSetup():GetProperty(nItem) => xValue

Parâmetros:

NomeTipoDescrição
nItemNuméricoIndica a propriedade que deve ter o valor recuperado, ver lista das propriedades a seguir.

Lista de propriedades:

#Include "fwprintsetupstr.ch"

PD_DESTINATION=1
PD_PRINTTYPE=2
PD_ORIENTATION=3
PD_PAPERSIZE=4
PD_PREVIEW=5
PD_VALUETYPE=6
PD_MARGIN=7


Detalhes das propriedades:

PD_DESTINATION -> DESTINO DA IMPRESSÃO

Recupera a informação do destino da impressão, local (smartclient desktop) ou servidor (appserver).
1 - servidor
2 - local

PD_PRINTTYPE -> TIPO DA IMPRESSÃO

Recupera o tipo da impressão definida, esta informação pode variar conforme o componente utilizado. Na classe FwMsPrinter as possibilidades são:
1 - spool
6 - pdf

PD_ORIENTATION -> ORIENTAÇÃO DA PÁGINA DURANTE A IMPRESSÃO

Recupera a orientação definida para a página na impressão.
1 - retrato
2 - paisagem

PD_PAPERSIZE -> TAMANHO DO PAPEL

Recupera a informação da dimensão do papel utilizado na impressão, esta lista pode variar conforme o componente utilizado na impressão, na fwmsprinter as possibilidades são:
1 - "Letter 8 1/2 x 11 in"
2 - "A4 210 x 297 mm"
3 - "A3 297 x 420 mm"
4 - "Executive 7 1/4 x 10 1/2 in"
5 - "Tabloid 11 x 17 in"

Tentar definir algo diferente dessa lista causa comportamentos inadequados durantes a impressão.

PD_PREVIEW -> EXIBE EM TELA?

Recupera a configuração para exibir janela com a imagem da impressão antes de enviar para a impressora.
Essa configuração tem valor do tipo lógico e o padrão dessa configuração é falso.
Não é assegurado que o exibido na tela seja o resultado da impressão no papel.
Os drivers instalados e a comunicação appserver, smartclient ou printer.exe com a impressora afetam o resultado da impressão no papel.

PD_VALUETYPE -> VALOR ASSOCIADO COM A IMPRESSÃO 

Recupera o nome do arquivo e endereço definido para a impressão ou geração.

PD_MARGINMARGEM -> DEFINIÇÃO DE MARGEM

Recupera a definição das margens da página a serem respeitadas na impressão.
O retorno é uma lista com os valores definidos para:
posição 1 - margem esquerda
posição 2 - margem superior
posição 3 - margem direita
posição 4 - margem inferior

SetOrderItem

Exibe um componente do tipo ListBox para a escolha da ordem de impressão do relatório.

Sintaxe: FWPrintSetup():SetOrderItem(aItems) 

NomeTipoDescrição
aItemslistaLista com as opções de ordem

SetOrderParms

Define a opção de ordem do relatório.

Sintaxe:FwPrintSetup():SetOrderParms(aOrder, @nOrder)

NomeTipoDescriçãoReferência
aOrderListaLista com as opções de ordem
nOrderNuméricoItem selecionadox

SetProperty

Atribui o valor informado a uma propriedade.

Sintaxe: FwPrinSetup():SetProperty(nItem, xValue)

Parâmetros:

NomeTipoDescrição
nItemNuméricoCódigo da propriedade para atribuição. As opções são as mesmas do método GetProperty.
xValueNumérico | Lógico | ListaValor depende da propriedade utilizada. Mais detalhes no método GetProperty.

SetUserParms

Define o bloco de código a ser executado quando acionado o botão oBtnParms.

Sintaxe: FwPrintSetup():SetUserParms(bActionUser)

Parâmetros:

NomeTipoDescrição
bActionUserBloco de códigoInstrução para ser executado no acionamento do botão


Exemplo

#include 'protheus.ch'
#include "fwprintsetup.ch"

user function showprtstp()
  local oSetup as object

  oSetup := FWPrintSetup():New(PD_ISTOTVSPRINTER, "Uma impressão XYZ")

  varinfo('propriedades PD_DESTINATION', oSetup:GetProperty(PD_DESTINATION))
  varinfo('propriedades PD_PRINTTYPE', oSetup:GetProperty(PD_PRINTTYPE))
  varinfo('propriedades PD_ORIENTATION', oSetup:GetProperty(PD_ORIENTATION))
  varinfo('propriedades PD_PAPERSIZE', oSetup:GetProperty(PD_PAPERSIZE))
  varinfo('propriedades PD_PREVIEW', oSetup:GetProperty(PD_PREVIEW))
  varinfo('propriedades PD_VALUETYPE', oSetup:GetProperty(PD_VALUETYPE))
  varinfo('propriedades PD_MARGIN', oSetup:GetProperty(PD_MARGIN))

return