Bom dia!
No Scriptcase, tenho um formulário mestre e um detalhe, sendo que o detalhe possui apenas um único registro. Gostaria de saber se é possível configurar o sistema para que, ao realizar alterações nesse único registro do detalhe e clicar no botão “Salvar” do formulário mestre, as alterações feitas no detalhe sejam salvas automaticamente também? Se sim, qual seria o procedimento recomendado para implementar essa funcionalidade?
Via código manual é possível sim. No padrão SC não .
Obrigado Haroldo,
Até consegui, porem tenho que deixar o botão salvar do detalhe visível, e isso visualmente gerar confusão, dois botões salvar.
Obrigado pela resposta…
Oi Haroldo,
Estou assistindo seu vídeo, vai ajudar muito.
Obrigado!
Consegui resolver minha questão do Mestre/Detalhe, vou compartilhar aqui.
Ficou assim:
///////// No formulário mestre no evento ‘onAfterUpdate’ ///////////
//chamo o Método JavaScript ‘salvarDetalheAjax’
sc_ajax_javascript(‘salvarDetalheAjax’)
////////////// Aqui o código do Método JavaScript //////////
// Encontra o iframe onde o formulário detalhe está carregado
var iframe = document.querySelector(‘iframe[name=“nmsc_iframe_liga_form_qualificacoes”]’);
if (iframe) {
// Define uma função para limpar as variáveis e remover event listeners
function limparVariaveis() {
iframe.onload = null; // Remove o evento onload do iframe
iframe = null; // Limpa a referência ao iframe
detalheDoc = null; // Limpa a referência ao documento do iframe
salvar_detalheBtn = null; // Limpa a referência ao botão
console.log(“Variáveis limpas com sucesso.”);
}
// Certifica-se de que o iframe foi carregado antes de acessar os elementos internos
iframe.onload = function() {
// Obtém o documento do iframe
var detalheDoc = iframe.contentDocument || iframe.contentWindow.document;
if (detalheDoc) {
// Localiza o botão "salvar_detalhe" pelo ID
var salvar_detalheBtn = detalheDoc.querySelector('#sc_salvar_detalhe_top');
if (salvar_detalheBtn) {
// Simula o clique no botão "salvar_detalhe" usando um evento MouseEvent
salvar_detalheBtn.dispatchEvent(new MouseEvent('click', {
bubbles: true, // Permite que o evento borbulhe
cancelable: true, // Permite que o evento seja cancelado
view: window // Contexto de execução do evento
}));
console.log("Clique no botão 'salvar_detalhe' simulado com sucesso.");
} else {
alert("Botão 'salvar_detalhe' não encontrado no formulário detalhe.");
}
} else {
alert("Não foi possível acessar o documento do iframe.");
}
// Após a execução, limpa as variáveis
limparVariaveis();
};
// Caso o iframe já esteja carregado, dispara o evento manualmente
if (iframe.contentDocument || iframe.contentWindow.document) {
iframe.onload();
}
} else {
alert(“Iframe do formulário detalhe não encontrado.”);
}