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.
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+ :)