[RESOLVIDO] Bloquear edição de uma coluna do browser em alguns casos

Discussão em 'EMS , HCM e Totvs 11' iniciado por Fujikan, Maio 18, 2015.

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

    Fujikan Sem Pontuação

    Boa tarde,
    Preciso criar uma UPC, no programa oc0204 para bloquear a alteração do preço de acordo com a origem da mesma.
    Pelo que pesquisei no forum não é possível desabilitar somente a edicao de uma linha, somente a coluna.

    Vi uns exemplos para validar no Entry do campo, mas não consegui nenhum progresso.

    Alguem poderia me dar uma luz?

    At.
  2. jaozi_nho

    jaozi_nho Membro Participativo

    Olá, ja fiz uma UPC nessa mesma situação, tente validar pelo evento VALUE-CHANGED, conforme codigo abaixo .

    Código:
    ASSIGN hCol = hBrw:GET-BROWSE-COLUMN(7) . /*Coluna Preco Fornecedor*/
        ON 'VALUE-CHANGED':U OF hCol
            PERSISTENT RUN evt-preco-value-changed IN hProcSelf(INPUT hBrw , INPUT hBrw:QUERY)
            .
    
  3. Fujikan

    Fujikan Sem Pontuação

    Opa, Muito obrigado.
    Adaptei conforme eu necessitava e funcionou perfeitamente, só não consegui fugir da variável global neste caso.

    Código:
    ASSIGN hCol = h-br-table-oc0204:GET-BROWSE-COLUMN(7) . /*Coluna Preco Fornecedor*/
                                ON 'ENTRY':U OF hCol
                                    PERSISTENT RUN upc/upoc0204-u02.p(INPUT h-br-table-oc0204,
                                                                      INPUT h-cod-emitente-oc0204  ).
    upoc0204-u02.p
    Código:
    DEFINE INPUT PARAMETER h-br-table-oc0204                    AS HANDLE    NO-UNDO.      
    DEFINE INPUT PARAMETER h-cod-emitente                       AS HANDLE    NO-UNDO.      
       
    
    IF  h-br-table-oc0204:NUM-SELECTED-ROWS <= 0 THEN DO:
         MESSAGE "Registro não localizado."
                 VIEW-AS ALERT-BOX INFO BUTTONS OK.
        RETURN NO-APPLY.
    END.
    ELSE h-br-table-oc0204:FETCH-SELECTED-ROW(1) NO-ERROR.
       
      /*  MESSAGE h-br-table-oc0204:GET-BROWSE-COLUMN(2):SCREEN-VALUE SKIP h-cod-emitente:SCREEN-VALUE VIEW-AS ALERT-BOX. */
    
        FIND FIRST cotacao-item
            WHERE cotacao-item.numero-ordem = integer(h-br-table-oc0204:GET-BROWSE-COLUMN(2):SCREEN-VALUE)
              AND cotacao-item.cod-emitente = integer(h-cod-emitente:SCREEN-VALUE) NO-LOCK NO-ERROR.
    
    
        IF AVAIL cotacao-item THEN DO:
           
            IF cotacao-item.ind-orig-entrada = 9 THEN DO:
                 MESSAGE "O preço cotado via Web não pode ser Alterado."
                   VIEW-AS ALERT-BOX INFO BUTTONS OK. 
    
                 RETURN NO-APPLY.
            END.
               
    
     END.
    
    Alexandre curtiu isso.
  4. jaozi_nho

    jaozi_nho Membro Participativo

    Que bom.

    Sobre a variável global da para fugir de varias formas, em qual parte ela se encontra ?

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

Compartilhe esta Página