RowID v-row-parent

Discussão em 'Progress 4GL' iniciado por Tiago.Rodrigues, Abril 26, 2012.

  1. Tiago.Rodrigues

    Tiago.Rodrigues Sem Pontuação

    Bom dia,

    estoqu criando uma window inclui/modifica filho
    porem, nos meus campos de tabelas, quando eu chamo os registros para exibilos na viewer, ele ta dando um erro,
    falando que não encontra a minha v-row-parent
    eu dei uma message pra trazer o valor da rowid e ele só me traz "?" como valor.
    algem saberia dizer como devo proceder para contornar esse erro
    segue o trecho do local-display-fields:

    DEF BUFFER bf-item-uni-estab FOR item-uni-estab.
    DEF BUFFER bf-item FOR ITEM.
    DEF BUFFER bf-grup-estoque FOR grup-estoque.
    DEF BUFFER bf-esp-alter-ggf FOR esp-alter-ggf.

    FIND bf-item-uni-estab
    WHERE ROWID(bf-item-uni-estab) = v-row-parent NO-LOCK NO-ERROR.

    IF AVAIL bf-item-uni-estab THEN DO:

    ASSIGN item-uni-estab.cod-estabel:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-item-uni-estab.cod-estabel)
    item-uni-estab.it-codigo:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-item-uni-estab.it-codigo)
    item-uni-estab.preco-base:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-item-uni-estab.preco-base).

    FIND bf-ITEM
    WHERE bf-ITEM.it-codigo = item-uni-estab.it-codigo:SCREEN-VALUE IN FRAME {&FRAME-NAME}
    NO-LOCK NO-ERROR.

    IF AVAIL ITEM THEN
    FIND bf-grup-estoque
    WHERE grup-estoque.ge-codigo = item.ge-codigo
    NO-LOCK NO-ERROR.
    ELSE
    MESSAGE "bf-item nok"
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    IF AVAIL bf-grup-estoque THEN DO:

    ASSIGN fi-desc-item:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-ITEM.desc-item)
    fi-grup-estoque:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-ITEM.ge-codigo)
    fi-desc-grup:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-grup-estoque.descricao)
    ITEM.compr-fabric:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-ITEM.compr-fabric)
    ITEM.ind-item-fat:CHECKED IN FRAME {&FRAME-NAME} = bf-ITEM.ind-item-fat.

    FIND bf-esp-alter-ggf
    WHERE bf-esp-alter-ggf.it-codigo = ITEM.it-codigo
    NO-LOCK NO-ERROR.

    IF AVAIL bf-esp-alter-ggf THEN DO:
    ASSIGN fi-data:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-esp-alter-ggf.data-alter)
    fi-hora:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-esp-alter-ggf.hora-alter)
    fi-usuario:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(c-seg-usuario)
    esp-alter-ggf.ggf-var:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-esp-alter-ggf.ggf-var)
    esp-alter-ggf.ggf-fixo:SCREEN-VALUE IN FRAME {&FRAME-NAME} = STRING(bf-esp-alter-ggf.ggf-fixo).
    END.
    END.
    ELSE
    MESSAGE "bf-grup-estoque nok"
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    END.
    ELSE

    MESSAGE "não encontrou o registro do bf-item-uni-estab" SKIP
    string(v-row-parent)
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    END PROCEDURE.
  2. mcarril

    mcarril Membro Participativo

    Seu problema não esta na local-display-fields, esta em carregar a v-row-parent, alguém envia esta informação para a o local-display-fields.
    Não trabalho há muito tempo com datasul, mas com ceretza em algum lugar deve haver a expressão v-row-parent = Rowid(tabela).
    Abraços
  3. Tiago.Rodrigues

    Tiago.Rodrigues Sem Pontuação

    valeu cara,
    abração
  4. Tiago.Rodrigues

    Tiago.Rodrigues Sem Pontuação

    mesmo assim não achei a expresão que me falou, o mais proximo foi uma procedure pi-atualiza-parent

    define input parameter v-row-parent-externo as rowid no-undo.

    assign v-row-parent = v-row-parent-externo.

    END PROCEDURE.

    ou seja ele ta assimilando o rowid a outro rowid porem esse ai eu num achei não.

Compartilhe esta Página