Isso deveria ser fácil, mas não consigo fazer funcionar. Estou usando uma matriz para mostrar diferentes fontes de dados em uma janela pop-up. Como não posso usar uma variável como fonte de dados, tenho que criar 8 grupos separados com suas fontes de dados correspondentes em cada grupo. Minha matriz inicial é
Set(toggle_popup, [0,0,0,0,0,0,0,0,0])
então quando eu clico no clique eu quero que a janela correspondente abra. Então se eu quero que a segunda caixa (containerNum = 2) abra, no evento onSelect do meu link eu tenho
Patch(
toggle_popup,
Index(toggle_popup, FieldLabel.ContainerNum),
{
Value: 1
}
);
Estou recebendo um erro de fonte de dados inválida na função Patch.
O que eu quero é isto:
toggle_popup = [0,0,1,0,0,0,0,0,0]
E a propriedade Visível do componente 2 é
If (Index(toggle_popup,2).Value = 1, true)
Em código normal, tudo o que quero fazer é isto:
toggle_popup[FieldLabel.ContainerNum] = 1
Mas isso não parece funcionar.
No Power Apps hoje, se você definir uma tabela para uma variável usando a função Set, ela será considerada imutável - é por isso que você vê o erro na sua função Patch dizendo que a fonte de dados é inválida. Isso provavelmente mudará em um futuro próximo, mas por enquanto você pode definir a variável toggle_popup como uma coleção:
ou
Isso resolve o primeiro problema, mas não o cenário inteiro. Ao atualizar coleções locais, a função Patch procurará o primeiro registro que corresponde ao seu segundo argumento. No seu caso, o primeiro registro corresponderá
Index(toggle_popup, 2)
- assim como todos os outros registros, então ele atualizará o primeiro registro em vez do segundo, como você deseja.Você pode resolver isso tornando cada registro único, usando algo assim:
Agora cada registro na coleção tem um valor diferente, então se esta expressão for executada:
Em seguida, o segundo elemento da coleção será atualizado.