[RESOLVIDO] Erro Relatório

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

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

    Claudia_Melo Membro Participativo

    Bom dia.


    Será que alguém poderia me ajudar em uma duvida que estou em relação a um relatório que desenvolvi no AppBuilder. A syntaxe esta ok, mas quando executo apresenta o erro "Registro Nota Fiscal não esta disponível"

    Não sei onde estou errando.

    Segue Codigo:

    /* 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...").
    FOR EACH nota-fiscal NO-LOCK USE-INDEX ch-nota.
    RUN pi-acompanhar IN h-acomp("Dados: " + nota-fiscal.nr-nota-fis).
    END.
    RUN pi-finalizar IN h-acomp.

    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 nota-fiscal
    WHERE mgcadmult.emitente.cod-emitente = nota-fiscal.cod-emitente AND
    nota-fiscal.dt-emis-nota >= DATE (f-dt-inicial) AND
    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.

    END.


    /* 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 = mgcadmult.emitente.cod-gr-cli.
    ASSIGN m-linha = m-linha + 1.



    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.
  2. lima

    lima Membro Participativo

    Tente assim...o END.

    /* 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 nota-fiscal
    WHERE mgcadmult.emitente.cod-emitente = nota-fiscal.cod-emitente AND
    nota-fiscal.dt-emis-nota >= DATE (f-dt-inicial) AND
    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.

    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 = mgcadmult.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.
    rafael.andrade curtiu isso.
  3. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    É esse "END." antes do "/* Lista os dados da tabela nas colunas */".
    Deveria estar abaixo da linha "ASSIGN m-linha = m-linha + 1.".

    Abraço

    RAfael
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    isso ai, está tentando mostrar dados fora do loop do for each.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    eu tenho um habito que me forcei a ter exatamente pra evitar esse tipo de coisa, sempre que digito um comando que terá um end pra fechar, eu já coloco na hora, ou seja, eu digito method public void executar():, já dou o enter e digito o end method. procedure, if, do, qualquer comando que for, depois eu abro linhas no meio e mando ver o codigo despreocupado em ter que lembrar se eu fiz ou não o fechamento do bloco.
  6. Claudia_Melo

    Claudia_Melo Membro Participativo

    Deu certo Rafael, esta apresentando problemas, acredito que no for each, mas o problema a qual reportei foi corrigido.
    Muito obrigada.
    rafael.andrade curtiu isso.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página