>Hilmar,
>
>
No "PickField", com chave primaria não visível para o ussuario, é diferente: O usuario escreve uma coisa; o programa tem que buscar e atualizar outra. É por isto que não pode ussar directamente um ControlSource.>
>Desculpe abusar da sua boa vontade! ;-) ... Concordo plenamente com a afirmação acima. Não existe maneira de se fazer isso...
>
>Então, pergunto, como o framework atualiza isso? ... Seria uma espécie de AfterReadData onde vc comanda algo do tipo ThisForm.PickField.Value = PegarChaveUsuário(MinhaChavePrimaria) e BeforeSaveData onde teriamos algo do tipo Replace MinhaChavePrimaria With PegarChavePrimária(ThisForm.PickField.Value) ???
O Visual Extend - na sua forma original, o com algumos cambios que eu tive que fazer - atualiza os dados diretamente com REPLACE ou similar. Em outras palavras, utiliza buffering. Tem algúm método do formulario que atualiza os dados com o botón "Save"; o método inclui o TableUpdate(). E tem outro método do formulario que anula, quando o ussuario apretar "Undo" - o método usa o comando TableRevert().
No caso do PickField, por exemplo, quando o ussuario cambiar o código - que é a "chave primaria" desde o ponto de vista do ussuario - com o método LostFocus(), o PickField deve buscar; fazer REPLACE na chave primaria (interna), e mostrar o campo descritivo à direita.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)