Вы находитесь на странице: 1из 7

Esqueceu sua senha? Esqueceu seu usuário?

Registrar
Fórum
Protheus/Microsiga/Totvs
ADVPL
IMPRESSAO DE RELATORIO TREPORT
Linguagem de Programação ADVPL
Árvore Indentado

TÓPICO: IMPRESSAO DE RELATORIO TREPORT


Re: IMPRESSAO DE RELATORIO TREPORT 28 Set
2012 20:48 #6236
Bia Noite Michel,

 Luis Carlos OBRIGADO PELO RETORNO E POR OLHAR O cODIGO


Sombra fONTE.
 OFFLINE
 Moderador ENTAO , NA VERDADE I RELATORIO ESTAR CERTO
SIM. E ESTAR GERANDO PARA PLANILHA EM
 EXCEL.
 Postagens: 545
 Obrigados EU É QUE NÃO VI O RELATORIO GERADO NA 2A ABA
Recebidos: 91 DO EXCEL...

 MAS VALEU PELO RETORNO

ABS
O administrador desabilitou o acesso público de escrita.

Re: IMPRESSAO DE RELATORIO TREPORT 28 Set


2012 14:55 #6219
Luiz Carlos,
 Michel
 OFFLINE Testei o seu programa aqui e rodou legal, inclusive no
 Membro Ouro excel.

 Veja se o diretorio onde você esta gerando o mesmo não


 Postagens: 155 tem alguma restrição.
 Obrigados
Recebidos: 17 Gerei no diretoria C:\Spool onde o Totvs gera os
 relatorios,, não sei se é isso

Att. Michel
O administrador desabilitou o acesso público de escrita.
IMPRESSAO DE RELATORIO TREPORT 27 Set
2012 21:07 #6195
 Lu BOA NOITE PESSOAL
is
Ca DESENVOLVI UM RELATORIO DE FUNCIONARIOS UTILIZANDO A
rlo CLASSE TREPORT
s
So SO QUE ESTOU COM DIFICULDADES NA HORA DE MANDAR
m IMPRIMIOR EM PLANILHA DO EXCEL.
br
a IMPRIME EM DISCO, E NA IMPRESSORA TUDO A CONTEXTO, SO
 O QUE NA HORA QUE MANDO GERAL EM PLANILHA DE EXCEL,
FF ABRE O EXCEL, MAS O RELATORIO NÃO APARECE.
LI
N ALGUEM PODERIA ME AUXILIAR NESSA QUESTAO ??
E
 M ABAIXO ESTAR O CODIGO FONTE DO PROGRAMA
od
era ======================================================
do =========================================
r
 #include "rwmake.ch"
#include "protheus.ch"
#define DMPAPER_A4 9
 Po
sta User Function RELFUNC()
ge
ns: Private cPerg := PadR('RELFUNC',10)
54 Private oReport
5 Private cSituacao
 Ob
rig
ad
os ValidPerg()
Re pergunte(cPerg,.F.)
ce
bi
do oReport := reportDef()
s:
91 oReport:printDialog()

 Return

static function reportDef()


local oReport
Local oSection1
Local oSection2
local cTitulo := ' RELAÇÃO DE FUNCIONÁRIOS'
cSituacao := MV_PAR05

// ALERT("ENTREI NO RELATORIO")

