Autor Tópico: [RESOLVIDO] Vetores em laço de repetição através da macro sc_lookup (dataset)  (Lida 378 vezes)

danilomorais

  • Novato
  • *
  • Mensagens: 17
  • Especialista em Projetos e Implementação de Redes
Olá amigos.
Estou com o seguinte problema e gostaria que alguém compartilhasse a solução, caso já tenha passado por situação parecida:
No meu sistema ERP, tenho uma função no módulo vendas que serve como aluguel. Quando o cliente fatura o pedido de aluguel, o estoque dos produtos é baixado e, para devolução dos mesmos, há uma opção (um campo check Box) que, ao clicar, lança os produtos como entrada no estoque. Para isso, habilitei um evento no afterupdate com a seguinte programação:
if ({devol_aluguel} == "1")
   {
   
      sc_lookup(teste,"SELECT COUNT(*) FROM itens_vendas where cod_venda = {cod_venda}");
      $y = {teste}[0][0];
      $x = 0;
            
   while ($x < $y)
            {
               
                sc_lookup(result,"SELECT cod_produto, qtd_vendida FROM itens_vendas where                   cod_venda = {cod_venda}");
               {item_venda} = {result}[0][0];
               {quantidade} = {result}[0][1];
         
               sc_exec_sql ("INSERT INTO estoque (cod_produto, qtd_entrada, qtd_saida) VALUES                         ({item_venda},   {quantidade}, '0,00')");
               $x++;           
            }
   }
Em resumo, o código busca os itens vendidos no orçamento correspondente e os lança como entrada no estoque. O problema é que na utilização da macro SC_lookup,  retornando os valores para {result}[0][0] e {result}[0][1] eu consigo pegar somente a primeira linha. Preciso que os vetores sejam calculados conforme a repetição do laço. Para isso tentei utilizar {result}[$x][0], mas deu erro.

Alguém passou por alguma situação parecida?

Agradeço desde já.
« Última modificação: Outubro 07, 2015, 10:24:58 pm por danilomorais »

Allan Medeiros

  • Expert
  • *****
  • Mensagens: 504
    • Email
Re:Vetores em laço de repetição através da macro sc_lookup (dataset)
« Responder #1 Online: Outubro 06, 2015, 11:49:27 pm »
Dê uma olhada na macro sc_select.
[]s
Allan Medeiros
Analista de Informática
__________________________________________
Companhia de Processamento de Dados da Paraíba
medeiros@codata.pb.gov.br

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:Vetores em laço de repetição através da macro sc_lookup (dataset)
« Responder #2 Online: Outubro 07, 2015, 08:30:04 am »
Use foreach ex:
sc_lookup(lookupX,"select campo1, campo2 from tabela");
if(!empty({lookupX}))
{
   foreach({lookupX} as $x)
   {
         echo "<br />".$x[0];//campo1 processado linha a linha
         echo "<br />".$x[1];//campo2 processado linha a linha
    }
}

Haroldo

  • Expert
  • *****
  • Mensagens: 6275
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Vetores em laço de repetição através da macro sc_lookup (dataset)
« Responder #3 Online: Outubro 07, 2015, 12:16:31 pm »
faça um insert baseado no select de itens_vendas diretamente, pra que essa volta toda?

danilomorais

  • Novato
  • *
  • Mensagens: 17
  • Especialista em Projetos e Implementação de Redes
Re:Vetores em laço de repetição através da macro sc_lookup (dataset)
« Responder #4 Online: Outubro 07, 2015, 08:57:52 pm »
Obrigado a todos pela atenção.

Ainda estou tentando resolver a questão.

Haroldo, gostaria muito de fazer o insert a partir do select, eliminando assim o laço de repetição. Porém, o formulário que executa esse script está ligado a tabela vendas. Portanto, na minha conclusão, tenho que buscar os itens vendidos na tabela correspondente, grava-los em variáveis e lança-los no estoque.

Se souber de alguma maneira para eu executar o script sem o laço eu ficaria agradecido.

Tentei utilizar o sc_select, quase da mesma forma que utilizei o sc_lookup, porém eliminando as linhas/colunas das variáveis: ao invés de {result}[0][0], utilizei {result}. Mas ainda não tive sucesso.

Abraço.

danilomorais

  • Novato
  • *
  • Mensagens: 17
  • Especialista em Projetos e Implementação de Redes
Re:Vetores em laço de repetição através da macro sc_lookup (dataset)
« Responder #5 Online: Outubro 07, 2015, 09:50:45 pm »
Amigos.

Gostaria de informá-los que mudei a programação que estava aplicando no formulário e deu certo!
Inseri um novo campo na tabela de estoque para receber o código da venda e fiz um comando UPDATE.

Obrigado pela colaboração de todos!

Monteiro

  • Iniciante
  • **
  • Mensagens: 62
    • Email
Re:[RESOLVIDO] Vetores em laço de repetição através da macro sc_lookup (dataset)
« Responder #6 Online: Dezembro 12, 2015, 08:19:21 pm »
Poderia colocar o código correto aqui ?
grato