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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Selecao de registros
ventana
SANTOS
SP - BRASIL
Postada em 18/09/2007 15:18 hs            
Ola Amigos, aqui estou eu novamente com mais uma duvida.
Estou com problemas na hora de selecionar registros dentro do VB para serem exibidos num relatorio do Crystal.
 
O meu problema esta exatamente na selecao de clientes.Tenho uma rotina com um ListView, onde eu insiro (N) clientes, dai na selecao de registros eu uso o operador "IN" para selecionar o intervalo de registros que foram inseridos no ListView.
 
Dim strTitulo, str_Status, strFormula As String
Dim str_IdCli As String
Dim i As Double
strFormula = ""
 
Aqui eu gero a sequencia de ID´s de clentes que serao pesquisados.
 
For i = 1 To LvwCliente.ListItems.Count
    Set itemX = LvwCliente.ListItems(i)
   
    str_IdCli = str_IdCli & itemX
    If i = 1 Then
       str_IdCli = CDbl(str_IdCli)
    End If
   
    If i < LvwCliente.ListItems.Count Then
       str_IdCli = str_IdCli & ","
    End If
Next
Ao final da rotina acima , terei algo do tipo str_IdCli = ("1,10,12"), supondo que 3 clentes tenham sido informados no ListView.
 
Abaixo a sequencia que utilizo para selecionar os registros desejados.
 
 strFormula = strFormula  {PROCESSOS.PROC_STATUSPAG}=" & 0
 strFormula = strFormula & " AND {PROCESSOS.CLIENTE_ID}  IN (" & str_IdCli & ")" 
 strFormula = strFormula & " AND {PROCESSOS.PROC_INVNUM}<>'" & "" & "'"
 form.crystal.ReplaceSelectionFormula strFormula
 
A unica coisa que nao esta funcionando na selecao e o uso do "IN".
 
Sera que voces podem me ajudar.
 
 
Obrigado
     
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
ENUNCIADA !
Postada em 18/09/2007 15:45 hs            
eu não uso o crystal, mas ao q parece, vc está tentando selecionar num mesmo sql tres registros pré selecionados em outro sql...
acredito q vc tenha q fazer um loop e não tentar "puxar os registros simultaneamente
 
seria algo tipo assim (seguindo a sua rotina acima...)
str_IdCli = ("1,10,12")
primeiro pega os valores (no caso o 1, 10 e 12)...e a quantidade de registros "n" (no caso 3
cria um array no tamanho e joga os valores dentro...
redim registros(n)
depois ...
popula o array com os numeros
o array ficará...
registros(1)= 1
registros(2)=10
registros(3)=12
 
agora ...
for i= 1 to n
         bota o sql aqui  ...
         vai ficar algo tipo
         strFormula = strFormula  {PROCESSOS.PROC_STATUSPAG}=" & 0
 strFormula = strFormula & " AND {PROCESSOS.CLIENTE_ID}  = registro(i)" 
 strFormula = strFormula & " AND {PROCESSOS.PROC_INVNUM}<>'" & "" & "'"
next i
 
 
 
   
ventana
SANTOS
SP - BRASIL
Postada em 18/09/2007 16:08 hs            
Obrigado por sua ajuda meu amigo.
No meu exemplo acima eu estou concatenando os dados da minha pesquisa, logo ao final da terceira linha terei apenas uma string e nao 3.
 
Eu nao posso selecionar cada registro separadamente, pois eu preciso de todos os registros que satisfacam a condicao sejam exibidos no mesmo reltorio.
Como disse o meu unico problema nessa selecao acima esta no "IN".
     
Presuntus
MACEIO
AL - BRASIL
ENUNCIADA !
Postada em 19/09/2007 08:39 hs            
na sua concatenacao no ultimo registro ele terminara com virgula....
 
   
ventana
SANTOS
SP - BRASIL
ENUNCIADA !
Postada em 19/09/2007 10:56 hs            
Nao Presuntus, o ultimo registro nao termina com virgula, fica assim ("10,11,12")
 
Obrigado
   
Página(s): 1/1    

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