Imprime cabeçalho personalizado nos relatórios.

Sintaxe

Cabec( cTitulo, cCabec1, cCabec2, cPrograma, cTamanho, [ nFormato ], [ uPar ], [ lPerg ] ) -> nil

Descrição

A função Cabec() imprime o cabeçalho personalizado de acordo com o conteúdo dos parâmetros cCabec1 e cCabec2. O logo impresso no cabeçalho é uma imagem de extensão “.bmp”, cujo nome está associado com o empresa corrente. Ex: ‘LGRL01.BMP’, ‘01’ é a empresa.

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,”Administração”, 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(,, 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?