1)
"計算式でフィールドA&フィールドBのフィールドを使ったリレーション
は知ってるか?"の問いですが、
本を5冊ももっているけど、計算式でリレーションを使う方法は書いてなかったです。
もう少しヒントをください。
2)
とりあえず2)のポータルに移動して、loopで作ってみました。
ポータル内の行へ移動[選択;最初の}
Loop
If[Exact(A::a ; B::b)=1]
フィールド設定[B::c; "3"]
End If
ポータル内の行へ移動[選択;次の; 最期まできたら終了]
End Loop
ポータル内の行へ移動[選択; 最初の]

この方法だとB::cに3が代入されるのですが、ポータルのソートで
これを前に表示したいのですが、確定の方法はあるのでしょうか。
ポータルの行の削除を使うとレコードが削除されるので使えません。
また、2回目のポータルの絞り込みのために一度、B::cを初期化したいのですが、
Loopの行の後にフィールド設定やフィールド全置換で空白を代入すると
スクリプトが動かなくなります。難しいなあ。