Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia
Preciso criar uma tabela onde são gerados valores que são combinações de registros carregados de uma planilha no excel.
Tenho vários registros com uma determinada data e a leitura desses deverá gerar uma série de novas informações que preciso carregar em outra tabela.
Por exemplo: tenho 5 registros com uma mesma data. isso vai gerar 10 combinações entre os valores lidos na tabela principal.
Alguém sabe me dizer como fazer isso no script?
Grato
Seguindo essa mesma lógica, falta vc criar um FOR onde vc consiga buscar uma data por vez , fazer esse processo que eu passei e depois concatenar tudo.
Qualquer dúvida posta ai.
Bom dia
Já consegui avançar um pouco
A dica sobre o TRACE foi ótima... O problema agora está na string da equipe...
Na visualização ela aparece certinha, mas ao carregar na tabela aparecem datas incorretas e um valor negativo.
E nas datas que tenho na tabela original aparece apenas um traço (hífen)...
Creio que o erro está neste trecho
tab_equipe:
load distinct
$(equipe) as Equipe,
$(Dia_Escala) as Dia
Resident Resultados;
Abaixo está a rotina completa....
for vRow = 0 to NoOfRows('Resultados')-1
LET vDia = Peek('Dia', $(vRow), 'Resultados');
LET Dia_Escala = vDia;
LET vHorário = Peek('Horário', $(vRow), 'Resultados');
do while N <= 4
LET vDia = Peek('Dia', $(vRow)+N, 'Resultados');
LET vFuncionario = Peek('Funcionario', $(vRow)+N, 'Resultados');
if N = 0 then
LET equipe = vFuncionario;
ELSE
LET equipe = equipe&'-'&vFuncionario;
endif
N = N + 1;
loop
LET N = 0;
LET vRow = vRow + 4;
TRACE $(equipe);
tab_equipe:
load distinct
$(equipe) as Equipe,
$(Dia_Escala) as Dia
Resident Resultados;
Next
Cara, ali em :
LET equipe = equipe&'-'&vFuncionario;
troca esse '-' , ou use um SET... porque ele deve estar fazendo um calculo tipo 1-2 = -1.
E das datas deve ser alguma questão de formato, eu acho.
o trace ajuda bastante a entender o processo, melhor que um debug rsrs... Bota um "trace $(Dia_Escala)" pra ver como esta vindo tbm
e não entendi também essa parte:
LET vRow = vRow + 4;
acho que não tem necessidade dessa linha (o FOR já faz um incremento automático, diferente do while que vc coloca n= n+1)
O problema está mesmo relacionado a isso...
Ele está fazendo cálculo ao invés de concatenar...
A variável comb está definida como string. Para garantir coloquei a seguinte linha:
if N = 0 then | |
LET comb = Text(vFuncionario); | |
ELSE | |
LET comb = comb&'/'&Text(vFuncionario); | |
endif |
Mas mesmo assim, ainda faz cálculo e com a barra '/' acaba gerando número exponencial.
use essa '|'
e ao invés de "LET comb = ..." use "SET comb = .."
colocou pra rodar o exemplo que passei? ele funciona certinho.
Rodrigo
Usar o SET não vai funcionar, pois ele armazena a "expressão" e não o valor...
Utilizei o LET e com a barra vertical funciona a concatenação dos dados, mas passou a dar o erro abaixo.
Alguma idéia?
Erro de sintaxe, cláusula FROM faltando ou colocada na posição errada:
tab_terno:
load distinct
10|75|81|31|72 as Comb,
02/01/2015 as Dia
Resident Resultados
tab_terno:
load distinct
10|75|81|31|72 as Comb,
02/01/2015 as Dia
Resident Resultados
Em tempo: ainda não usei a sua rotina, pois fiz um teste e não traz o que preciso...
Se usar assim funciona:
SET comb = $(comb)&'|'&$(vFuncionario) ;
não precisa usar a função text() , e quanto ao erro no load da tabela traga a variável entre aspas simples assim:
load distinct
'$(comb)' as Comb,
'$(Dia_Escala)' as Dia
Resident Resultados
Valeu Rodrigo
Agora funcionou... mas com uma pequena alteração
Em vez de:
SET comb = $(comb)&'|'&$(vFuncionario) ;
Ficou:
SET comb = $(comb)|$(vFuncionario) ;
Um grande abraço e obrigado