Usuário com melhor resposta
Concatenar comentários

Pergunta
-
Estou tentando criar um cadastro onde o funcionário adicione comentário e não consiga mais alterar, então tive a ideia de criar uma tabela que leva o código do cliente e o comentário adicionado, porém quando ele visualizar aquele cliente quero que apareça em uma textbox(multiline) com comentários adicionado para aquele cliente cada comentário em uma linha. Ex:
10/08/2017 - Cliente comprou uma bala
11/08/2017 - Cliente comprou um chiclete
Alguém poderia me dar uma luz de como fazer esse concatenar?
Obrigado.
Respostas
-
Eduardo,
Acho que só faltou um
(From historic In CadastrotesteDataSet.historic
Where historic.vinculo = tbcodigo.Text
Select historic.historico).ToList()Se não você vai dar um ToString na query.
Rafael Esquiçato Professional Scrum Master MCP, MCTS
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 14 de agosto de 2017 13:24
-
Boa tarde, Eduardo Pietro. Tudo bem?
Verifique se o seu erro, não acontece por algo semelhante a esses exemplos abaixo.
https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/error-messages/end-of-statement-expectedAtenciosamente,
Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 14 de agosto de 2017 13:24
Todas as Respostas
-
Olá Eduardo,
Basta ler os comentários da sua base de dados (da forma que preferir) e concatenar os comentários usando com o comando de quebra de linha ( \r\n ou a constante Environment.NewLine ). Exemplo:
Dim ListaComentarios As New List(Of String) Dim stb As New StringBuilder 'ler os comentários do banco com ADO.NET, Entity ou que for For Each comentario As String in ListaComentarios stb.Append(comentario & Environment.NewLine) ' pode ser tambem stb.AppendLine(comentario) Next txtCaixa.Text = stb.ToString()
Importante: a caixa de texto precisa estar com o MultiLine habilitado.
Rafael Esquiçato Professional Scrum Master MCP, MCTS
-
Cara muito obrigado pelo retorno.
Estou tendo alguns problemas na leitura dos comentários:
O que está em negrito é o que está apontando como erro.
Dim ListaComentarios As New List(Of String) Dim stb As New StringBuilder From historic In CadastrotesteDataSet.historic Where historic.vinculo = tbcodigo.Text Select historic.historico For Each comentario As String In ListaComentarios stb.Append(comentario & Environment.NewLine) Next tbhistorico = stb.ToString()
Poderia me ajudar com esse campo, quando não uso seu código (faço uma busca simples) ele retorna apenas o último comentário daquele cliente.
Segue os erro
Code Description Project Line Suppression State
BC30002 Type 'StringBuilder' is not defined. Duas Tabelas 92 Active
Code Description Project File Line Suppression State
BC30454 Expression is not a method. Duas Tabelas 94 Active
- Editado Eduardo Pietro quinta-feira, 10 de agosto de 2017 16:29
-
Eduardo,
Você precisa importar a System.Text pra usar o StringBuilder.
Se historic.historico for uma string, você poderia usar isso:
Dim ListaComentarios As New List(Of String) = ( From historic In CadastrotesteDataSet.historic
Where historic.vinculo = tbcodigo.Text
Select historic.historico ).ToList()Rafael Esquiçato Professional Scrum Master MCP, MCTS
-
Rafael,
consegui importar o System.text como você havia comentado e refiz o código desta forma:
Private Sub btabrir_Click(sender As Object, e As EventArgs) Handles btabrir.Click Dim lista = From cadastro In CadastrotesteDataSet.cadastro Where cadastro.vinculo = tbcodigo.Text Select cadastro.nome, cadastro.cidade, cadastro.vinculo For Each cadastro In lista tbnome.Text = cadastro.nome tbcidade.Text = cadastro.cidade tbcontrole.Text = cadastro.vinculo Dim ListaComentarios As New List(Of String)(From historic In CadastrotesteDataSet.historic Where historic.vinculo = tbcodigo.Text Select historic.historico) Dim stb As New StringBuilder For Each comentario As String In ListaComentarios stb.Append(comentario & Environment.NewLine) Next tbhistorico.Text = ToString() Next
Não deu erro nenhum mas quando eu rodei ele retornou o seguinte no campo tbhistorico
"Duas_Tabelas.Form1, Text: Cadastro"
Sendo que os textos que esse cliente contem são:
"Teste Adição
Teste Adição 2"
Consegue me ajudar com mais esse erro?
EDIÇÃO
Percebi depois de postar que faltou o .ToList() depois de:
Select historic.historico)
mas quando coloco, ele dá um erro "End of Statement expected."
- Editado Eduardo Pietro quinta-feira, 10 de agosto de 2017 19:24
-
Eduardo,
Acho que só faltou um
(From historic In CadastrotesteDataSet.historic
Where historic.vinculo = tbcodigo.Text
Select historic.historico).ToList()Se não você vai dar um ToString na query.
Rafael Esquiçato Professional Scrum Master MCP, MCTS
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 14 de agosto de 2017 13:24
-
-
Boa tarde, Eduardo Pietro. Tudo bem?
Verifique se o seu erro, não acontece por algo semelhante a esses exemplos abaixo.
https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/error-messages/end-of-statement-expectedAtenciosamente,
Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 14 de agosto de 2017 13:24
-
Bom dia,
Por falta de retorno essa thread está sendo encerrada.
Se necessário, favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.