Witam,
w odpowiedzi na pierwsze pytanie, tak, najprosciej użyć pola calculated. Co do pola dodanego do recordsetu przez gui, też można się do niego odwołać. Żeby oddać do takiego pola callbacki zazaczamy opcję 'edit advanced properites' i tam wpisujemy nasze callbacki.
Co do wcześnijeszego pytania, nie wiem czy dobrze rozumiem, ale możemy zrobić coś takiego wykorzystując jquery. Załóżmy, że w module tasks chcemy żeby status zmieniał się na open po wybraniu priority na high. Dodajemy plik js do naszego katalogu nazwijmy go test.js.
jq(document).on('change', '#priority', function(){
if(jq(this).val() == 2) {
jq('#status').val(2);
}
});
Z racji tego, że Task już ma zarejestrowany processing callback -> submit_task, to dla warunku edit i add ładujemy nasz js
case 'add':
case 'edit':
load_js('modules/CRM/Tasks/test.js');