USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  De Listbox para DataReport VB6
liPPe
CÂNDIDO MOTA
SP - BRASIL
ENUNCIADA !
Postada em 09/04/2008 12:39 hs            
Pessoal, estou precisando montar um data report com registros selecionados através de um list box. Obs.: não estou usando e nem quero usar data environment, estou fzd td no código mesmo.

O caso é o seguinte, eu tenho num msflexgrid todos os registros de um bd e o usuário pode selecionar alguns e adicioná-los em um listbox. O problema está em gerar uma listagem (relatório com data report do vb6) com apenas os dados que estão no listbox.

estou usando o código abaixo, até dá certo, só que no data report só fica o último registro do listbox, ele substitui os anteriores.

Private Sub cmdGerar_Click()

Dim prancheta As Integer
Dim i As Integer
Dim z As Integer
Dim total As Integer

total = lstPrancheta.ListCount

For prancheta = 0 To total - 1
sql = "SELECT CodPro, Req_Recl, Rcld, EndRcld, NumRcld, Motivo, TipoDoc From TabProtocolo WHERE TabProtocolo.CodPro = '" & Mid(lstPrancheta.ItemData(prancheta), 1, 4) & "' ORDER BY CodPro" 'aqui é pra pegar só o código do registro, ex.: "0011 - Nome do Reclamante", só pega o 0011
ReabreRst Rst 'função para reabrir meu recordset
Rst.Open sql, Cnn, adOpenKeyset, adLockOptimistic
z = 0
With rptVisitar 'meu data report
.Hide
Set .DataSource = Rst
.DataMember = ""
With .Sections("Section1").Controls
For i = 1 To .Count
If TypeOf .Item(i) Is RptTextBox Then
.Item(i).DataMember = ""
.Item(i).DataField = Rst(z).Name
z = z + 1
End If
Next i
End With
.Refresh
End With
Next prancheta
rptVisitar.Caption = "Total de Reclamações: " & total
rptVisitar.Show
End Sub

abaixo segue a tela do meu data report com os RptTextBox com os nome dos campos do select.
http://img87.imageshack.us/img87/4599/rptvisitarwx0.jpg
alguém pode dar uma força? já quebrei a cabeça e não achei a bendita falha...

Banco: Access 2003
Acesso: AD
   
JOM
BOM JESUS DA LAPA
BA - BRASIL
ENUNCIADA !
Postada em 10/04/2008 20:00 hs            
Como estão aparecendo os dados no List? para jogar na seção Details vc deve jogar os dados direto do Recordset. vc pode fazer o seguinte:
 
Colocar para aparecer no list apenas um campo que identifique o registro na tabela, como o campo codigo e dos codigos selecionados fazer um select com os campos escolhidos e lançar no datareport, exemplo:
 
No list
 
0011
0151
0135
 
Dai fazer um select que retorne todos os campos onde os codigos são os que aparecem no list e jogar no DataReport.
 
Dá uma procurada nas dicas, tem umas que coloquei sobre DataReport e vê se te ajuda, qualquer coisa posta pra tentarmos resolver, não é dificil não.
   
liPPe
não registrado
ENUNCIADA !
Postada em 05/05/2008 08:13 hs   
Não entendi cara... acredito que eu já esteja fazendo isso...
   
José Ari
MANAUS
AM - BRASIL
Postada em 05/05/2008 13:03 hs            
voce pode fazer assim:
 
sql = "SELECT CodPro, Req_Recl, Rcld, EndRcld, NumRcld, Motivo, TipoDoc From TabProtocolo WHERE TabProtocolo.CodPro = '"
 
for i = 1 to lstPancheta.List
sql = sql & Mid(lstPrancheta.ItemData(prancheta), 1, 4) & "' AND TabProtocolo.CodPro = '"
next
 
sql = sql & " ORDER BY CodPro"
fala ae se deu certo falow...

================================================================
O Aprendizado é Direito de Todos. O Saber é Privilégio de Poucos.

Começando a estudar VB.NET. Realmente é incrível!!!!

     
José Ari
MANAUS
AM - BRASIL
Postada em 05/05/2008 13:31 hs            
ops, em vez de:
      for i = 1 to lstPancheta.List
é:
      for i = 1 to lstPancheta.ListCount
 
naum sei de sá certo, mas tenta ae...

================================================================
O Aprendizado é Direito de Todos. O Saber é Privilégio de Poucos.

Começando a estudar VB.NET. Realmente é incrível!!!!

     
Alexandre Patos
Pontos: 2843 Pontos: 2843
PATOS DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 05/05/2008 13:53 hs            
jose ari, acho que ficou faltando o operador in, nao ? exemplo
 
sql = "SELECT CodPro, Req_Recl, Rcld, EndRcld, NumRcld, Motivo, TipoDoc From TabProtocolo WHERE TabProtocolo.CodPro in("
 
for i = 1 to lstPancheta.Listcount
sql = sql & Mid(lstPrancheta.ItemData(prancheta), 1, 4) & ","
next
 
sql = sql & "0) ORDER BY CodPro"
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página