Skip to Content

Olá,

Eu procuro muitas coisas em português no SCN e não acho.. Então eu vou fazer o possível para escrever tudo em português e em ingês.

Bom, seguinte, eu percebi que muitas pessoas tiveram o mesmo problema que eu tive agora pouco (e por muito tempo) que era mudar os valores das hierarquias/level do ALV tree. Eu vi muitas perguntas na internet mas nenhuma resposta eficiente e que poderia realmente ajudar. Foi a primeira vez que eu fiz um ALV tree e eu gosto quando eu não tenho conhecimento pra escrever porque o passo-a-passo está fresco na sua cabeça.

O fieldcat do ALV tree tem a função de soma, mécia, minimo e máximo automático. Sim, o fieldcat é sempre um pai pra gente… Se você quiser fazer um calculo desses é só ir lá e fieldcat-h_ftype = ‘AVG’, or ‘SUM’, or ‘MIN’, or ‘MAX’. E usar como exemplo esse programinha aqui: BCALV_TEST_SIMPLE_TREE

Esses comandos terão este resultado:

/wp-content/uploads/2014/03/avg_409978.jpg

Mas se você quiser customizar sua conta a coisa fica um pouco mais dificil e você vai ter que montar os nós do ALV tree manualmente.

Aqui esta um exemplo de customização. Eu mudei os números no Debug então não tem nada com nada nesses valores

/wp-content/uploads/2014/03/mess_410000.jpg

Então chega de blablabla e vamos pro código….

Para este caso nós vamos usar como exemplo BCALV_TREE_DEMO

Depois do tree1->set_table_for_first_display tem um perform chamado create_hierarchy e tudo o que precisamos está lá. Aliás QUASE tudo.. Tem uma partezinha importante depois desse perform. Mas vamos por partes.

DICA: Em set_table_for_first_display não use a tabela com os dados a serem exibidos que este método irá limpar a tabela toda. Use uma tabela com o mesmo tipo mas vazia.

E lá no create_hierarchy nós vamos ter mais ou menos isso (o meu esta com field symbol mas eu vou usar essa imagem por causa dos nomes)

/wp-content/uploads/2014/03/loop_data_tree_410001.jpg

O primeiro perform ADD_HIERARCHY vai formar o primeiro level e o ADD_CHILD os subsequentes.

Se você debugar esses performs em BCALV_TREE_DEMO, que lá se chamam ADD_CARRID_LINE e ADD_CONNID_LINE, você vai perceber que o parametro em is_outtab_line esta VAZIO!!! É um objeto local que não é preenchido ATÉ O MOMENTO. ë lá que você vai colocar todas as informações que você quer exibir na tela…

E só para finalizar não esqueça de deletar o método update_calculations ou checar o seu fielcat pq se estiver configurado para calculo vai sobrescrever

* calculate totals

* CALL METHOD tree1->update_calculations.

É isso…

Espero que ajude

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply