Gerenciador de impressão.
Sintaxe
OurSpool( [ cArquivo ] ) -> nil
Argumento | Obrigat. | Tipo | Descrição |
cArquivo | Sim | C | Relató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