INCLUSÃO EM LOTE

Caros amigos,
estou com um problema que é o seguinte.

Em um determinado dia, fazemos medição de vários atletas. Como gostaria que funcionasse:
Mostraria um grid/consulta com todas as datas que foram feitas medições. Isso é tranquilo.
Tenho que ter um botão para informar uma nova medição.
Quero que apareça uma tela onde só se informa a data da medição. Depois de confirmar esta data, eu quero pegar todos os atletas ativos e incluir na minha tabela com a data que foi digitada. Então apareceria a lista de jogadores que podem fazer medição.

Quando alterar uma data, quero apareça esta a lista de jogadores que fizeram a medição naquela data.

O meu problema não é com as instruções SQL.
E sim como fazer isso no Scriptcase.

Tonico,

Dá pra fazer isso mais ou menos dessa forma:

  • Crie uma aplicação controle com um campo “data” e o botão OK padrão da aplicação, e no evento onValidate vc faz a rotina:
// Evento onValidate da aplicação Controle
// Campos:
// {data} - tipo "data"

// Recuperar dados dos atletas ativos
sc_lookup(ds_atletas, "SELECT atleta_id,  ...  FROM atletas WHERE status = 'ATIVO'");

// Conferir se dataset não está vazio ou se houve erro no lookup
if (!empty({ds_atletas}) && {ds_atletas} != FALSE)
{
	// Criar Loop com resultado do dataset
	foreach ({ds_atletas} as $atleta)
	{
		// Definir variáveis (resultado do dataset)
		$id = $atleta[0];
			
		// Inserir na tabela de medições
		sc_exec_sql("INSERT INTO medicoes (atleta_id, medicao_data) VALUES ('$nome', {data})");
	}
	
	// Redirecionar para aplicação grid ou form multi-reg
	sc_redir(grid_medicoes.php);
}
else
{
	sc_error_message("Nenhum atleta ativo encontrado!");
}

A questão de alterar uma data em lote é mais simples, em sintese vc precisaria salvar o valor antigo (data anterior) numa variável e fazer um update na tabela, colocando algo assim no onAfterUpdate:

[tt]sc_exec_sql(“UPDATE medicoes SET medicao_data = {data} WHERE medicao_data = $data_antiga”);[/tt]

a $data_antiga poderia ser obtida em eventos anteriores, dependendo do tipo de aplicação, como no onLoad ou no onLoadRecord:

[tt] $data_antiga = {data}; [/tt]

Enfim, espero ter ajudado. Qualquer problema posta aí no fórum pra gente ver.