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.
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
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.