CAMPOS MULTIPLOS EM DATA REPORT

HARRY631 11/11/2009 22:50:25
#327477
Olá Pessoal

Estou fazendo um projeto, usando uma ListView e os dados dela vão para um DataReport, usando ADO!
Porém eu gostaria de que todos os campos da listview aparececem no report mas só aparece os campos da primeira linha. Eu tentei usar o comando for mas também não tá dando certo!

O Código:

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim i As Integer


rs.ActiveConnection = Nothing
rs.CursorLocation = adUseClient


rs.Fields.Append [Ô]Dia[Ô], adChar, 100
rs.Fields.Append [Ô]Semana[Ô], adChar, 100
rs.Fields.Append [Ô]Horario[Ô], adChar, 100
rs.Fields.Append [Ô]Residencia[Ô], adChar, 400
rs.Fields.Append [Ô]Local[Ô], adChar, 400
rs.Fields.Append [Ô]Reponsavel[Ô], adChar, 400

rs.Open
rs.AddNew
For i = 1 To ListView1.ListItems.Count
rs.Fields(0) = ListView1.ListItems(i).Text
rs.Fields(1) = ListView1.ListItems(i).SubItems(1)
rs.Fields(2) = ListView1.ListItems(i).SubItems(2)
rs.Fields(3) = ListView1.ListItems(i).SubItems(3)
rs.Fields(4) = ListView1.ListItems(i).SubItems(4)
rs.Fields(5) = ListView1.ListItems(i).SubItems(5)
Next

rs.Update

Set DataReport2.DataSource = rs
DataReport2.Show


Alguém sabe como arrumar? Eu sou novato no VB ^^
Vlw
ROBIU 12/11/2009 13:23:43
#327527
Você está atribuindo valores ao Rs mas não está salvando. Só o ultimo salva. Teta isso
rs.Open

For i = 1 To ListView1.ListItems.Count
rs.AddNew

rs.Fields(0) = ListView1.ListItems(i).Text
rs.Fields(1) = ListView1.ListItems(i).SubItems(1)
rs.Fields(2) = ListView1.ListItems(i).SubItems(2)
rs.Fields(3) = ListView1.ListItems(i).SubItems(3)
rs.Fields(4) = ListView1.ListItems(i).SubItems(4)
rs.Fields(5) = ListView1.ListItems(i).SubItems(5)

rs.Update
Next


HARRY631 12/11/2009 21:12:32
#327578
Funcionou

Vlw mesmo amigo! Perfeito
GNCNET 12/11/2009 23:28:25
#327589
Meu problema é semaelhante. Com o código abaixo, o problema é que quero que APENAS os itens no listview repitam em sequencia, mas as imagens e o nome do cliente se repetem tantos quantos forem os itens do list.

Private Sub btnReprint_Click() [ô]/-/ Gerar Relatório

Dim dtx As ADODB.Recordset
Set dtx = New ADODB.Recordset

[ô]Recordset desconectado
dtx.ActiveConnection = Nothing
dtx.CursorLocation = adUseClient

[ô]Criar colunas em Run-Time
dtx.Fields.Append [Ô]Nome[Ô], adChar, 100
dtx.Fields.Append [Ô]Procedimento[Ô], adChar, 100
dtx.Fields.Append [Ô]Total[Ô], adChar, 100

[ô]Passar o recordset como parâmetro para o Report
Set Dt_proc.DataSource = dtx
Set Dt_proc.Sections([Ô]Section1[Ô]).Controls([Ô]d18[Ô]).Picture = d(18).Picture
Set Dt_proc.Sections([Ô]Section1[Ô]).Controls([Ô]d17[Ô]).Picture = d(17).Picture

Set Dt_proc.Sections([Ô]Section4[Ô]).Controls([Ô]img_logo[Ô]).Picture = LoadPicture(App.Path & [Ô]\IMAGENSPACIENTES\[Ô] & [Ô]logotipo.jpg[Ô])

[ô]Abrir Recordset e popular em Run-Time

dtx.Open
For BAM = 1 To Me.lv1.ListItems.Count
dtx.AddNew
dtx.Fields(0) = cmb_clientes
dtx.Fields(1) = lv1.ListItems(BAM).ListSubItems(4).Text [ô]procedimento
dtx.Fields(7) = valor_tt.Text

dtx.Update
Next [ô]BAM

Set Dt_proc.DataSource = dtx
Dt_proc.Show

End Sub
Tópico encerrado , respostas não são mais permitidas