Árvore de páginas

Descrição

Ponto de entrada MNTA7452 para alteração do relatório de APD de Multas (MNTA745).

Observações

Esse ponto de entrada permite customizar o relatório de APD de Multas (MNTA745) chamado na rotina MNTA745, substituindo o modelo padrão por um modelo desenvolvido pelo cliente, sendo que este deve ser desenvolvido por completo, assim como no exemplo descrito abaixo.

Exemplos

#Include 'Protheus.ch'

User Function MNTA7452()

Local aArea := GetArea()
Local nLetra
Local cPesq, cText, cVal, cApd, cValApd

Private Titulo := "Relatório de Apropriação de Débito da Multa"
Private oPrint

oPrint := TMSPrinter():New( OemToAnsi( Titulo ) )

oPrint:SetPortrait() //Default Retrato
oFonte := TFont():New("ARIAL",15,15,,.F.,,,,.F.,.F.)
oFont10 := TFont():New("ARIAL",10,10,,.F.,,,,.F.,.F.)
oFont14 := TFont():New("ARIAL",14,14,,.T.,,,,.F.,.F.)
oFont15 := TFont():New("ARIAL",15,15,,.T.,,,,.F.,.F.)

nLinBox := 0
nLinFim := 70
nColFim := 2350
oPrint:StartPage() // Inicializa página de impressão.

oPrint:Say( nLinFim, 025 , "Número da multa:" , oFont15 ) //"Número da multa:"
oPrint:Say( nLinFim, 490 , Transform( AllTrim( TSI->TSI_MULTA ), "@R! 999/99/99" ), oFonte )
oPrint:Say( nLinFim, 1600, "Número do APD:" , oFont15 ) //"Número do APD:"
oPrint:Say( nLinFim, 2050, AllTrim( TSI->TSI_NUMAPD ) , oFonte )

//"Informações do Motorista"
/*------------------------------------------------------*/
//dependendo das informações cadastradas na multa, se for realizada a geração automática de APD pode ser que o campo fique vazio.
nLinFim += 100
oPrint:Say( nLinFim, 927, "Informações do Motorista", oFont15 ) //"Informações do Motorista"
nLinFim += 60
oPrint:Line(nLinFim, 025, nLinFim, nColFim )
nLinFim += 10
dbSelectArea( "DA4" )
dbSetOrder( 01 ) //DA4_FILIAL+DA4_COD
dbSeek( xFilial( "DA4" )+TSI->TSI_CODMOT )
dbSelectArea( "SRA" )
dbSetOrder( 01 ) //RA_FILIAL+RA_MAT
dbSeek( xFilial( "SRA" )+DA4->DA4_MAT )
oPrint:Say( nLinFim, 035, "Motorista: " + AllTrim( TSI->TSI_CODMOT )+" - "+Capital( NGSEEK( "DA4", TSI->TSI_CODMOT, 1, "DA4_NOME" )), oFont10 ) //"Motorista: "
nLinFim += 45
If !Empty( SRA->RA_CC )
oPrint:Say( nLinFim, 035, "Centro de custo: " + AllTrim( SRA->RA_CC )+" - "+Capital( NGSEEK( "CTT", SRA->RA_CC, 1, "CTT_DESC01" )), oFont10 ) //"Centro de custo: "
nLinFim += 45
EndIf
If !Empty( SRA->RA_CARGO )
cPesq := " "
cText := Capital( NGSEEK( "SQ3", SRA->RA_CARGO, 1, "SubStr(Q3_DESCSUM,1,40)" ))
nLetra := AT( cPesq, cText )
If nLetra == 0
cValApd := Capital( NGSEEK( "SQ3", SRA->RA_CARGO, 1, "SubStr(Q3_DESCSUM,1,40)" ))
Else
cVal := SubStr( AllTrim( Capital( NGSEEK( "SQ3", SRA->RA_CARGO, 1, "SubStr(Q3_DESCSUM,1,40)" ))), 1, nLetra )
cApd := Lower( SubStr( AllTrim( NGSEEK( "SQ3", SRA->RA_CARGO, 1, "SubStr(Q3_DESCSUM,1,40)" )), nLetra, 150 ) )
cValApd := cVal + cApd
EndIf
oPrint:Say( nLinFim, 035, "Cargo: " + AllTrim( SQ3->Q3_CARGO )+" - "+cValApd, oFont10 ) //"Cargo: "
nLinFim += 45
EndIf
dbSelectArea( "SM0" )
SM0->( dbSetOrder( 01 ))
If !Empty( DA4->DA4_FILBAS )
oPrint:Say( nLinFim, 035, "Filial: " + AllTrim( DA4->DA4_FILBAS )+" - "+AllTrim( SM0->M0_FILIAL ), oFont10 ) //"Filial: "
nLinFim += 45
EndIf
oPrint:Box( 170, 025, nLinFim, nColFim )
/*------------------------------------------------------*/

If nLinFim > 2350// Pula linha.
oPrint:EndPage()// Termina página de impressão.
oPrint:StartPage()// Inicializa página de impressão.
nLinFim := 0
EndIf

// Assinaturas
/*------------------------------------------------------*/
nLinFim += 500
oPrint:Line( nLinFim, 025 , nLinFim, 1100 ) // Linha para Assinatura / carimbo do responsável
oPrint:Line( nLinFim, 1250, nLinFim, nColFim ) // Linha para Assinatura do gerente
nLinFim += 10
oPrint:Say( nLinFim, 116 , "Assinatura / carimbo do responsável", oFont14 ) // "Assinatura / carimbo do responsável"
oPrint:Say( nLinFim, 1600, "Assinatura do gerente", oFont14 ) // "Assinatura do gerente"
/*------------------------------------------------------*/

// "Recusa de Assinatura"
/*------------------------------------------------------*/
nLinFim += 230
oPrint:Box( nLinFim, 025, nLinFim+200, nColFim ) // Monta Box
nLinFim += 10
oPrint:Say( nLinFim, 979, "Recusa de Assinatura", oFont15 ) // "Recusa de Assinatura"
nLinFim += 60
oPrint:Line( nLinFim, 025 , nLinFim, nColFim )
oPrint:Say( nLinFim, 035 , "Testemunha 1:", oFont10 )// "Testemunha 1:"
oPrint:Say( nLinFim, 1250, "Testemunha 2:", oFont10 )// "Testemunha 2:"
nLinFim += 45
oPrint:Say( nLinFim, 035 , "RG:", oFont10 ) // "RG:"
oPrint:Say( nLinFim, 1250, "RG:", oFont10 ) // "RG:"
nLinFim += 45
oPrint:Say( nLinFim, 035 , "CPF:", oFont10 ) // "CPF:"
oPrint:Say( nLinFim, 1250, "CPF:", oFont10 ) // "CPF:"
nLinFim -= 45
oPrint:Line( nLinFim, 280 , nLinFim, 1100 ) // Linha Testemunha 1
oPrint:Line( nLinFim, 1490, nLinFim, 2300 ) // Linha Testemunha 2
/*------------------------------------------------------*/

oPrint:EndPage() // Finaliza página de impressão.
oPrint:Preview() // Preview do relatório.

RestArea( aArea ) // Retorna a área de trabalho.
Return .T.

Idioma

Português(Brasil)

Versões

Todas

Sistemas Operacionais Suportados

Todos

Compatível com as Bases de Dados

Todas

Retorno

Lógico

Programa Fonte

MNTA745