Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
PreviewVariáveis

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.

Veja também

Idioma

Português(Brasil)

Versões

Todas

Sistemas Operacionais Suportados

Todos

Compatível com as Bases de Dados

Todas

Updates

Parâmetros

Retorno

Lógico

Eventos de chamada do Ponto de Entrada

Programa Fonte

MNTA745