Bem Vindo Visitante Lista de Usuários

 Todos os Fórums
  ADVPL

Enviar para a impressoraImprimir   

Subject AJUDA COM RELATÓRIO
Mensagem do Enviar e-mail Abrir o Perfil do usuário 595959 595959 em 4/11/2018 as 14:39 hs
Local: SP   Registrada: 2/6/2014  Postagem: 10
Olá pessoal, boa tarde.

Este é meu primeiro post aqui então desde já peço desculpas se estiver na sessão errada...
Bom, vamos lá, comecei a trabalhar em uma empresa como analista de suporte protheus mas meu conhecimento em advpl ainda é muito fraco, consigo ler alguns fontes, mexer, interpretar bem e tudo mais, porém, ainda me considero novato no negócio.

Me foi pedido um relatório com a seguinte função:

A diretora precisa de um relatório onde ela coloca a emissão de NF com um " data de " e " data até ", porém, o retorno dessa informação deve trazer o seguinte: todos os registros da SF2 cujo a data de emissão (F2_EMISSAO) não esteja de acordo com a E1_VENCREA... Ou seja, preciso que meu relatório vá na E4_TIPO, pegue a condição de pagamento que está informada no registro da F2 e com essa informação, faça um cálculo da data de emissão até a data de vencimento e me traga apenas os registros cujo essas datas NÃO BATAM.

Não sei se fui claro. Vou deixar o fonte do meu relatório aqui, ele se limita apenas ao select da F2 trazendo as informações ainda sem o calculo que ira fazer com as datas usando a condição de pag.






#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOPCONN.CH"
                    


User Function RELF2_3()
     Private oReport     := Nil                    // Objeto TReport
     Private oSecCab     := Nil                    // Sessao do relatorio
     Private cPerg     := "Xrelfatml"          // Pergunta da rotina
     Private cAlias     := GetNextAlias()     // Alias temporario

     //ÚÄÄÄÄÄÄÄÄÄÄ¿
     //³Parametros³
     //ÀÄÄÄÄÄÄÄÄÄÄÙ
     PutSx1(cPerg,'01',"Data de Emissao Inicial:"   ,'','','mv_ch1','D',8,0,0,'G',''        ,''   ,'','N','mv_par01',''   ,'','','','' ,'','','','','','','','','','','')
     PutSx1(cPerg,'02',"Data de Emissao Final:"     ,'','','mv_ch2','D',8,0,0,'G',''        ,''   ,'','N','mv_par02',''   ,'','','','' ,'','','','','','','','','','','')

oReport := ReportDef()

If Valtype( oReport ) == 'O'
     If !Empty( oReport:uParam )
          Pergunte( oReport:uParam, .F. )
     EndIf
     oReport:PrintDialog()
EndIf

oReport := Nil
     
Return



