UPC - CD0704

Discussão em 'Progress 4GL' iniciado por kikofr, Agosto 27, 2009.

  1. kikofr

    kikofr Membro Participativo

    Bom dia,

    Estou desenvolvendo uma UPC para o cadastro de Clientes do Datasul, o CD0704.

    Criei uma aba e adicionei no programa, o campo salva o valor e tudo certo até aí. Mas o campo tem como filtro o valor cadastrado no campo grupo de cliente.

    Não consigo vincular esses dois campos no meu cadastro, pois ele faz a validação antes de salvar o registro, minha duvida é sobre como pegar o valor digitado no grupo do cliente e levar ele para a UPC.
  2. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Nos mesmo eventos que você cria o novo campo, tem que gravar este objeto em uma outra variavel global do tipo handle shared global, e na sua validação le o valor de screen-value.

    Se ficou dificil entender posta ai, que depois com mais tempo lhe passo.

    T+
  3. kikofr

    kikofr Membro Participativo

    ok, mesmo não tendo acesso ao código fonte do cd0704 que é produto padrão da datasul, como criaria esse objeto? a UPC recebe os dados nos parametros?
  4. kikofr

    kikofr Membro Participativo

    Teria um exemplo de como faria essa alteração no datasul?
  5. alexfowler

    alexfowler Membro Participativo

    Voce ta fazendo uma upc correto ? Na upc voce consegue pegar o campo que esta precisando ... no exemplo abaixo eu pego o handle do bt-historico e do bt-contato, no seu caso é so substituir pelo campo que voce esta querendo (ctrl alt h em cima do campo que voce descobre).

    Tendo o handle do campo, é so fazer variavelhandle:screen-value que voce pega o valor digitado.

    DEFINE NEW GLOBAL SHARED VAR h_cd0704 AS HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR h_bt-contato AS HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR h_bt-historico AS HANDLE NO-UNDO.
    DEFINE NEW GLOBAL SHARED VAR h-frame AS WIDGET-HANDLE NO-UNDO.

    IF p-ind-event = "BEFORE-INITIALIZE" AND
    p-ind-object = "CONTAINER" THEN DO:

    ASSIGN h_cd0704 = p-wgh-object.

    ASSIGN h-frame = p-wgh-frame:FIRST-CHILD /* pegando o Field-Group */
    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 = "bt-contato" THEN
    ASSIGN h_bt-contato = h-frame.

    IF h-frame:NAME = "bt-historico" THEN
    ASSIGN h_bt-historico = h-frame.

    ASSIGN h-frame = h-frame:NEXT-SIBLING.
    END.
    ELSE DO:
    ASSIGN h-frame = h-frame:FIRST-CHILD.
    END.
    END.
    END.
  6. kikofr

    kikofr Membro Participativo

    ok, peguei o Handle dele, mas como pego o valor do campo? nunca trabalhei com o Handle. Esta me retornando o valor de ?.

Compartilhe esta Página