[RESOLVIDO] Posso percorrer o rs ?

Oi! Gente, o código abaixo esta num validade de um controle, se eu deixo apenas o alert o while percorre o rs e mostra msg beleza, mas quando insiro o código para popular outra tabela só faz uma vez, eu tenho que “resetar” o insert_sql de alguma forma, ou é coisa com o array ?

	   while(!$rs->EOF)
		{			

		   sc_alert("Produto: ".$rs->fields[0]." - ".$rs->fields[1]);

		    // GUARDANDO VALORES ANTES DE ALTERAR
			$insert_table  = 'l_ajustes_precos';      	
			$insert_fields = array(   
			'Codigo' => "'".GetSeqEmpresa([Glo_empresa],'l_ajustes_precos','6')."'",
			'Empresa' => "'[Glo_empresa]'",				
			'Inclusao' => "'".GetLogInsert()."'",
			'Observacoes' => "'Reajuste de Preços Global.'",
			'TIpo_ajuste' => "'P'",
			);

			// GUARDANDO HISTÓRICO DOS PREÇOS
			$insert_sql = 'INSERT INTO ' . $insert_table
				. ' ('   . implode(', ', array_keys($insert_fields))   . ')'
				. ' VALUES ('    . implode(', ', array_values($insert_fields)) . ')';

			sc_exec_sql($insert_sql);

			$rs->MoveNext();
		}
		$rs->Close();
		//sc_commit_trans ("Conexão");
	}

Não, é falta de prestar atenção no código que esta sendo escrito.

Bom dia.

Cara, ja refiz o código e ainda não cheguei ao meu resultado, muito obrigado, essa virgula ai eu ficaria mais um tempo garrado até atinar. Valeu de novo Jailton.

Claudney

Como o PHP é uma linguagem Server-SIDE, você não vai conseguir,
listar cada item na hora que esta sendo processado.

Remove o sc_alert() do código.

Então você deve criar um campo Label com nome: Status

Ai remove o Botão (OK) do formulário.

Crie um Botão Chamado ‘Processar’, e no código PHP deste botão coloca isso:
{Status} = “”;
sc_ajax_javascript(“nm_atualiza(‘alterar’)”);

Imagem processando modelo:

onValidateSuccess:
{Status} = “”;

Imagem processo Concluído modelo:

while(!$rs->EOF) {
// GUARDANDO VALORES ANTES DE ALTERAR
$insert_table = ‘l_ajustes_precos’;
$insert_fields = array(
‘Codigo’ => “’”.GetSeqEmpresa([Glo_empresa],‘l_ajustes_precos’,‘6’)."’",
‘Empresa’ => “’[Glo_empresa]’”,
‘Inclusao’ => “’”.GetLogInsert()."’",
‘Observacoes’ => “‘Reajuste de Preços Global.’”,
‘TIpo_ajuste’ => “‘P’”
);

	// GUARDANDO HISTÓRICO DOS PREÇOS
	$insert_sql = 'INSERT INTO ' . $insert_table
	   . ' ('   . implode(', ', array_keys($insert_fields))   . ')'
	   . ' VALUES ('    . implode(', ', array_values($insert_fields)) . ')';

	sc_exec_sql($insert_sql);

	$rs->MoveNext();

} // Fim: while(!$rs->EOF)

$rs->Close();
sc_commit_trans();

Ai sim, vou testar isso agora.

Valeu Jailton, lhe passo um feedback.

Abraços.

Claudney

Bom dia.

Jailton, como vai beleza, cara apenas para concluirmos, o erro não é o lance da matriz (array), veja que os próprios exemplos gerados pelo SC terminam daquele jeito, o que ocorreu é que eu estava usando uma biblioteca e na biblioteca tinha uma função para pegar a sequencia e pular o número no banco. Ocorreu que na lib o recordset era RS e no controle tb, depois de quase infartar ontem a noite fui debugando até me atinar em trocar o nome do RS da library, ai funcionou beleza, Jailton, mais uma vez meu muito obrigado.

Abraços.

Claudney

ps á ficou assim funcionando:

		$insert_table  = 'l_ajustes_precos';      
		$insert_fields = array(   
			 'Codigo' => "'".GetSeqEmpresa([Glo_empresa],'l_ajustes_precos','6')."'",
			 'Empresa' => "'".[Glo_empresa]."'",
			 'Produto' => "'".$rs->fields[0]."'",
		         'Data' => "'".DATE('d-m-Y H:i:s')."'",
			 'Tipo_ajuste' => "'P'",
			 'Margem_antiga' => "'".$rs->fields[4]."'",
			 'Custo_antigo' => "'".$rs->fields[2]."'",
			 'Venda_antigo' => "'".$rs->fields[3]."'",
			 'Markup_antigo' => "'".$rs->fields[5]."'",
			 'Data_antiga' => "'".$rs->fields[6]."'",
			 'Inclusao' => "'".GetLogInsert()."'",

)

valeu