JUNTAR ITEMS LISTVIEW

PERCIFILHO 28/04/2016 13:13:35
#461596
Desculpa aí, DS2T, parece que a nossa resposta foi quase ao mesmo tempo.
KURTGU 28/04/2016 13:22:28
#461599
Poderia concatenar as duas.
KURTGU 28/04/2016 21:21:35
#461639
up...........
DS2T 28/04/2016 23:25:28
#461650
Resposta escolhida
Pode criar um campo ID na planilha? Porque vou precisar de uma chave primária... o provedor do Excel não tem suporte para o Row_Number como no SQL Server.
KURTGU 29/04/2016 00:51:19
#461651
DS2T é isso que é o ruim por dia são tirados umas 100 planilhas destas pro usuário ficar criando algo dentro dela iria ficar ruim... Já tentei muita coisa...mais nada que me fizesse o sum funciona juntamente com o restante dos dados, um amigo me disse pra fazer um for e preencher outro listview...

KURTGU 29/04/2016 08:52:05
#461654
DS2T Poderia fazer desta forma que voce falou? Como criaria este campo automaticamente no Excel? se poder me da uma forca agradeceria...
DS2T 29/04/2016 16:29:11
#461681
Só copiar e colar...
Achei melhor fazer usando os recursos de enumeração de uma lista genérica do que ficar sofrendo com essas queries sem recurso algum do Excel...


Imports System.Data.OleDb

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Listar()
End Sub

Private Function RetornaDataTable() As DataTable
Dim pathconn As New OleDbConnectionStringBuilder([Ô]Provider = Microsoft.ACE.OLEDB.12.0; Data source=[Ô] & Application.StartupPath & [Ô]\IDM-relatorio_qtde_presente_ausente_MARCO16-CAMPINAS.xls[Ô] & [Ô];Extended Properties=[Ô][Ô]Excel 12.0;HDR= yes;[Ô][Ô];[Ô])
Dim conn As New OleDbConnection(pathconn.ToString)
Dim dt As New DataTable()
Dim MyDataAdapter As New OleDbDataAdapter(
[Ô]SELECT
DATA AS dat,
especialidade AS espec,
[Profissionais Previstos] AS prev,
[Profissionais Presentes] AS pres,
[Observação] AS obs,
[Detalhes da observação] AS det
FROM
[[Ô] & ([Ô]AMA CAMPINAS[Ô]) & [Ô]$][Ô],
conn)

MyDataAdapter.Fill(dt)

Return dt

End Function

Private Function RetornaListaCompleta() As List(Of Registro)

Dim retorno As New List(Of Registro)
Dim dt As DataTable = RetornaDataTable()

For Each row As DataRow In dt.Rows
Dim novo As New Registro
With novo
.Data = RetornaDataOuNulo(row([Ô]dat[Ô]))
.Especialidade = IIf(Convert.IsDBNull(row([Ô]espec[Ô])), [Ô][Ô], row([Ô]espec[Ô]))
.ProfissionaisPresentes = row([Ô]pres[Ô])
.ProfissionaisPrevistos = row([Ô]prev[Ô])
.Observacao = IIf(Convert.IsDBNull(row([Ô]obs[Ô])), [Ô][Ô], row([Ô]obs[Ô]))
.DetalhesObservacao = IIf(Convert.IsDBNull(row([Ô]det[Ô])), [Ô][Ô], row([Ô]det[Ô]))

retorno.Add(novo)
End With
Next

Return retorno

End Function

Private Function RetornaDataOuNulo(valor As Object) As Nullable(Of DateTime)
Dim retorno As Nullable(Of DateTime)

If Not Convert.IsDBNull(valor) Then
If IsDate(valor) Then
retorno = Convert.ToDateTime(valor)
End If
End If

Return retorno
End Function

Public Sub Listar()
Dim listaCompleta As List(Of Registro) = RetornaListaCompleta()
Dim listaAgrupado As List(Of Registro) = listaCompleta.GroupBy(Function(x) New With {Key x.Data, Key x.Especialidade}).Select(Of Registro)(Function(g) New Registro() With {
.Data = g.Key.Data,
.Especialidade = g.Key.Especialidade,
.ProfissionaisPresentes = g.Sum(Function(k) k.ProfissionaisPresentes),
.ProfissionaisPrevistos = g.Sum(Function(k) k.ProfissionaisPrevistos),
.DetalhesObservacao = String.Join([Ô],[Ô], g.Select(Function(x) x.DetalhesObservacao).ToArray()),
.Observacao = String.Join([Ô],[Ô], g.Select(Function(x) x.Observacao).ToArray())}).ToList()


For Each reg As Registro In listaAgrupado
Dim lst As ListViewItem
lst = ListView1.Items.Add(IIf(IsNothing(reg.Data), [Ô]Sem data[Ô], reg.Data.ToString()))
lst.SubItems.Add(reg.Especialidade)
lst.SubItems.Add(reg.ProfissionaisPrevistos)
lst.SubItems.Add(reg.ProfissionaisPresentes)
lst.SubItems.Add(reg.Observacao)
lst.SubItems.Add(reg.DetalhesObservacao)
Next

End Sub

End Class

DS2T 29/04/2016 20:05:11
#461698
Eta cara, esqueci que criei uma classe hahahahaha
Cria uma classe aí assim:

Public Class Registro


Public Property Data As Nullable(Of DateTime)

Public Property Especialidade As String

Public Property ProfissionaisPrevistos As Byte

Public Property ProfissionaisPresentes As Byte

Public Property Observacao As String

Public Property DetalhesObservacao As String

End Class

KURTGU 29/04/2016 20:06:56
#461699
Vlw pela Ajuda D2ST
KURTGU 03/05/2016 11:47:08
#461805
D2ST Poderia me explicar como faco para desclarar Registro esta tendo erro em todos dizendo que nao esta registrado...
Página 2 de 3 [21 registro(s)]
Tópico encerrado , respostas não são mais permitidas