Atualizar segundo mestre detalhe de um formulário

Senhores, preciso de ajuda urgente com esta situação.

Tenho um formulário com dois campos do tipo mestre-detalhe. No primeiro o sistema guarda informações de artefatos de trabalho para um determinado serviço à ser executado. Para cada artefato este grava em uma tabela secundária os registros que serão associados ao(s) colaboradores que executarão a tarefa. O segundo mestre detalhe está relacionado com esta segunda tabela onde estão as tarefas que serão executadas. O problema é que não consigo fazer com que o formulário atualize o segundo mestre detalhe após a atualização do primeiro. Gostaria de saber se há alguma macro associada ao mestre-detalhe que atualize não só os campos do mestre mas também outros mestres-detalhes que o formulário possa conter, afinal o SC permite criar quantos mestre detalhes forem necessários.

O SC permite criar um mestre com mais de um detalhe. A atualização de campos é sempre dentro do detalhe atualizar o mestre.
Se deseja de um detalhe atualizar outro detalhe aí terá que utilizar recursos fora do SC.

Eu vi a solução em outro tópico aqui no fórum e para quem quiser é bem simples:
Crie um método javascript chamado atualiza_detalhe_2 (por exemplo) no formulário detalhe 1 (que recebe as alterações) com o seguinte código

// como exemplo o nome do método é atualiza_bloco_itens
//
var fram = parent.document.getElementById('nmsc_iframe_liga_<*nome do detalhe 2>');
var srcant = fram.src;
fram.src='';
fram.src = srcant;
  • substitua pelo nome do formulário detalhe que deverá ser atualizado
    Ainda no formulário detalhe 1 nos eventos onAfterInsert, onAfterUpdate e onAfterDelete, coloque o seguinte código:
sc_commit_trans();
sc_ajax_javascript('atualiza_detalhe_2');

Esta solução teve a colaboração do jorgepopel que só esqueceu quatro detalhes:

  1. em que formulário deveria ser feito estes adendos
  2. como estamos tratando de dois detalhes os iframes estão no mestre então se faz necessário o uso do objeto parent do javascript
  3. antes da carga do formulário detalhe 2 deve-se sempre forçar a gravação com sc_commit_trans
  4. voce deve considerar sempre os quatro eventos que ocorrem após qualquer gravação.