[RESOLVIDO] dúvida em EPC

Discussão em 'EMS , HCM e Totvs 11' iniciado por thiagobhte, Fevereiro 2, 2011.

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

    thiagobhte Membro Participativo

    bom dia estou implementando uma epc aqui no cp0301 para quando a pessoa criar a ordem de produção, após as validações dos campos, solicitar ao usuário a confirmação da criação da ordem. mesmo eu colocando o if, ele cadastra a op clicando em "Sim" ou "não".

    Código:
    ASSIGN l-resposta = YES.
    IF p-ind-event  = "before-validate" AND
       p-ind-object = "viewer"    AND
       c-char      = "v04in271.w" THEN DO :
       
        MESSAGE "Confirma cadastro da OP" 
                                VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO TITLE "Mensagem" UPDATE l-resposta.
        IF l-resposta = NO THEN
                RETURN "NOk".
       
    END.
    
    :cry:

    alguém tem alguma dica?


    valew.
  2. rhemati

    rhemati Membro Participativo

    Bom dia Thiago.

    Favor colocar assim e testar.

    Código:
    ASSIGN l-resposta = YES.
    IF p-ind-event  = "before-validate" AND
       p-ind-object = "viewer"    AND
       c-char      = "v04in271.w" THEN DO :
       
        MESSAGE "Confirma cadastro da OP" 
                                VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO TITLE "Mensagem" UPDATE l-resposta.
        IF l-resposta = NO THEN DO:
                RETURN NO-APPLY.
        END.
       
    END.
    
    
    
    
  3. thiagobhte

    thiagobhte Membro Participativo

    é o erro ainda persiste. ele cadastra mesmo clicando na opção não.
  4. thiagobhte

    thiagobhte Membro Participativo

    e ai, alguma dica ae?
    :roll:
  5. thiagobhte

    thiagobhte Membro Participativo

    fiz assim e funcionou
    Código:
    
    iF p-ind-event = "before-validade"           AND
       p-ind-object = "viewer"          and 
       c-objeto  MATCHES "*v04in271.w*" THEN DO:    
    
    
       
    END.             
    
        RETURN 'NOK'.
    
    
    mas se eu fizer assim da erro.
    Código:
    ASSIGN l-ok = yes.
    iF p-ind-event = "before-validade"           AND
        p-ind-object = "viewer"          and 
        c-objeto  MATCHES "*v04in271.w*" THEN DO:    
        ASSIGN l-ok = no.
    END.             
    IF l-ok THEN
        NEXT.
    ELSE
        RETURN 'NOK'.
    
    o que pode ser?


    valewww :?
  6. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Thiago,

    No seu ultimo poste o que aconteceu é o seguinte:

    01) Quando vc colocou o RETURN "NOk" depois do IF ... END funcionou: Só funcionou pois ele parou no primeiro evento que ocorreu, não necessariamente o da mensagem.

    02) Existem pontos de UPC no EMS que não aceitam o RETURN "NOk" para parar o processo, em alguns casos são aceitos o RETURN "ADM-ERROR":U.

    03) No caso da rotina CP0301D1 o único evento que aceita um RETURN "NOk" para parar o processo e aguardar o usuário é no evento ASSIGN, os demais não param o processo.

    Quando não se consegue achar um evento que aceite o "NOk" desenvolvi uma técnica que seria pegar o HANDLE dos Botões OK e SALVAR e tratar sobre eles (não é criar outro botão, e do novo botão chamar o da tela). Esta customização faz o seguinte:

    01) o choose na verdade não é um evento de mouse ou teclado, ele é acionado por 3 eventos: Click do Mouse, pressionado a tecla Barra de Espaço ou Enter quando o foco está no botão, sendo assim, eu crio estes 3 eventos para o handle do botão e na triggers destes eventos faço minhas validações e dou um APPLY "CHOOSE":U TO <handle do botão na tela>.

    Nos arquivos em anexo, inseri um código para a rotina CP0301D1 onde estou demonstrado tanto o evento ASSIGN quanto usando na chamada dos Botões.

    Espero ter ajudado.

    Arquivos Anexados:

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

Compartilhe esta Página