Estou tendo problemas ao usar um repeater ligado ao dataset 3 e dentro dele uma tabela ligada ao dataset 2.
*tenho outro site que esta combinação funciona perfeitamente, mas neste nao quer funcionar de jeito nenhum mesmo colocando tudo igual ao outro site.*
tenho um banco de dados chamado D.S e utilizo uma pagina para enviar algumas informações para a collection.
tenho um esquema que vou descrever como funciona:
VAMOS CHAMAR O PROCESSO DE (CONCLUSÃO)
PASSO 1:
**dataset1
No inicio e gerado um numero chamado (CODIGO) para identificação, os dados do passo 1 são ligados ao dataset1, mas ainda não vamos enviar ele para collection.
PASSO 2 :
**dataset3
Para lançar os serviços separados um de cada vez foi feito da seguinte forma:
Na parte dos serviços antes de lançar o serviço desejado e gerado também um outro código chamado de (CODSER), quando vou lançar os serviços na collection acrescento nos dados do mesmo o código gerado no inicio (PASSO1) e tambem o codigo gerado do (PASSO2) e apos eu lançar o serviço desejado nenhum dos campos do serviço e apagado para que eu poça utilizar os dados do serviço para lançar os materiais.
PASSO3:
**dataset2
Materiais;
Antes de preencher os campos e gerado também outro código, apos preencher o material eu lanço ele na collection acrescentando os códigos dos (PASSO1 e PASSO2) o código sera para identificar que os materiais lançados fazem parte daquele determinado serviço, e os serviços lançados fazem parte da determinada (CONCLUSÃO)
PASSO4:
**dataset1
Agora só falta lançar os dados do dataset1 que são os primeiros dados a serem preenchidos para prosseguir com os demais passos (SERVIÇOS E MATERIAIS).
agora vem a parte chata apos o processo eu tenho outra pagina onde outra pessoa utiliza os dados gerado na parte (CONCLUSÃO) para fazer outros process...
*O PROBLEMA
nesta pagina esta do mesmo jeito da pagina de envio
o PASSO1 aparece no dataset1 primeiramente, e apos aparecer os dados, tem um botão que uso para filtrar a collection no dataset3 usando o campo (CODIGO) da conclusão em busca dos serviços feitos referente aquela CONCLUSÃO, apos filtrar eu tenho um repeater1 ligado a dataset3 onde eu armazeno os dados filtrados dos serviços e cada item do repeater tem uma tabela que e ligada ao dataset2 que e onde eu irei mostrar os materiais referentes a cada serviço, dentro do repeater eu tenho um botão (M) de vermelho onde eu aperto e uso o campo codigo (CODSER) do serviço atual do repeater e expandir a tabela com os dados dos materiais.
BEM PRATICO NÉ?
O PROBLEMA E QUE ISTO NÃO ACONTECE, QUANDO EU FILTRO EM BUSCA DOS SERVIÇOS EU OS ENCONTRO NORMALMENTE, MAS QUANDO EU BUSCO OS MATERIAIS A TABELA SÓ FICA EM LOADING.
****** AQUI E O CÓDIGO DO BOTÃO PESQUISAR
***** AQUI TA OK ****
export function button37_click(event) { $w('#dataset1').setFilter(wixData.filter() .eq("dataDoServico", $w("#datePicker4").value) .contains("turma", $w("#input72").value) .contains("STATUS", "EXECUTADO") ) .then((results) => { let item = results; //see item below }) }
***** ESTE E O CÓDIGO DA BUSCA PELOS SERVIÇOS
**** AQUI ESTA OK
export function vectorImage1_click(event) { $w('#dataset3').setFilter(wixData.filter() .contains("codigo", $w("#input40").value) .eq("status", "SERVIÇOS") ).then((results) => { let item = results; //see item below }) $w("#repeater1").expand() }
***************ESTE E O CÓDIGO DO BOTÃO (M)
*** AQUI ESTA O PROBLEMA POIS NÃO BUSCA OS MATERIAIS SÓ FICA EM LOADING E PELA LOGICA DEVIA FUNCIONAR.
let ultimoMenuAberto = ""; export function button34_click(event) { $w("#repeater1").data.forEach((value, index) => { $w("#repeater1").forItems([value._id], ($w, itemData, i) => { $w("#table3").collapse() }); }) $w("#repeater1").forItems([event.context.itemId], ($w, itemData, index) => { $w('#dataset2').setFilter(wixData.filter() .contains("codser", $w("#input76").value) .eq("status", "MATERIAIS") ); $w("#table3").expand() }); if (ultimoMenuAberto === event.context.itemId) { $w("#repeater1").forEachItem([ultimoMenuAberto], ($w, itemData, index) => { $w("#table3").collapse() }); ultimoMenuAberto = "" } else { ultimoMenuAberto = event.context.itemId; } }
**************************************************************
**************************************************************
MAS TEM OUTRO POREM O CÓDIGO FUNCIONA, MAS SÓ FUNCIONA QUANDO A TABELA ESTA FORA DO REPEATER, QUANDO A TABELA ESTA FORA DO REPEATER FUNCIONA PERFEITAMENTE.
**************************************************************
**************************************************************
**filtrar serviço
export function vectorImage1_click(event) { $w('#dataset3').setFilter(wixData.filter() .contains("codigo", $w("#input40").value) .contains("status", "SERVIÇOS") ).then((results) => { let item = results; //see item below }) $w("#repeater1").expand() }
**filtrar materiais dos serviços
let ultimoMenuAberto = ""; export function button34_click(event) { $w("#repeater1").data.forEach((value, index) => { $w("#repeater1").forItems([value._id], ($w, itemData, i) => { $w("#table3").collapse() }); }) $w("#repeater1").forItems([event.context.itemId], ($w, itemData, index) => { $w('#dataset2').setFilter(wixData.filter() .contains("codser", $w("#input76").value) .contains("status", "MATERIAIS") ); $w("#table3").expand() }); if (ultimoMenuAberto === event.context.itemId) { $w("#repeater1").forEachItem([ultimoMenuAberto], ($w, itemData, index) => { $w("#table3").collapse() }); ultimoMenuAberto = "" } else { ultimoMenuAberto = event.context.itemId; } }
Oi @kaio12_peba
Você poderia mandar o link do seu site, assim eu posso reproduzir o problema e chegar a uma solução.
Aguardo retorno!