× Linguagem de Programação ADVPL

Perguntas treport - relatorios juntando empresas

Mais
10 anos 5 meses atrás #18867 por Edilaine
Pessoal , estou estudando como fazer relatorios em treport. e Alguem saberia me informar como junto as empresas (01 ,02) no relatorio ? para que eu nao tenha que sair do siga e emitir 02 relatorios?

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #18868 por kanaamlrr
Edilaine, como você está fazendo a extração dos dados do relatório?
Está utilizando uma query ou puxando diretamente das tabelas?
Se for query, basta não utilizar filtro de filial, caso contrário, você pode realizar um Loop nas filiais dentro do seu sigamat (tabela SM0) e dentro dele ir buscando as informações nas tabelas de acordo com os filtros de realtório.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #18869 por Edilaine
Faço uma query, por exemplo: quero e se1 de todas empresas ( 01,02,03) no exemplo abaixo esta sa1, mas é se1 que vou fazer.

SELECT A1_COD, A1_NOME, A1_MUN, A1_EST

FROM %Table:SA1% SA1

WHERE A1_COD BETWEEN %Exp:MV_PAR01% AND %Exp:MV_PAR02%

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #18881 por kanaamlrr
Isso, dessa forma não irá filtrar a filial.
Está correto da forma que você postou.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #18886 por Edilaine
Ola.. fiz e ele roda apenas para a empresa que estou logada no protheus.
desculpe estou ainda começando a usar o treport. agradeço a ajuda

/*BEGINDOC
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Exemplo de relatorio usando tReport com uma Section
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ENDDOC*/

user function RELJUR

local oReport
local cPerg := 'RELJR'
local cAlias := getNextAlias()

criaSx1(cPerg)
Pergunte(cPerg, .F.)

oReport := reportDef(cAlias, cPerg)

oReport:printDialog()

return

//+
+
//! Rotina para montagem dos dados do relatório. !
//+
+
Static Function ReportPrint(oReport,cAlias)

local oSecao1 := oReport:Section(1)

oSecao1:BeginQuery()

BeginSQL Alias cAlias

SELECT E1_PREFIXO, E1_NUM,E1_PARCELA,E1_CLIENTE,E1_NOMCLI, E1_VENCREA,E1_SALDO,E1_SITUACA,E1_OBSCOB

FROM %Table:SE1% SE1

WHERE E1_VENCREA BETWEEN %Exp:MV_PAR01% AND %Exp:MV_PAR02%
AND E1_SALDO > '0' AND E1_OBSCOB Like '%JURIDICO%'

EndSQL

oSecao1:EndQuery()

oReport:SetMeter((cAlias)->(RecCount()))

oSecao1:Print()

return

//+
+
//! Função para criação da estrutura do relatório. !
//+
+
Static Function ReportDef(cAlias,cPerg)

local cTitle := "Relatório de Clientes Caso Juridico"
local cHelp := "Permite gerar relatório de clientes caso juridico."

local oReport
local oSection1

oReport := TReport():New('RELJUR',cTitle,cPerg,{|oReport|ReportPrint(oReport,cAlias)},cHelp)

//Primeira seção
oSection1 := TRSection():New(oReport,"Titulos",{"SE1"})

TRCell():New(oSection1,"E1_PREFIXO" , "SE1", "Prefixo")
TRCell():New(oSection1,"E1_NUM" , "SE1", "Nr")
TRCell():New(oSection1,"E1_PARCELA" , "SE1", "Parc")
TRCell():New(oSection1,"E1_CLIENTE" , "SE1", "Cod")
TRCell():New(oSection1,"E1_NOMCLI" , "SE1", "Nome")
TRCell():New(oSection1,"E1_VENCREA" , "SE1", "Venc")
TRCell():New(oSection1,"E1_SALDO" , "SE1", "Saldo")
TRCell():New(oSection1,"E1_SITUACA" , "SE1", "Sit")
TRCell():New(oSection1,"E1_OBSCOB" , "SE1", "Obs")

Return(oReport)

//+
+
//! Função para criação das perguntas (se não existirem) !
//+
+
static function criaSX1(cPerg)

putSx1(cPerg, '01', 'Data de?' , '', '', 'mv_ch1', 'D', 8 , 0, 0, 'G', '', '' , '', '', 'mv_par01')
putSx1(cPerg, '02', 'Data até?' , '', '', 'mv_ch2', 'D', 8 , 0, 0, 'G', '', '' , '', '', 'mv_par01')

return

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #18888 por kanaamlrr
Edilane, no seu banco de dados sua tabela SE1 está com o campo FILIAL preenchido como?

A sintaxe está correta, mas estou achando estranho ele estar trazendo os dados apenas de uma filial.

No banco é a tabela SE1010 com várias filiais dentro dela ou são tabelas distintas SE1010, SE1020, etc..?

Se forem distintas, seria melhor utilizar QueryString ao invés de Embedded SQL, pois dessa forma você conseguiria fazer um UNION ALL com todas as tabelas.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.153 segundos
Joomla templates by a4joomla