[Resolvido] Novo Campo Botão Run

Prezados boa tarde!

Dúvida de um leigo principiante.

Em uma consulta criei um novo campo “usuario” , onde eu preencho ele aleatoriamente com o nome dos funcionários.
Criei um botão tipo Run para salvar os dados em outra Tabela, todos campos são salvos normalmente , porem o campo criado “usuario” está vazio.

botão run > onRecord

$id = {Tab_User.id_user} // ok, salvo na nova tabela
$funcionario = {usuario} // $funcionario não recebe valor.

colo o codigo no evento onfinish

Bom dia Haroldo,

Mesmo assim ele não gravou o campo criado na variavel, e tem de ser no evento OnRecord mesmo para gravar cada registro da consulta .
com certeza é algo simples, porem … me batendo.

Os eventos do botão Run não reconhecem campos criados manualmente.

Só reconhecem os campos vindos do comando SQL.

Wennys

Verdade, porem não é o “problema” em si do campo novo, notei que no evento OnRecord lê os campo e dados do SQL , se alterado qualquer campo do grid da consulta e salvar em outra tabela, ele vai gravar o valor que esta no SQL e não o da consulta. (risos) deve ser por este motivo que chama-se “Consulta”.
Vou verificar como contornar, talvez filtro + Form , exatamente o filtro me fez escolher a aplicação consulta.
Vou falar minha necessidade talvez os colegas tenham uma solução pratica.

Tenho uma tabela com chamados pendentes que preciso distribuir aleatoriamente entre analistas em outra tabela, porem antes é necessário filtrar algumas informações.

Enquanto escrevia veio a ideia de invés mostrar para quem foi distribuído no grid da consulta, fazer a distribuição no evento OnRecord da run , o inconveniente é que não vou ver préviamente para quem esta direcionando o chamado.

Att.

Você pode fazer assim,

No evento onScriptInit crie uma variável global, desmarque(SESSION, POST, GET) e coloque ela como saida,
exemplo de código no onScriptIni.

[meusApelidos] = array();

No evento onRecord, mova os valores para os campos e para a variável, colocando a chave o Id da linha, supondo que é um cadastro de clientes,
temos um “idCliente” e temos um campo criado manualmente com o nome de “apelido”, exemplo do código

{apelido} = "Algum valor aletório";
[meusApleidos][{idCliente}] = {apelido};

Agora no botão RUN no onRecord sempre que estiver processando uma linha, busque o valor desejado no array, exemplo do onRecord;

$nick = [meusApelidos][{idCliente}];

$sql = "INSERT INTO `algo`(`apelido`, `idCliente`) values ('" . $nick . "', " . {idCliente} . ")";
sc_exec_sql($sql);

Muito bem, fiz esse exemplo sem testar, mais creio que funcionara perfeitamente. Poderia ao invés de usar a variável global usar um atributo, não sei se funcionaria perfeitamente pois atributos tem alguns bugzinhos.

Espero que de certo!
[/code]

Funcionou perfeitmente Almeida, muito Obrigado!