Totalizar / Somar Grid View Editável / Multiplos Registros / Cabeçalho ou Rodapé

As vezes queremos em uma Grid View Editável / Multiplos Registros fazer a SOMA dos campos
a medida que o cliente vai adicionando / alterando / excluído para ele ir vendo o valor R$ total,
sem usar um pai com a macro sc_master_value(); queremos colocar o valor diretamente no cabeçalho ou rodapé da grid.

No Cabeçalho ou Rodapé melhor Configuração da Visualização = Expanded.

Escolha a Linha Coluna e Tipo = Valor = [glo_Exibir_Total]

No Evento OnScriptInit:
SomarTotal(‘Load’);

No Evento onAfterInsert:
SomarTotal(‘Atualizar’);

No Evento onAfterUpdate:
SomarTotal(‘Atualizar’);

No Evento onAfterDelete:
SomarTotal(‘Atualizar’);

Criar em Programação > Métodos PHP a rotina: SomarTotal com um parâmetro chamado: _Parametro1

/* Macro sc_lookup */

$_Total = 0;

$sql ="
SELECT
	SUM(ValorTotal) AS Total_Geral
FROM
	pedidos_itens
WHERE
	PedidoID = [glo_PedidoID]
";

sc_lookup(chk_tot, $sql);

/* Erro no lookup */
if (FALSE === {chk_tot}) {
	sc_error_message("Ocorreu um erro no acesso ao</br>banco de dados: $sql.</br>");
}
elseif (empty({chk_tot})) { /* EOF */

	// CONTINUA...

}
else {

	/* Inclua aqui sua rotina de processamento */

    $_Total = {chk_tot[0][0]};

}

if (empty($_Total)) {
	$_Total = 0;
}

if ($_Parametro1=='Load') {	
	
	$_Total = number_format($_Total, 2, ",", ".");
	
	[glo_Exibir_Total]='<span id="Valor_Total">Valor Total R$ = '.$_Total.'</span>';
	
} else {

	$_string = 'Valor Total R$ = '.number_format($_Total, 2, ",", ".");

	$_executar_js = 'document.getElementById("Valor_Total").innerHTML="'.$_string.'"';

	sc_ajax_javascript($_executar_js);
	
}

** Em Variáveis Globais Defina a variável [glo_Exibir_Total] como saída.

3 Curtidas

Meus parabéns Jailton pelo compartilhamento desse forma de totalização.

1 Curtida

Ola
Muito Boa dica.
Para mim não consigo fazer funcionar quando coloco dentro de outra form em baixo de mestre detalhe.
Teria alguma orientação?

Essa dica é para trabalhar com Grid View Sozinha, se tiver Pai e Filho Mestre Detalhe coloque
o campo no Pai o Total e use a macro padrão sc_master_value();
2.5 - Aplicación Formulário: Maestro detalle y macro sc_master_value - YouTube

1 Curtida

Obrigado
Vou estudar