[RESOLVIDO] Criação Relatorio

Discussão em 'EMS , HCM e Totvs 11' iniciado por Claudia_Melo, Fevereiro 10, 2015.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. Claudia_Melo

    Claudia_Melo Membro Participativo

    Bom dia,

    Eu criei um relatório no App Builder, contudo, neste relatório, só consigo colocá-lo para funcionar quando uso no for each o campo de data:

    FOR EACH nota-fiscal NO-LOCK
    WHERE nota-fiscal.dt-emis-nota >= date(f-dt-inicial:SCREEN-VALUE) AND
    nota-fiscal.dt-emis-nota <= date(f-dt-final:SCREEN-VALUE)

    USE-INDEX nfftrm-20,

    EACH mgcadmult.emitente
    WHERE mgcadmult.emitente.cod-emitente = nota-fiscal.cod-emitente.

    E ai consigo relacionar as tabela e listar as informações as quais preciso. Contudo preciso de mais campos de seleção e de alguns filtros. Sendo assim criei um outro For each que seria exatamente o que preciso, mas não esta funcionando, nada é gerado.

    for each mgcadmult.emitente no-lock
    where mgcadmult.emitente.cod-emitente >= i-cod-emitente-ini and
    mgcadmult.emitente.cod-emitente <=i-cod-emitente-fim,


    EACH mgmovsil.nota-fiscal

    WHERE mgcadmult.emitente.cod-emitente = mgmovsil.nota-fiscal.cod-emitente AND
    mgmovsil.nota-fiscal.dt-emis-nota >= DATE (f-dt-inicial) AND
    mgmovsil.nota-fiscal.dt-emis-nota <= DATE (f-dt-final) AND
    mgmovsil.nota-fiscal.nr-nota-fis >= c-nr-nota-fis-ini AND
    mgmovsil.nota-fiscal.nr-nota-fis <= c-nr-nota-fis-fim AND
    mgmovsil.nota-fiscal.dt-cancela = ? AND
    mgmovsil.nota-fiscal.tipo-fat <> 2 AND
    mgmovsil.nota-fiscal.emite-duplic = YES.

    Seria este for each que preciso. Não sei o que estou fazendo de errado.
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Como assim só funciona com campo de data??
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Bem, primeiro, vc está usando template de relatorio ? pelo jeito não, pois vc estaria usando tt-param para passar os dados para o rp.p e não teria problemas, os campos que estão em tela devem ser usado algo como f-dt-inicial:input-value in frame ..... dai vc não precisa usar a função date() pra converter nada, no seu segundo for each vc não está usando nem input-value e nem screen-value, agora se vc não quer lidar com input-value e screen-value, basta vc fazer antes dos seus for eachs um assign nome dos campos, que dai eles "viram variaveis normais, deixando de ser só de telas", só assim nome do campo, não precisa indicar que são iguais a nada.
  4. Claudia_Melo

    Claudia_Melo Membro Participativo

    O relatório vou posta-lo abaixo.
    Ja tinha dado problema em outro campos os quais vcs me ajudaram a solucionar.
    Mas este for each ai não esta funcionado.




    /* Cria as variaveis necessárias para o relatório */
    DEFINE VARIABLE h-acomp AS HANDLE NO-UNDO.
    RUN utp/ut-acomp.p PERSISTENT SET h-acomp.
    RUN pi-inicializar IN h-acomp(INPUT "Aguarde...").

    DEF VAR chExcelApplication AS COM-HANDLE NO-UNDO.
    DEF VAR chWorkbook AS COM-HANDLE NO-UNDO.
    DEF VAR chworksheet AS COM-HANDLE.
    DEF VAR m-linha AS INTEGER NO-UNDO. /* Variável p/ contagem das linhas */

    ASSIGN m-linha = 1.
    CREATE "Excel.Application" chExcelApplication. /* Cria a Planilha */
    ASSIGN chWorkbook = chExcelApplication:Workbooks:ADD("")
    chworksheet=chexcelapplicAtion:sheets:item(1)
    chworksheet:name="Pasta do Relatório". /* Nome que será criada a Pasta da Planilha */
    m-linha = 2.
    ASSIGN chWorkSheet:pageSetup:Orientation = 1. /* Define papel como formato Retrato */
    ASSIGN chworksheet:range("A1:E1"):FONT:colorindex = 02 /* Aplica fonte cor Branca no Titulo */
    chworksheet:range("A1:E1"):MergeCells = TRUE. /* Cria a Planilha */
    chworksheet:range("A1:E1"):VALUE = "Relatório de Notas Fiscais".
    chWorkSheet:Range("A1:E1"):HorizontalAlignment = 3. /* Centraliza o Titulo */
    chWorkSheet:Range("A1:E1"):Interior:colorindex = 01. /* Aplica fundo preto no titulo */

    /* Cria os titulos para as colunas do relatório */
    ASSIGN chworksheet:range("A2:E2"):font:bold = TRUE /* Aplica negrito na linha de titulo das colunas */
    chworksheet:range("A" + STRING(m-linha)):VALUE = "Numero da Nota"
    chworksheet:range("B" + STRING(m-linha)):VALUE = "Cod Emitente"
    chworksheet:range("C" + STRING(m-linha)):VALUE = "Nat Operação"
    chworksheet:range("D" + STRING(m-linha)):VALUE = "Valor Mercadoria"
    chworksheet:range("E" + STRING(m-linha)):VALUE = "Cod Grupo Clie"

    m-linha = m-linha + 1.
    /* Faça o for each desejado */

    for each mgcadmult.emitente no-lock
    where mgcadmult.emitente.cod-emitente >= i-cod-emitente-ini and
    mgcadmult.emitente.cod-emitente <=i-cod-emitente-fim,

    EACH mgmovsil.nota-fiscal
    WHERE mgcadmult.emitente.cod-emitente = mgmovsil.nota-fiscal.cod-emitente AND
    mgmovsil.nota-fiscal.dt-emis-nota >= f-dt-inicial AND
    mgmovsil.nota-fiscal.dt-emis-nota <= f-dt-final AND
    mgmovsil.nota-fiscal.nr-nota-fis >= c-nr-nota-fis-ini AND
    mgmovsil.nota-fiscal.nr-nota-fis <= c-nr-nota-fis-fim AND
    mgmovsil.nota-fiscal.dt-cancela = ? and
    mgmovsil.nota-fiscal.tipo-fat <> 2 and
    mgmovsil.nota-fiscal.emite-duplic = YES.


    RUN pi-acompanhar IN h-acomp("Dados: " + nota-fiscal.nr-nota-fis).

    /* Lista os dados da tabela nas colunas */
    ASSIGN chworksheet:range("A" + STRING(m-linha)):VALUE = nota-fiscal.nr-nota-fis
    chworksheet:range("B" + STRING(m-linha)):VALUE = nota-fiscal.cod-emitente
    chworksheet:range("C" + STRING(m-linha)):VALUE = nota-fiscal.nat-operacao
    chworksheet:range("D" + STRING(m-linha)):VALUE = nota-fiscal.vl-mercad-me
    chworksheet:range("E" + STRING(m-linha)):VALUE = emitente.cod-gr-cli.
    ASSIGN m-linha = m-linha + 1.
    END.

    RUN pi-finalizar IN h-acomp.

    ASSIGN

    chExcelApplication:Range("D1:D65000"):NumberFormat = "#.##0,00" /* Formato da col D */

    chWorkSheet:pageSetup:RightFooter = "&d/&t" + "-PAGINA:" + "&P/&N". /* Data/Hora e Nr Pg no Rodapé */
    chworksheet:range("A2:J2"):EntireColumn:AutoFit. /* Define automaticamente a largura das colunas */
    chExcelApplication:COLUMNS("A:A"):ColumnWidth = 25.00. /* Define manualmente a largura da coluna A */
    chExcelApplication:Rows("1:65000"):RowHeight = 17.00. /* Tamanho da linha */
    chWorkSheet:pageSetup:printTitleRows = "$1:$1". /* Adiciona o Titulo em todas as paginas de Impressao */
    chWorkSheet:pageSetup:Zoom = 80. /* Aplica 80% para ajuste na impressao da pagina */
    chExcelApplication:Range("A1"):select.
    chExcelApplication:Visible = yes.
    RELEASE OBJECT chExcelApplication.
    RELEASE OBJECT chWorkbook.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    aparentemente está tudo correto, qual é a origem dos campos dos filtros ? f-dt-inicial, f-dt-final e os outros, é campo de tela ????
  6. Claudia_Melo

    Claudia_Melo Membro Participativo

Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página