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.
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.
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.
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;
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.