Pular para o conteúdo
  • Este tópico contém 16 respostas, 6 vozes e foi atualizado pela última vez 17 anos, 4 meses atrás por felipeldm.
Visualizando 2 posts - 16 até 17 (de 17 do total)
  • Autor
    Posts
  • #83443
    rerodrig
    Participante

      [quote=”RicardoPortilhoProni”:1u43lmbj]Não serve um SPOOL separado por vírgulas?
      Ele poderia ser importando no excel e feito com um simples SELECT.[/quote]

      Então Ricardo, sinceramente não entendo como ficaria desse jeito, o que você diz seria como preencher um arquivo texto normal? Pelo que você falou eu acho que não tem como, se tivesse ajudaria, ficaria muito mais simples, mas é como eu havia dito tem que ser naquela “linguagem” do próprio excel, além de ter as formatações e tal…Falow!

      Renato Rodrigues

      #83514
      felipeldm
      Participante

        Caríssimos,
        Consegui resolver meu problema com ajuda do amigo rerodrig.
        Criei a seguinte Package:

        CREATE OR REPLACE PACKAGE BODY PK_GERA_REL AS

        procedure p( p_str in varchar2 )
        is
        begin
        dbms_lob.append(clob_Msg, p_str||CHR(10));
        exception
        when others then null;
        end;

        procedure PR_GERA_REL is
        begin

        select
        to_char(sysdate,’dd_mon_yyyy’)
        into
        v_date
        from
        dual;

        dbms_lob.createtemporary(clob_Msg, TRUE, dbms_lob.session);

        p( ‘ID;ORACLE’ );
        –print_comment( ‘Fonts’ );
        p( ‘P;FCourier New;M200’ );
        p( ‘P;FCourier New;M200;L11’ );
        p( ‘P;FCourier New;M200;SB’ );
        p( ‘P;FCourier New;M200;SUB’ );
        p( ‘P;FCourier New;M200;SIB;L12’ );
        p( ‘P;FArial;M300;SUB;L11’ );
        p( ‘F;R1;SIDM6;M500’);
        p( ‘C;X1;Y1;K”Saldo de Trocas para: ‘||to_char(sysdate,’dd/mm/yyyy’)||'”‘);
        p( ‘F;R3;FG0C;G’);
        p( ‘F;Y3;X1;STLBRM3’);
        p( ‘C;Y3;X1;K”COD. EMPRESA”‘);
        p( ‘F;Y3;X2;STLBRM3’);
        p( ‘C;Y3;X2;K”COD. REPRES”‘);
        p( ‘F;Y3;X3;STLBRM3’);
        p( ‘C;Y3;X3;K”NOME REPRES”‘);
        p( ‘F;Y3;X4;STLBRM3’);
        p( ‘C;Y3;X4;K”ANOMES”‘);
        p( ‘F;Y3;X5;STLBRM3’);
        p( ‘C;Y3;X5;K”VENDAS MES ANT(R$)”‘);
        p( ‘F;Y3;X6;STLBRM3’);
        p( ‘C;Y3;X6;K”VLR CONCEDIDO(R$)”‘);
        p( ‘F;Y3;X7;STLBRM3’);
        p( ‘C;Y3;X7;K”VLR USADO(R$)”‘);
        p( ‘F;Y3;X8;STLBRM3’);
        p( ‘C;Y3;X8;K”SALDO(R$)”‘);

        linha := 3;
        for r_proc in (
        SELECT TBL.COD_REPRES
        FROM TBL_GESTAO_VERBAS_TROCA TBL,
        VW_CANAL_VENDA CAN
        WHERE CAN.COD_EMPRESA = TBL.COD_EMPRESA
        AND CAN.COD_REPRES = TBL.COD_REPRES
        AND TBL.ANOMES = TO_CHAR(SYSDATE,’YYYYMM’)
        ) loop

        for r_det in (
        SELECT TBL.COD_EMPRESA,
        TBL.COD_REPRES,
        CAN.NOME_REPRES,
        TBL.ANOMES,
        TBL.VLR_VENDA_MANT,
        TBL.VLR_CONCEDIDO,
        TBL.VLR_USADO,
        TBL.VLR_SALDO
        FROM TBL_GESTAO_VERBAS_TROCA TBL,
        VW_CANAL_VENDA CAN
        WHERE CAN.COD_EMPRESA = TBL.COD_EMPRESA
        AND CAN.COD_REPRES = TBL.COD_REPRES
        AND TBL.ANOMES = TO_CHAR(SYSDATE,’YYYYMM’)
        AND TBL.COD_REPRES = r_proc.Cod_Repres
        ) loop

        linha := linha + 1;

        if MOD(linha,2) = 0 then
        p( ‘F;Y’||linha||’;X1;STLBRM0;FG0C’);
        p( ‘C;Y’||linha||’;X1;K”‘||r_det.cod_empresa||'”‘);
        p( ‘F;Y’||linha||’;X2;STLBRM0′);
        p( ‘C;Y’||linha||’;X2;K”‘||r_det.cod_repres||'”‘);
        p( ‘F;Y’||linha||’;X3;STLBRM0′);
        p( ‘C;Y’||linha||’;X3;K”‘||r_det.nome_repres||'”‘);
        p( ‘F;Y’||linha||’;X4;STLBRM0′);
        p( ‘C;Y’||linha||’;X4;K”‘||r_det.anomes||'”‘);
        p( ‘F;Y’||linha||’;X5;STLBRM0;FG0C’);
        p( ‘C;Y’||linha||’;X5;K”‘||r_det.vlr_venda_mant||'”‘);
        p( ‘F;Y’||linha||’;X6;STLBRM0;FG0C’);
        p( ‘C;Y’||linha||’;X6;K”‘||r_det.vlr_concedido||'”‘);
        p( ‘F;Y’||linha||’;X7;STLBRM0;FG0C’);
        p( ‘C;Y’||linha||’;X7;K”‘||r_det.vlr_usado||'”‘);
        p( ‘F;Y’||linha||’;X8;STLBRM0;FG0C’);
        p( ‘C;Y’||linha||’;X8;K”‘||r_det.vlr_saldo||'”‘);
        else
        p( ‘F;Y’||linha||’;X1;STLBRM1;FG0C’);
        p( ‘C;Y’||linha||’;X1;K”‘||r_det.cod_empresa||'”‘);
        p( ‘F;Y’||linha||’;X2;STLBRM1′);
        p( ‘C;Y’||linha||’;X2;K”‘||r_det.cod_repres||'”‘);
        p( ‘F;Y’||linha||’;X3;STLBRM1′);
        p( ‘C;Y’||linha||’;X3;K”‘||r_det.nome_repres||'”‘);
        p( ‘F;Y’||linha||’;X4;STLBRM1′);
        p( ‘C;Y’||linha||’;X4;K”‘||r_det.anomes||'”‘);
        p( ‘F;Y’||linha||’;X5;STLBRM1;FG0C’);
        p( ‘C;Y’||linha||’;X5;K”‘||r_det.vlr_venda_mant||'”‘);
        p( ‘F;Y’||linha||’;X6;STLBRM1;FG0C’);
        p( ‘C;Y’||linha||’;X6;K”‘||r_det.vlr_concedido||'”‘);
        p( ‘F;Y’||linha||’;X7;STLBRM1;FG0C’);
        p( ‘C;Y’||linha||’;X7;K”‘||r_det.vlr_usado||'”‘);
        p( ‘F;Y’||linha||’;X8;STLBRM1;FG0C’);
        p( ‘C;Y’||linha||’;X8;K”‘||r_det.vlr_saldo||'”‘);
        end if;

        end loop;
        end loop;
        p( ‘F;Y’||linha||’;X1;SLBM0′);
        p( ‘F;Y’||linha||’;X2;SBM0′);
        p( ‘F;Y’||linha||’;X3;SBM0′);
        p( ‘F;Y’||linha||’;X4;SBM0′);
        p( ‘F;Y’||linha||’;X5;SBM0′);
        p( ‘F;Y’||linha||’;X6;SBM0′);
        p( ‘F;Y’||linha||’;X7;SBM0′);
        p( ‘F;Y’||linha||’;X8;SBM0′);
        p( ‘F;W1 1 13’);
        p( ‘F;W2 2 12’);
        p( ‘F;W3 3 31’);
        p( ‘F;W4 4 7’);
        p( ‘F;W5 5 19’);
        p( ‘F;W6 6 18’);
        p( ‘F;W7 7 14’);
        p( ‘F;W8 8 11’);
        p( ‘F;W9 9 7’);
        p( ‘F;W10 10 12’);
        p( ‘E’);

        insert into tb_spool_rel(linha) values (clob_Msg);
        –insert into report(x) values (clob_Msg);

        end;

        END;

        Se notarem, coloquei uma cláusula para a linha que, se for ímpar será preta e se par será vermelha. Removi os totais também.

        Depois disso tudo gerei um BAT pra rodar essa procedure e criar o arquivo em SPOOL e setar alguns parametros….

      Visualizando 2 posts - 16 até 17 (de 17 do total)
      • Você deve fazer login para responder a este tópico.