1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[RESOLVIDO] Composição da Estrutura do Item

Discussão em 'EMS , HCM e Totvs 11' iniciado por rafaelfonseca, Agosto 5, 2018.

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

    rafaelfonseca Membro Participativo

    Bom dia,

    Vou tentar formular o fonte e dou retorno.
  2. reissobr

    reissobr Membro Participativo

    Pessoal, como ainda nao tinha feito nada recursivo, aproveitei o post para tentar.

    O fonte ficou como o abaixo, e pelo que verifiquei está correto.
    O conceito é este mesmo, né ?
    Alguma sugestão para melhorar ?

    DEF VAR i-nivel AS INTEGER NO-UNDO INITIAL 1.

    OUTPUT TO "X:/rrusso/Estrut-recursiva.csv".

    PUT UNFORMATTED "Nivel;Componente;Sequencia;Item" SKIP.

    FOR each estrutura WHERE estrutura.it-codigo = "120.000-3" NO-LOCK:

    PUT UNFORMATTED i-nivel ";"
    estrutura.es-codigo ";"
    estrutura.sequencia ";"
    estrutura.it-codigo ";" SKIP.

    RUN pi-componente (INPUT estrutura.es-codigo,
    i-nivel).

    end.

    OUTPUT CLOSE.

    PROCEDURE pi-componente:

    DEFINE INPUT PARAMETER p-it-codigo AS CHARACTER NO-UNDO.
    DEFINE INPUT PARAMETER p-nivel AS INTEGER NO-UNDO.

    DEF VAR i-nivel AS INTEGER NO-UNDO.


    DEF BUFFER b-estrutura FOR estrutura.

    ASSIGN i-nivel = p-nivel + 1.

    FOR EACH b-estrutura WHERE b-estrutura.it-codigo = p-it-codigo:

    PUT UNFORMATTED i-nivel ";"
    b-estrutura.es-codigo ";"
    b-estrutura.sequencia ";"
    b-estrutura.it-codigo ";" SKIP.

    RUN pi-componente (INPUT b-estrutura.es-codigo,
    i-nivel).

    END.

    END.
  3. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    perfeito, isso mesmo, agora em termos de estrutura de dados tem que tomar cuidado com as quantidades, como provavelmente vc vai querer saber o que foi gasto de material em cada nivel, tem que pegar o campo da estrutura que indica as quantidades pra fazer uma unidade do item e multiplicar e dividir pelas quantidades de cada ordem de produção que vc vá ler
    reissobr curtiu isso.
  4. rafaelfonseca

    rafaelfonseca Membro Participativo

    @bootstrapmaster, posso usar o código acima para compor a estrutura de uma lista de itens em tem-table certo? Essa temp-table seria composta de itens acabados e uma qtd de meta para produzir.
    Poderia me ajudar em como calcular a necessidade dos componentes de todos níveis abaixo a partir da temp-table, levando em conta a qtd usada e por fim subtrair a necessidade acumulada pelo saldo-disp ?
    reissobr curtiu isso.
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    na verdade, para dar certo uma previsão de produção, vc teria que ter já de inicio quanto que pretende produzir do item que está mais no topo, o chamado item pai, vamos determinar uma nomenclatura aqui, o item acabado é o produto final e todo e qualquer item acabado que seja usado para compor o acabado, chamaremos de semi-acabado.

    Pensando dessa forma, um item acabado pode ser composto de itens semi-acabados e de materia prima direta, correto ?
    Então, seguindo a logica da recursividade, vc precisa que toda a vez que achar um item semi-acabado, calcular os pesos e quandidades desse item, multiplicar pelas quantidades que o item pai dele está precisando, dai retornar uma lista de material necessario com as quantidades, nesse ponto, se repetir algum item, na lista final vc soma tudo:

    Quero construir um quadrado de ferro, um alicerce vamos assim dizer, pra isso vou precisar de 4 vigas, 4 cantoreiras, 32 parafusos.
    1) Requisitar as vigas;
    2) requisitar as cantoreiras;
    3) requisitar os parafusos;

    Pra produzir a viga, requisita chapas de aço, então na estrutura pra fazer uma viga, pega a quantidade de aço e multiplica por 4.
    Pra produzir a cantoneira, requisita chapas de aço (pode ser o mesmo tipo de material), então pega a quantidade e multiplica por 4 também (uma cantoreira pra cada canto do quadrado).

    Então na lista de material pra fazer o quadrado de ferro, vc terá a quantidade de aço e de parafusos pra isso.

    Agora outra necessidade, pra construir uma sala, vc precisa de 4 quadrados, então vc tem que calcular as quantidades de cada quadrado e ir somando isso.

    Consegui explicar ou compliquei mais ainda ?
  6. rafaelfonseca

    rafaelfonseca Membro Participativo

    É da mesma forma q pensei, o problema está colocar isso na linguagem rs..
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página