AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-13302

marc_s's questions

Martin Hope
marc_s
Asked: 2024-09-24 15:16:42 +0800 CST

Como lidar corretamente com a seleção múltipla?

  • 6

Estou com dificuldades com um componente de menu suspenso de seleção múltipla no meu aplicativo do lado do servidor Blazor .NET 8. Estou usando o componente de seleção MudBlazor para dar suporte à seleção múltipla.

Estou carregando uma lista de departamentos da nossa instância do Dynamics e os estou armazenando em um List<SelectListItem>. Cada entrada tem um Key(um valor numérico, como 737004101) e uma representação textual do departamento ("Departamento A").

Meu objetivo é

  • exibir os departamentos em um menu suspenso de seleção múltipla (com caixas de seleção para permitir a seleção de várias entradas), mostrando o nome dos departamentos
  • armazenar a lista de departamentos selecionados por meio de seus valores-chave numéricos (por exemplo, a List<int>ou uma sequência concatenada de valores-chave)

Meu problema é: não consigo fazer isso funcionar como eu gostaria.

Estou renderizando os departamentos assim - com essa configuração, os nomes dos departamentos são exibidos quando o menu suspenso é aberto (como esperado e desejado):

<MudSelect T="string" @bind-Value="@CurrentValue" MultiSelection=true>
    @foreach (SelectListItem item in Departments)
    {
        <MudSelectItem T="string" Value="@item.Value">@item.Text</MudSelectItem>
    }
</MudSelect>

A lista de departamentos é tratada como um parâmetro no meu componente:

[Parameter]
public List<SelectListItem> Departments { get; set; } = new List<SelectListItem>();

e CurrentValuevem do InputBase<string>componente base do Blazor - é um campo de string no componente.

Se eu fizer assim, vejo a lista de departamentos com seus nomes no menu suspenso, posso selecionar várias entradas, mas depois de terminar a seleção, o componente MudSelect mostra a lista concatenada dos valores numéricos dos departamentos selecionados (por exemplo, "737004101, 737004104, 737004106").

Então descobri a MultiSelectionTextFuncpropriedade de MudSelect, e, lendo os documentos, acreditei que essa era a solução: uma função usada para definir um texto de exibição personalizado para o componente, quando vários itens foram selecionados. Então criei uma função dessas no meu componente e conectei-a ao MudSelect:

<MudSelect T="string" @bind-Value="@CurrentValue" MultiSelection=true MultiSelectionTextFunc="@GetMultiSelectionText">
    @foreach (SelectListItem item in Departments)
    {
        <MudSelectItem T="string" Value="@item.Value">@item.Text</MudSelectItem>
    }
</MudSelect>

private string GetMultiSelectionText(List<string> selectedValues)
{
    List<string> selectedTexts = new List<string>();

    foreach (string value in selectedValues)
    {
        SelectListItem? item = Departments.FirstOrDefault(x => x.Value == value);

        if (item != null)
        {
            selectedTexts.Add(item.Text);
        }
    }

    return string.Join("; ", selectedTexts);
}

Pego a lista dos valores (numéricos) selecionados, traduzo-os em nomes de departamentos e, então, mostro isto (lista de nomes legíveis por humanos dos departamentos selecionados) no meu componente:

Dept. A; Dept. D; Dept. H

Mas, embora agora eu veja os nomes dos departamentos na lista suspensa e, depois de escolher alguns deles, também vejo os nomes legíveis na caixa de texto do componente suspenso. Agora, meu CurrentValuetambém está sendo definido para a lista de nomes dos departamentos selecionados. Não recebo mais a lista das teclas numéricas selecionadas.

Parece que eu posso:

  • selecione vários departamentos e obtenha a lista dos selecionados (numéricos) Id- mas a exibição dos departamentos selecionados também é a lista concatenada de numéricos Id; ou

  • use isso MultiSelectionTextFunce obtenha a exibição dos departamentos selecionados corretamente, em formato legível por humanos - mas perco as informações de quais teclas (numéricas) foram selecionadas.

O que posso fazer para alcançar ambos?

  • Mostrar nomes dos departamentos no menu suspenso e após a seleção para referência
  • Armazene/recupere a lista numérica Keydos departamentos selecionados para que eu possa armazená-los em um banco de dados de alguma forma
blazor
  • 1 respostas
  • 52 Views