oReport := TReport():New("RELFUNC","RELAÇÃO DE
FUNCIONÁRIOS",cPerg,{|oReport| PrintReport(oReport)},"Este relatorio
ira imprimir a relacao de Funcionarios")

oReport:SetPortrait()
oReport:SetTotalInLine(.F.)
oReport:ShowHeader()

oSection1 := TRSection():New(oReport,"Filial",{"SRA"})
oSection1:SetTotalInLine(.F.)

TRCell():new(oSection1, "RA_CC" , "SRA", 'CENTRO DE .CUSTO '


,PesqPict('SRA',"RA_CC"),TamSX3("RA_CC")[1]+1,/*lPixel*/,/*{|| code-
block de impressao }*/)

TRCell():new(oSection1, "CTT_DESC01" , "CTT", ' DESCRIÇÃO '


,PesqPict('CTT',"CTT_DESC01"),TamSX3("CTT_DESC01")
[1]+1,/*lPixel*/,/*{|| code-block de impressao }*/)

TRCell():new(oSection1, "RA_SITFOLH" , "SRA", 'SIT.FOLHA'


,PesqPict('SRA',"RA_SITFOLH"),TamSX3("RA_SITFOLH")
[1]+1,/*lPixel*/,/*{|| code-block de impressao }*/)

TRCell():new(oSection1, "RA_MAT" , "SRA", 'MAT'


,PesqPict('SRA',"RA_MAT"),TamSX3("RA_MAT")[1]+1,/*lPixel*/,/*{||
code-block de impressao }*/)

TRCell():new(oSection1, "RA_NOME" , "SRA", 'NOME'


,PesqPict('SRA',"RA_NOME"),TamSX3("RA_NOME")
[1]+1,/*lPixel*/,/*{|| code-block de impressao }*/)

TRCell():new(oSection1, "RA_ADMISSA" , "SRA", 'DATA


ADMISSAO',PesqPict('SRA',"RA_ADMISSA") ,TamSX3("B1_DESC")
[1]+1,/*lPixel*/,/*{|| code-block de impressao }*/)

TRCell():new(oSection1, "RA_SALARIO" , "SRA", 'SALARIO'


,PesqPict('SRA',"RA_SALARIO") ,TamSX3("RA_SALARIO")
[1]+1,/*lPixel*/,/*{|| code-block de impressao }*/)

TRCell():new(oSection1, "RA_CODFUNC" , "SRA", 'COD.FUNCAO'


,PesqPict('SRA',"RA_CODFUNC") ,TamSX3("RA_NOME")
[1]+1,/*lPixel*/,/*{|| code-block de impressao }*/)
return (oReport)

Static Function PrintReport(oReport)


Local oSection1 := oReport:Section(1)
oSection1:Init()
oSection1:SetHeaderSection(.T.)

DbSelectArea('SRA')
dbGoTop()
oReport:SetMeter(SRA->(RecCount()))
While SRA->(!Eof())

If oReport:Cancel()
Exit
EndIf

oReport:IncMeter()

IF (SRA->RA_MAT < MV_PAR01 ) .OR. (SRA->RA_MAT > MV_PAR02


) .OR. ;
(SRA->RA_CC < MV_PAR03 ) .OR. (SRA->RA_CC > MV_PAR04 )
SRA->(dbSkip(1))
Loop
EndIf

If !( SRA->RA_SITFOLH $ cSituacao )
SRA->(dbSkip(1))
Loop
EndIf

If SRA->RA_SITFOLH $ 'D' .AND. ;


Mesano(SRA->RA_DEMISSA) # Mesano(dDataBase)
SRA->(dbSkip(1))
Loop
EndIf

If (SRA->RA_CODFUNC < MV_PAR06) .OR. (SRA->RA_CODFUNC >


MV_PAR07)
SRA->(dbSkip(1))
Loop
EndIf

oSection1:Cell("RA_CC"):SetValue(SRA->RA_CC)
oSection1:Cell("RA_CC"):SetAlign("CENTER")

DbSelectArea('CTT')
DBSETORDER(1)
DBGOTOP()

DBSEEK(xFilial("CTT")+SRA->RA_CC)

oSection1:Cell("CTT_DESC01"):SetValue(CTT->CTT_DESC01)
oSection1:Cell("CTT_DESC01"):SetAlign("LEFT")

DbSelectArea('SRA')

oSection1:Cell("RA_SITFOLH"):SetValue(SRA->RA_SITFOLH)
oSection1:Cell("RA_SITFOLH"):SetAlign("CENTER")

oSection1:Cell("RA_MAT"):SetValue(SRA->RA_MAT)
oSection1:Cell("RA_MAT"):SetAlign("CENTER")

oSection1:Cell("RA_NOME"):SetValue(SRA->RA_NOME)
oSection1:Cell("RA_NOME"):SetAlign("LEFT")

oSection1:Cell("RA_ADMISSA"):SetValue(SRA->RA_ADMISSA)
oSection1:Cell("RA_ADMISSA"):SetAlign("LEFT")

oSection1:Cell("RA_SALARIO"):SetValue(SRA->RA_SALARIO)
oSection1:Cell("RA_SALARIO"):SetAlign("RIGHT")

oSection1:Cell("RA_CODFUNC"):SetValue(Posicione("SRJ",1,xFilial("SR
J")+SRA->RA_CODFUNC,"RJ_DESC"))
oSection1:Cell("RA_CODFUNC"):SetAlign("LEFT")

oSection1:PrintLine()

dbSelectArea("SRA")
SRA->(dbSkip())

EndDo

oSection1:Finish()

Return

*************************************************************
*****************
Static Function ValidPerg()
*************************************************************
*****************

_sAlias := Alias()

dbSelectArea("SX1")
dbSetOrder(1)

aRegs:={}

aAdd(aRegs,{cPerg,"01","Matricula
De ?","","","MV_CH1","C",06,00,0,"G","","MV_PAR01","","","","","","",""
,"","","","","","","","","","","","","","","","","","SRA","","",""})
aAdd(aRegs,{cPerg,"02","Matricula
Ate ?","","","MV_CH2","C",06,00,0,"G","","MV_PAR02","","","","","","","
","","","","","","","","","","","","","","","","","","SRA","","",""})
aAdd(aRegs,{cPerg,"03","Centro de Custo
De ?","","","MV_CH3","C",09,00,0,"G","","MV_PAR03","","","","","","",""
,"","","","","","","","","","","","","","","","","","CTT","","",""})
aAdd(aRegs,{cPerg,"04","Centro de Custo
Ate ?","","","MV_CH4","C",09,00,0,"G","","MV_PAR04","","","","","","","
","","","","","","","","","","","","","","","","","","CTT","","",""})
aAdd(aRegs,
{cPerg,"05","Situacoes ?","","","MV_CH5","C",05,00,0,"G","fSituacao","M
V_PAR05","","","","","","","","","","","","","","","","","","","","","","","","","
","","",""})
aAdd(aRegs,{cPerg,"06","Função
De ?","","","MV_CH6","C",06,00,0,"G","","MV_PAR06","","","","","","",""
,"","","","","","","","","","","","","","","","","","SRJ","","",""})
aAdd(aRegs,{cPerg,"07","Função
Ate ?","","","MV_CH7","C",06,00,0,"G","","MV_PAR07","","","","","","","
","","","","","","","","","","","","","","","","","","SRJ","","",""})

For i:=1 to Len(aRegs)


If !dbSeek(cPerg+aRegs[i,2])
RecLock("SX1",.T.)
For j:=1 to FCount()
If j <= Len(aRegs)
FieldPut(j,aRegs[i,j])
EndIf
Next
msUnLock()
EndIf
Next

dbSelectArea(_sAlias)

Return

Вам также может понравиться