Posicionamento em alterar pedido de compra

Tenho uma botão que alimenta um campo com valor de outro, porém quando dou alterar pedido de compra e, eu seleciono o item 6, e abro minha tela desenvolvida via outras ações, ele tras os dados do item 1, e alimenta o campo desejado: C7_XVALCOM do item 1 não sei o que está acontecendo kkk posiciono no 6 e ele tras os dados do 1, está alimentando o campo do que ele trás na tela e não o que eu seleciono/posiciono

Estou anexando um print mais explicativo

meu botão: Static function fsalvar()

Local nC7_XVALCOM := ASCAN( aHeader , { |x| Alltrim(x[2]) = "C7_XVALCOM" } )

// Posição do C7_XVALCOM no ACols

RECLOCK("SC7", .F.)

SC7->C7_XVALCOM := nXpreco2

MsUnlock()

aCols[n][nC7_XVALCOM] := nXpreco2 // Atualiza C7_XVALCOM no ACols posicionado

Return .T.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Tenta utilizar o aArea := FWGetArea() e no fim da função FWRestArea(aArea)

Olá Andreas, Você precisa posiconar na SC7 de acordo com o iten do acols antes de fazer o RecLock

Ex:

Static function fsalvar()

Local nC7_XVALCOM := ASCAN( aHeader , { |x| Alltrim(x[2]) = "C7_XVALCOM" } ) Local nC7_ITEM := ASCAN( aHeader , { |x| Alltrim(x[2]) = "C7_ITEM" } )

Local cChave := SC7->C7_FILIAL + SC7->C7_NUM + aCols[n][nC7_ITEM]

DbSelectArea("SC7") SC7->(DbSetOrder(1)) SC7->(DbGoTop()) If SC7->(DbSeek(cChave))

// Posição do C7_XVALCOM no ACols RECLOCK("SC7", .F.) SC7->C7_XVALCOM := nXpreco2 MsUnlock()

aCols[n][nC7_XVALCOM] := nXpreco2 // Atualiza C7_XVALCOM no ACols posicionado

Endif

Return .T.