Martin Hope
marc_s
Asked: 2023-12-21 19:24:23 +0800 CST

Lidar com dados de entrada e converter para um formato mais fácil - PowerBI

  • 6

Esta é uma continuação da minha pergunta anterior que foi respondida por @SamNseir - obrigado novamente!

Encontrei outro tipo de dados na minha coluna de origem original: vários arrays JSON, separados por vírgula....

Exemplo:

Answer
-----------------------------
["German","English","French"]
["Ja","Yes","Oui"]
["A","B","C"],["A1","B1","C1"],["A2","B2","C2"]
0
Bern

Eu gostaria de "converter" essa mistura de dados para que

  • se for realmente um array JSON, quero pegar o primeiro valor (sempre)
  • se for uma lista de arrays JSON (separados por vírgula), quero obter o primeiro de cada array e mostrá-los separados por vírgula
  • se NÃO for um array JSON, só quero manter os dados inalterados

Então, no final, eu gostaria de ter isto:

Answer
------
German
Ja
A,A1,A2
0
Bern

Alguma ideia? Ainda estou tentando pegar o jeito de fazer esse tipo de coisa no PowerBI...

json
  • 1 respostas
  • 22 Views
Martin Hope
marc_s
Asked: 2023-12-11 22:09:53 +0800 CST

Relatório PowerBI para lidar com eventos e registros para esses eventos

  • 5

Outra pergunta do PowerBI: tenho três tabelas que tratam de pessoas que se inscrevem em eventos:

Evento

EventId (PK)
Event Name
Event Date

Registro de Evento

EventRegistrationId (PK)
EventId (FK to Event)
Registration Date
First Name
Last Name
E-Mail 

EventRegistrationRespostas

ID (PK)
Event Registration (FK to EventRegistration)
Field Name
Value

O problema é: a inscrição no evento acontece com base em um formulário web, e o gerente do evento pode criar esse formulário à vontade e pode incluir praticamente qualquer tipo de pergunta para a pessoa que se inscreveu, então a EventRegistrationAnswerstabela pode conter qualquer número de respostas (fornecido na inscrição) e para cada evento isso pode ser diferente.

Portanto, para um registro de evento com Id = 4711, posso ter respostas como esta - alguns são campos de texto livre, alguns são valores escolhidos em uma lista suspensa, alguns são caixas de seleção Sim/Não:

Eu ia EventRegistrationId Nome do campo Valor
123 4711 Saudação senhor
124 4711 OK para armazenar dados Sim
125 4711 Inscreva-se no boletim informativo Não
126 4711 Chegada De transporte público

Minha tarefa é esta:

  • As pessoas que organizam eventos gostariam de escolher seu evento em uma lista (que é gerenciada por uma segmentação de dados, com base na Eventtabela - funciona bem)
  • Eles gostariam então de ver todas as inscrições para aquele evento, incluindo todas as respostas dadas no formulário de inscrição

Tentei aplicar uma operação "Coluna Dinâmica" à tabela "Respostas de Registro de Eventos", que converte os dados em uma tabela com nomes de colunas baseados na coluna "Nome do Campo" da tabela original - até agora - tudo bem. MAS isso também converte os dados em uma linha para cada resposta dada - então, para um único registro, recebo uma linha por resposta dada em que uma coluna tem um valor - algo assim:

EventRegistrationId Saudação OK para armazenar dados Inscreva-se no boletim informativo Chegada
4711 senhor (NULO) (NULO) (NULO)
4711 (NULO) Sim (NULO) (NULO)
4711 (NULO) (NULO) Não (NULO)
4711 (NULO) (NULO) (NULO) De transporte público

Agora, se eu mesclar a EventRegistrationtabela com esta tabela dinâmica, com base em EventRegistrationId, obtenho várias linhas para cada registro - embora eu realmente gostaria de ter uma única linha para cada registro, com todas as quatro colunas fornecendo seus respectivos ( não NULL ) valor.

Alguma idéia de como posso fazer isso? De alguma forma, parece que não consigo influenciar muito a operação "PIVOT COLUMN" ... e não encontrei uma maneira de "condensar" essas quatro linhas - com apenas uma coluna cada uma preenchida com um valor - em um único linha onde todas as colunas teriam um valor diferente de NULL.... (eu olhei para GROUP BYe outros, mas nada parecia caber na minha conta)

Alguma ideia?

powerbi
  • 1 respostas
  • 23 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve