Looplex Knowledge Base
Select
O tube select seleciona um subconjunto de elementos contidos em um outro vetor. É um emulador de listas, pois exibe ao usuário uma lista de opções a partir dos elementos de um vetor. Se o vetor for um vetor de estrutura, a lista será composta a partir do id da estrutura.
Formato:
|vectSender|.select(|vectReceiver|, "request", lowerbound, upperbound)
Parâmetros:
- vectSender: Vetor que enviará informações a serem selecionadas. Serve como a base para a lista a partir da qual o usuário será solicitado a selecionar.
- vectReceiver: Vetor que guardas as informações a selecionadas.
- request: Opcional. Mostra a pergunta na tela. Na ausência, o request do vectReceiver é usado.
- lowerbound: Opcional. Número mínimo de elementos a se selecionar. Na ausência, o lower do vectReceiver é usado
- upperbound: Opcional. Número máximo de elementos a se selecionar. Na ausência, o upper do vectReceiver é usado
Retorno:
Simula uma lista na entrevista, tendo como base o vetor vectSender. Os elementos selecionados comporão o vector vectReceiver.
Exemplos:
1. Select com vetores primitivos. Vetores primitivos são os vetores de variáveis de tipos primitivos: textos, números inteiros, números reais, booleanos e datas. No exemplo de uma defesa trabalhista, em que o trabalhador afirma não ter recebido uma série de feriados, selecionam-se os feriados em relação aos quais há comprovante de pagamento para anexar à defesa. Note que para utilizar o select, o tipo do vectReceiver deve ser o mesmo do vectSender.
declarations { +|feriadosNaoPagos| : Vector[Date] { name = "Insira os feriados em que o Reclamante alega haver trabalhado, mas não recebido" }, +|comprovantesFeriados| : Vector[Date] { name = "Feriados em relação aos quais há prova de pagamento" }}operations { |feriadosNaoPagos|.select(|comprovantesFeriados|, "Selecione os feriados em relação aos quais há prova de pagamento"), foreach(<comprovante> IN |comprovantesFeriados|) { upload("Pagamento " & <comprovante>, "Pagamento " & <comprovante> & ".png", "Faça o upload da prova de pagamento no formato .PNG", "+") }}
Visualização no sistema:
2. Select com vetores de estruturas. Neste exemplo, temos uma estrutura de sócios STR_Socios
, que é utilizada tanto pelo vetor de sócios, quanto pelo vetor de sócios administradores. Note que para utilizar o select, a estrutura do vectReceiver deve ser a mesma do vectSender.
declarations { struct[STR_Socios] { id = [nome] fields { +[nome] : String { name = "Nome" }, +[cpf] : String where ("CPF") { name = "CPF" }, +[participacao] : Real where ("[...;100]") { name = "Participação societária" } } }, +|socios| : Struct[STR_Socios] { name = "Sócios" }, +|sociosAdministradores| : Struct[STR_Socios] { name = "Sócios administradores" }}operations { |socios|.select(|sociosAdministradores|, "Selecione os sócios administradores")}