1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

[RESOLVIDO] Criar upc no cadastro de Cliente(cd0704)

Discussão em 'EMS , HCM e Totvs 11' iniciado por rodrigo.toaldo, Julho 24, 2012.

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

    rodrigo.toaldo Membro Participativo

    Prezados, muito boa tarde a todos. Preciso de uma ajuda a quem estiver disponível e quiser fornecer, é claro.
    Preciso criar uma UPC no Cadastro de Clientes do Datasul, que valide um determinado campo, e que não permita que o usuário salve o cadastro, sem antes preencher o mesmo.

    Aplicativo: Datasul EMS 2.06 Progress 10.1b
    Programa: CD0704(Cadastro de Clientes)
    Campo a ser validado: Microregião

    OBS: A upc deverá tratar a ação do botão ok, ou seja, assim que o click for disparado, verificar se o campo está preenchido, caso não esteja retornar um mensagem de erro, informando que o usuário deverá preencher o devido campo, e não deixar salvar o cadastro.

    Agradeço a atenção, de todos.
    Muito obrigado.
  2. jdchaves

    jdchaves Membro Participativo

    Tarde, tenho aqui desta forma, verifique se é isso que vc quer.
    Código:
    /********************************************************************************
    **  Programa: CD0704-UPC.P
    **  Data....: 
    **  Autor...: seu nome
    **  Objetivo: validar microregião
    ********************************************************************************/
    DEFINE INPUT PARAMETER p-ind-event      AS CHARACTER     NO-UNDO.
    DEFINE INPUT PARAMETER p-ind-object     AS CHARACTER     NO-UNDO.
    DEFINE INPUT PARAMETER p-wgh-object     AS WIDGET-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER p-wgh-frame      AS WIDGET-HANDLE NO-UNDO.
    DEFINE INPUT PARAMETER p-nom-table-upc  AS CHARACTER     NO-UNDO.
    DEFINE INPUT PARAMETER p-row-table-upc  AS ROWID         NO-UNDO.
    
    DEFINE VARIABLE c-objeto            AS CHARACTER        NO-UNDO.
    
    DEFINE NEW GLOBAL SHARED VARIABLE wh-microreg      AS WIDGET-HANDLE  NO-UNDO.
    
    
    ASSIGN c-objeto = ENTRY(NUM-ENTRIES(p-wgh-object:FILE-NAME, "~/"), p-wgh-object:FILE-NAME, "~/").
    
    /* MESSAGE "Evento..........:" string(p-ind-event)    skip     */
    /*         "Objeto..........:" string(p-ind-object)   skip     */
    /*         "Handle do Objeto:" string(p-wgh-object)   skip     */
    /*         "Handle da Frame.:" string(p-wgh-frame)    skip     */
    /*         "Tabela..........:" p-nom-table-upc            skip */
    /*         "Rowid...........:" string(p-row-table-upc)    skip */
    /*         "p-wgh-object....:" p-wgh-object:file-name skip     */
    /*         "c-objeto..........:" c-objeto view-as alert-box.   */
    
    IF  p-ind-event  = "INITIALIZE":U
    AND p-ind-object = "VIEWER":U
    AND c-objeto = "cd0704-v02.w":U THEN DO: /*Folder Cliente*/
        RUN getFieldHandle(INPUT 'nome-mic-reg', OUTPUT wh-microreg).
    END.
    
    IF  p-ind-event  = "ASSIGN"
    AND p-ind-object = "VIEWER"
    AND c-objeto = "cd0704-v02.w":U THEN DO:
        
        IF  VALID-HANDLE(wh-microreg) THEN DO:
    
            IF  wh-microreg:SCREEN-VALUE = "" THEN DO:
                RUN utp/ut-msgs.p (INPUT "SHOW":U,
                                   INPUT 17006,
                                   INPUT "Microregião deve ser informada":U + "~~" +
                                         "Microregião deve ser informada." ).
                APPLY 'entry' TO wh-microreg.
                RETURN "NOK":U.
            END.
        END.
    END.
    
    PROCEDURE getFieldHandle:
       DEF INPUT PARAMETER  p-campo  AS CHAR NO-UNDO.
       DEF OUTPUT PARAMETER p-handle AS HANDLE NO-UNDO.
    
       def var h_frame as widget-handle no-undo. 
    
       ASSIGN h_Frame = p-wgh-frame:FIRST-CHILD. /* pegando o Field-Group */
       ASSIGN h_Frame = h_Frame:FIRST-CHILD.     /* pegando o 1o. Campo */
    
       DO WHILE h_Frame <> ? :
          IF h_frame:type <> "field-group" THEN DO:
             IF h_Frame:NAME = p-campo THEN DO :
                assign p-handle = h_Frame.
                leave.
             END.
             ASSIGN h_Frame = h_Frame:NEXT-SIBLING.
          END. 
          ELSE
             ASSIGN h_frame = h_frame:first-child.
       END.
    END.
    
    roberto.silva e Cintia Sousa curtiram isso.
  3. rodrigo.toaldo

    rodrigo.toaldo Membro Participativo

    Amigão, muito obrigado pelo seu retorno e ajuda, valeu mesmo.
    A upc está completa e foi de grande utilidade.
    Valeu mesmo, só uma dúvida, como você faz para identificar os nomes dos campos nas telas de cadastros, tem alguma regra para esses?

    Att.,
  4. geovane

    geovane Sem Pontuação

    É só clicar na opção alterar, clicar no campo referido e pressionar as teclas Ctrl + Alt + H.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página