[RESOLVIDO] Query dinâmica

Discussão em 'EMS , HCM e Totvs 11' iniciado por tandujar, Março 7, 2016.

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

    tandujar Membro Participativo

    Oi Pessoal.

    Tenho programas com query dinâmica, que criam o browse e geram os dados na tela.

    Quando os usuários precisam exportam estes dados no excel pelo famoso go to excel da Totvs (ctrl alt e).

    O problema é que dependendo da quantidade de dados que foram gerados neste browse o ctrl alt e fica extremamente lento, pois além de exportar ele vai formatando as colunas e tal.

    O que eu gostaria de fazer é um botão que exportar um csv destes dados para ficar mais rápido.

    Não encontrei ainda uma forma de ler estes dados que foram gerados no browse e exportar.

    Alguém sabe e pode me ajudar ?

    Obrigado,

    Tiago
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Mas os dados que estão no browse também não estão numa temp-table?
  3. tandujar

    tandujar Membro Participativo

    Estão sim.

    Para gerar os dados, criei um filtro (seleção) e também carrego alguns browses com todos os campos de tabelas (exemplo: nota-fiscal, it-nota-fisc).

    O usuário então além de fazer a seleção, marca quais os campos das tabelas que deseja mostrar e no browse mostra somente estes campos.

    As temp-tables são copias das tabelas oficiais, então se eu der um export direto vai sair todos os campos.

    Estava pensando ou eu exporto o conteúdo que já foi carregado no browse, ou teria que fazer um export informando os campos (não sei se é possível).
  4. lhp.s

    lhp.s Membro Participativo

    Código:
    for each tabela where...
      put campo1   ";"
             campo2   ";"
             campo3  ";" skip.
    end.
    
  5. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Tudo tem um depende.

    1. O mais fácil e rápido é fazer o export informando os campos.

    2. Varrer o browse também é possível, tipo:
    DO idx = 1 TO BRW-MeuBrowse:NUM-COLUMNS.
    MESSAGE BRW-MeuBrowse:GET-BROWSE-COLUMN(idx):BUFFER-FIELD:BUFFER-VALUE
    VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END.
  6. tandujar

    tandujar Membro Participativo

    Eu adiciono os campos desta forma abaixo.

    ASSIGN c-campo = "tt-nota." + nr-nota-fis.

    campo1-hdl = browse-hdl:ADD-LIKE-COLUMN(c-campo).

    Para fazer um export para csv de uma forma similar nunca fiz.

    Vou tentar fazer a leitura do browse como o seu exemplo.

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

Compartilhe esta Página