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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Seleção com listview
RAIANE
SUZANO
PS - BRASIL
ENUNCIADA !
Postada em 07/09/2006 21:28 hs            
Oi Amigos eu tentei utilizar as opções sugeridas porém quando alterei a rotina para
.SelectionFormula = "{Clientes.cl_contrato}='" & ListViewDetalhes.ListItems(i%).text & "'"
É impresso apenas um registro por vez, mesmo que tenha vários registros selecionados, e o curioso é que quando seleciono apenas o último ele não reconhece e mostra o primeiro registro mesmo que este não esteja selecionado.
 
Fiz um teste também com a segunda opção mas deu erro no .subitens
.SelectionFormula = "{Clientes.cl_contrato}='" & ListViewDetalhes.ListItems(i%).subitens(1) & "'"
 
Por favor se alguém tiver alguma sugestão que possa me ajudar eu ficarei muinto grata.
Um abraço
Raiane.
   
wncruz
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 08/09/2006 08:01 hs            
Posta o codigo que vc preenche o listview. Por favor.....
 
PS. Des do Select.

Sds,

"O segredo é quebrar os problemas em pequenos pedaços administráveis. Se você lidar com eles, termina antes de saber disso."

Watson Gomes da Cruz
   
RAIANE
SUZANO
PS - BRASIL
ENUNCIADA !
Postada em 08/09/2006 11:12 hs            
Este é o código que é carregado sempre que o form é executado
 
Dim AuxLsv As ListItem

ListViewDetalhes.ColumnHeaders.Add , , "Contrato:", 1000
ListViewDetalhes.ColumnHeaders.Add , , "Nome do Cliente:", 5000, lvwColumnLeft
xEtiq = "Select cl_contrato, cl_nome,cl_datacadastro from Clientes "
 
xEtiq = xEtiq & "  Where cl_datacadastro BETWEEN #" & Format$(dtInicial, "mm/dd/yyyy") & "# AND #" & Format$(dtFinal, "mm/dd/yyyy") & "#"
Set XETiquetas = xmdb.OpenRecordset(xEtiq, 2)
While Not XETiquetas.EOF
Set AuxLsv = ListViewDetalhes.ListItems.Add
 AuxLsv.Text = XETiquetas!cl_contrato
 AuxLsv.SubItems(1) = XETiquetas!cl_nome
XETiquetas.MoveNext
Wend

E este ...é o código que estou usando para imprimir as etiquetas, mas não está imprimindo todas as etiquetas selecionadas como gostaria.
 
With cr1
 

        .ReportFileName = App.Path & "Etiquetas.rpt"
        .WindowTitle = "Impressão de Etiquetas: "
       
        For i% = 1 To ListViewDetalhes.ListItems.Count - 1
            If ListViewDetalhes.ListItems(i%).Checked = True Then
                .SelectionFormula = "({Clientes.cl_contrato}='" & ListViewDetalhes.ListItems(i%).Text & "')"
                .WindowState = crptMaximized
               .WindowShowRefreshBtn = True
             End If
        Next i%
       .Destination = 0
       .Action = 1

End With
 
Obrigada pela gentileza
Um abraço
Raiane
   
wncruz
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 08/09/2006 11:25 hs            
Raiene,
Tenta isso.
With cr1
        .ReportFileName = App.Path & "Etiquetas.rpt"
        .WindowTitle = "Impressão de Etiquetas: "
        Dim strFormula as String
        strFormula  = ""
        For i% = 1 To ListViewDetalhes.ListItems.Count - 1
            If ListViewDetalhes.ListItems(i%).Checked = True Then
                if strFormula  = "" then
                        strFormula  = "("
                 Else
                        strFormula  = strFormula  & " Or "
                 End If
                 strFormula  = strFormula  & "{Clientes.cl_contrato}='" & ListViewDetalhes.ListItems(i%).Text & "'"
               .WindowState = crptMaximized
               .WindowShowRefreshBtn = True
             End If
        Next i%
        .SelectionFormula =  strFormula  & ")"
       .Destination = 0
       .Action = 1

End With
 
Sds,
 

Sds,

"O segredo é quebrar os problemas em pequenos pedaços administráveis. Se você lidar com eles, termina antes de saber disso."

Watson Gomes da Cruz
TÓPICO EDITADO
 
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 08/09/2006 11:27 hs            
Raiane... não estou com crystal no momento aqui onde trabalho e nem lembro mas veja se o crystal permite a cláusula in ou algo semelhante para usar... vc vai ter q montar um consulta... no modo q vc colocou só vai pegar o último registro mesmo pois vc está comparando o campo com um registro apenas por vez. Depois q o loop é terminado o último registro comparado é o último do ListView selecionado.
 
Veja:
 
Dim strItens as String
 
strItens = "("
With cr1
 

        .ReportFileName = App.Path & "Etiquetas.rpt"
        .WindowTitle = "Impressão de Etiquetas: "
       
        For i% = 1 To ListViewDetalhes.ListItems.Count - 1
            If ListViewDetalhes.ListItems(i%).Checked Then
                strItens = strItens & "'" & ListViewDetalhes.ListItems(i%).Text & "',"
             End If
        Next i%
        strItens = Left(strItens,Len(strItens)-1) & "))"
 
        .WindowState = crptMaximized
        .WindowShowRefreshBtn = True
       .SelectionFormula = "({Clientes.cl_contrato} IN " & strItens
       .Destination = 0
       .Action = 1

End With
 
strItens deve retornar um valor tipo:
 
('001/2006','002/2006','003/2006'))
 
ae vc concatena para passar o valor da fórmula:
"({Clientes.cl_contrato} IN " & strItens
 
o resultado deverá ficar assim:
 
({Clientes.cl_contrato} IN ('001/2006','002/2006','003/2006'))
Como disse antes, não lembro se o crystal tinha a cláusula IN mas se não tiver deve ter algo semelhante...
 
qq problema é só postar ok?
 
at+ :)
   
wncruz
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 08/09/2006 11:43 hs            
Vc disse tudo Ghost,
 
Eu não sei se o Crystal usa "IN" por isso que usei daquela forma.....
 
 
 
Sds,

Sds,

"O segredo é quebrar os problemas em pequenos pedaços administráveis. Se você lidar com eles, termina antes de saber disso."

Watson Gomes da Cruz
   
Página(s): 2/4     « ANTERIOR    PRÓXIMA »

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