Static Function ReportDef()

     oReport := TReport():New("XRELFATML","Rel. Fat. Ecommerce/ML",cPerg,{|oReport| PrintReport(oReport)},"Rel. Fat. Ecommerce/ML")
     oReport     :SetTotalInLine( .F. )
     oReport     :EndPage( .T. )
     oReport     :SetPortrait( .T. )
     oSecCab := TRSection():New(oReport, "Rel. Fat. Ecommerce/ML", {cAlias})
     oSecCab     :SetTotalInLine(.F.)

     TRCell():New(oSecCab, "CLIENTE",           cAlias, "Cod.Cliente",          "@!",                          TamSX3("f2_cliente")[1],     .T., , "LEFT",      .F., "LEFT")
     TRCell():New(oSecCab, "NOME",                cAlias, "Razao Social",          "@!",                          TamSX3("a1_nome")[1],          .T., , "LEFT",     .F., "LEFT")
     TRCell():New(oSecCab, "UF",                     cAlias, "UF",                    "@!",                                                   04,          .T., , "LEFT",      .F., "LEFT")
     TRCell():New(oSecCab, "NOTA",                cAlias, "Nota",                    "@!",                          TamSX3("f2_doc")[1],          .T., , "LEFT",      .F., "LEFT")
     TRCell():New(oSecCab, "SERIE",                cAlias, "Serie",               "@!",                          TamSX3("f2_serie")[1],          .T., , "LEFT",      .F., "LEFT")
     TRCell():New(oSecCab, "CHVNFE",           cAlias, "Chave NFE",          "@!",                          2,                                    .T., , "LEFT",      .F., "LEFT")
     TRCell():New(oSecCab, "EMISSAO",           cAlias, "Emissao",               "",                                                   13,          .T., , "LEFT",      .F., "LEFT")
     TRCell():New(oSecCab, "VALMERC",           cAlias, "V.Merc.",               "@E 99,999,999,999.99",     TamSX3("f2_valmerc")[1],     .T., , "RIGHT",     .F., "LEFT")
     TRCell():New(oSecCab, "VALICMRET",           cAlias, "V.ST",                  "@E 99,999,999,999.99",     TamSX3("f2_icmsret")[1],     .T., , "RIGHT",     .F., "LEFT")
     TRCell():New(oSecCab, "DESPESA",           cAlias, "Despesa",                "@E 99,999,999,999.99",     TamSX3("f2_despesa")[1],     .T., , "RIGHT",     .F., "LEFT")
     TRCell():New(oSecCab, "FRETE",                cAlias, "Frete",               "@E 99,999,999,999.99",     TamSX3("f2_frete")[1],          .T., , "RIGHT",     .F., "LEFT")
     TRCell():New(oSecCab, "DESCONTO",           cAlias, "Desconto",               "@E 99,999,999,999.99",     TamSX3("f2_descont")[1],     .T., , "RIGHT",     .F., "LEFT")
     TRCell():New(oSecCab, "TOTAL",                cAlias, "Total NF",                "@E 99,999,999,999.99",     TamSX3("f2_valbrut")[1],     .T., , "RIGHT",     .F., "LEFT")     
     TRCell():New(oSecCab, "BASEICMS",           cAlias, "B.Icms",                "@E 99,999,999,999.99",     TamSX3("f2_baseicm")[1],     .T., , "RIGHT",     .F., "LEFT")
     TRCell():New(oSecCab, "VALICMS",           cAlias, "V.Icms",               "@E 99,999,999,999.99",     TamSX3("f2_valicm")[1],          .T., , "RIGHT",     .F., "LEFT")
     TRCell():New(oSecCab, "CONDPAG",           cAlias, "Cond.",               "@E 99,999,999,999.99",     TamSX3("f2_cond")[1],          .T., , "RIGHT",     .F., "LEFT")

     TRFunction():New(oSecCab:Cell("VALMERC")          , "", "SUM", , ,"@E 99,999,999,999.99", , .F., .T.)
    TRFunction():New(oSecCab:Cell("VALICMRET")          , "", "SUM", , ,"@E 99,999,999,999.99", , .F., .T.)
    TRFunction():New(oSecCab:Cell("DESPESA")          , "", "SUM", , ,"@E 99,999,999,999.99", , .F., .T.)
    TRFunction():New(oSecCab:Cell("FRETE")                  , "", "SUM", , ,"@E 99,999,999,999.99", , .F., .T.)
    TRFunction():New(oSecCab:Cell("DESCONTO")          , "", "SUM", , ,"@E 99,999,999,999.99", , .F., .T.)
    TRFunction():New(oSecCab:Cell("BASEICMS")          , "", "SUM", , ,"@E 99,999,999,999.99", , .F., .T.)
    TRFunction():New(oSecCab:Cell("VALICMS")          , "", "SUM", , ,"@E 99,999,999,999.99", , .F., .T.)

Mensagem do Enviar e-mail Abrir o Perfil do usuário 595959 595959 em 4/11/2018 as 14:41 hs
Local: SP   Registrada: 2/6/2014  Postagem: 10
continuando o fonte aqui pois não coube na anterior...


TRFunction():New(oSecCab:Cell("CONDPAG")          , "", "SUM", , ,"@E 99,999,999,999.99", , .F., .T.)

