Gerenciador de impressão.

Sintaxe

OurSpool( [ cArquivo ] ) -> nil

ArgumentoObrigat.TipoDescrição
cArquivoSimCRelatório gerado em disco

Descrição

A função OurSpool() executa o gerenciador de impressão do Siga, carregando os relatórios gerados no diretório configurado através parâmetro MV_RELT no dicionário SX6. Caso quiser visualizar um relatório específico, informe o nome no parâmetro cArquivo.

Exemplo

User Function <nome-da-função>( )

Local cProgram := ‘Exemplo’  // nome do relatório

Local cAlias := ‘XXX’  // alias do arquivo

Local cPerg := ‘XXXXXX’  // grupo de perguntas

Local cTitulo := ‘Titulo do relatório’

Local cDesc1 := ‘Descrição’

Local cDesc2 := ‘continuação da descrição’

Local cDesc3 := ‘continuação da descrição’

Local lDic := .F.  // não utiliza dicionário

Local aOrd := { ‘1º Ordem’, ‘2º ordem’, ‘3º ordem’ }

Local lCompres :=.F.

Local cTam := “G”

Private m_pag := 1

Private aReturn := { “Zebrado”, 1,”Administracao”, 1, 2, 1, “”,1 }

Private  wrel

Pergunte( cPerg, .F. )

wrel := SetPrint( cAlias, cProgram, cPerg, @cTitulo, cDesc1, cDesc2, cDesc3, lDic, aOrd , lCompres, cTam )

If nLastKey == 27

Set Filter To

Return

EndIf

SetDefault( aReturn, cAlias )

If nLastKey == 27

Set Filter To

Return

EndIf

RptStatus( {|lFim| Imprime( @lFim, cAlias, cTitulo, cProgram, cTamanho ) }, cTitulo )

Return

 

// rotina de impressão

Static Function Imprime( lFim, cAlias, cTitulo, cProgram, cTamanho )

Local nLin   := 80

Local cCabec1 := ‘Cabecalho 1’

Local cCabec2 := ‘Cabecalho 2’

dbSelectArea( cAlias )

SetRegua( RecCount() )

While !Eof() .And. ( XX_COD >= MV_PAR01 .And. XX_COD <= MV_PAR02 )

If lFim

@Prow()+1,001 PSAY “CANCELADO PELO OPERADOR”

Exit

EndIf

If nLin > 58

Cabec( cTitulo, cCabec1, cCabec2, cProgram, cTamanho, 15 )  // cabeçalho

nLin := 8

EndIf

@ nLin,000 PSAY __PrtFatLine()

@ nLin++,001 PSAY …

@ nLin++,001 PSAY …

@ nLin++,001 PSAY …

@ nLin,000 PSAY __PrtThinLine()

IncRegua()

dbSkip()

End

IF nLin != 80

nLin++

If nLin > 60

Cabec( cTitulo, cCabec1, cCabec2, cProgram, cTamanho, 15 )  // cabeçalho

Endif

@ nLin,000 PSAY __PrtThinLine()

Roda( 0, cTitulo, cTamanho ) // Rodapé

EndIf

If aReturn[5] = 1

Set Printer To

dbCommitAll()

OurSpool( wrel )

Endif

MS_FLUSH()

Return

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Necessita de ajuda?