Return oReport




Static Function PrintReport()

Local cSQL           := ""                                             // Query
Local dDtEmIni     := mv_par01                                        // Data inicial de emissao
Local dDtEmFim     := mv_par02                                        // Data final de emissao
Local cQuebra      := Chr(13) + Chr(10)                         // Quebra de linha (<Enter>)

cSQL += "select f2.f2_filial filial,"                                             + cQuebra
cSQL += "          f2.f2_cliente cliente,"                                             + cQuebra
cSQL += "             a1.a1_nome nome,"                                                  + cQuebra
cSQL += "          f2.f2_est uf,"                                                        + cQuebra
cSQL += "          f2.f2_doc nota,"                                                  + cQuebra
cSQL += "          f2.f2_serie serie,"
cSQL += "          f2.f2_cond cond,"                                                     + cQuebra
cSQL += "             SubStr(f2.f2_emissao, 7, 2) || '/' "                    + cQuebra
cSQL += "          || SubStr(f2.f2_emissao, 5, 2) || '/' "                    + cQuebra
cSQL += "          || SubStr(f2.f2_emissao, 1, 4) emissao,"                    + cQuebra
cSQL += "          f2.f2_valmerc valmerc,"                                             + cQuebra
cSQL += "          f2.f2_icmsret valicmsret,"                                           + cQuebra
cSQL += "          f2.f2_despesa despesa,"                                                + cQuebra
cSQL += "             f2.f2_frete frete,"                                                     + cQuebra
cSQL += "          f2.f2_descont desconto,"                                        + cQuebra
cSQL += "          f2.f2_baseicm baseicms,"                                        + cQuebra
cSQL += "          f2.f2_valicm valicms,"                                             + cQuebra
cSQL += "          f2.f2_valbrut total,"                                             + cQuebra
cSQL += "          f2.f2_chvnfe chvnfe"                                             + cQuebra
cSQL += "     from " + RetSQLName("SF2") + " F2, "                               + cQuebra
cSQL += "           " + RetSQLName("SA1") + " A1 "                               + cQuebra
cSQL += "     where f2_filial                    = '"+xFilial("SF2")+"'"          + cQuebra
cSQL += "          and a1.a1_cod               = f2.f2_cliente"                    + cQuebra
cSQL += "          and f2.d_e_l_e_t_          <> '*'"                                   + cQuebra
cSQL += "          and f2.f2_emissao          >= '"+DToS(dDtEmIni)+"'"          + cQuebra
cSQL += "          and f2.f2_emissao          <= '"+DToS(dDtEmFim)+"'"          + cQuebra
                                                                                          //cSQL += "          and f2.f2_despesa          > 0"                                   + cQuebra
cSQL += "          and a1.d_e_l_e_t_          <> '*'"                                   + cQuebra
//cSQL += "          and f2.f2_cond                <> ''"                                   + cQuebra



If Select(cAlias) > 0
     DbSelectArea(cAlias)
     (cAlias)->(DbCloseArea())
EndIf

DBUseArea(.T., "TOPCONN", TCGenQry(,,cSQL), cAlias, .F., .T.)

oSecCab:BeginQuery()
oSecCab:EndQuery({{cAlias}, cSQL})
oSecCab:Print()

(cAlias)->(DbCloseArea())

Return

Mensagem do Enviar e-mail Abrir o Perfil do usuário PHABYUS PHABYUS em 4/11/2018 as 14:45 hs
Local: SP   Registrada: 11/5/2017  Postagem: 6
Boa tarde! Entre em contato comigo...
fabior@pmpartners.com.br
Abração
Fabio Rossetto

Mensagem do Enviar e-mail Abrir o Perfil do usuário 595959 595959 em 4/11/2018 as 14:51 hs
Local: SP   Registrada: 2/6/2014  Postagem: 10
Te mandei um e-mail, Fabio!

Para participar do Fórum você precisa efetuar login primeiro
Caso você não esteja registrado registre-se para participar do fórum

 Mudar para Fórum