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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Ordenar combobox por texto ou por nº?
Vilmar Brazão
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 12/02/2008 15:52 hs         
Eu quase consegui :( !
Mas está ordenando pela ordem que foi inserido nas collections.
Alguma idéia para melhorar ??
 
Rotina:
 
Option Explicit
Dim m_colOrdTextoCorretora As Collection
Dim m_colOrdNumeroCorretora As Collection
Private Sub cmdOrdenacao_Click()
    Dim intI As Integer
   
    cboCorretora.Clear
   
    If cmdOrdenacao.Caption = "A-Z" Then
        'Ordena por número
        cmdOrdenacao.Caption = "0-9"
       
        For intI = 1 To m_colOrdNumeroCorretora.Count
            cboCorretora.AddItem m_colOrdNumeroCorretora(intI)
        Next
    Else
        'Ordena por texto
        cmdOrdenacao.Caption = "A-Z"
       
        For intI = 1 To m_colOrdTextoCorretora.Count
            cboCorretora.AddItem m_colOrdTextoCorretora(intI)
        Next
    End If
End Sub
Private Sub Form_Initialize()
    Set m_colOrdTextoCorretora = New Collection
    Set m_colOrdNumeroCorretora = New Collection
End Sub
Private Sub Form_Load()
    Dim intI As Integer
    Dim vrtArray As Variant
   
    vrtArray = Array("SP", "RJ", "MG", "RS", "AM", "MT")
    For intI = 0 To UBound(vrtArray)
        cboCorretora.AddItem vrtArray(intI) & "(" & intI & ")"
        m_colOrdTextoCorretora.Add vrtArray(intI)
        m_colOrdNumeroCorretora.Add intI
       
        If vrtArray(intI) = "SP" Then
            cboCorretora.ListIndex = intI
        End If
    Next
End Sub
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 12/02/2008 18:22 hs            
deixa eu te fazer uma pergunta quais são os dados inseridos neste combo, ou como estaão formatados, ex:
 
01 - RJ
02 - SP
 
ou
 
sp
rj
 
poste como estes dados são inseridos
TÓPICO EDITADO
 
Tiranossauro
DOIS IRMÃOS
RS - BRASIL
ENUNCIADA !
Postada em 12/02/2008 22:13 hs            
usa dois combos já ordenados e na hora de clicar vc oculta um e mostra o outro
   
Vilmar Brazão
Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 13/02/2008 12:23 hs         
Oi Treze.
 
Ele adiciona estes tipos de dados, conforme trecho abaixo:

cboBrokers.AddItem: MARCILIO SOUZA(311)13
cboBrokers.ItemData(.cboBrokers.ListCount - 1): 62887
 
cboBrokers.AddItem: CARLOS TEIXEIRA(312)13
cboBrokers.ItemData(.cboBrokers.ListCount - 1): 62888
 
cboBrokers.AddItem: ANTONIO VIEIRA(314)13
cboBrokers.ItemData(.cboBrokers.ListCount - 1): 62889
 
cboBrokers.AddItem: WILSON BARION(315)13
cboBrokers.ItemData(.cboBrokers.ListCount - 1): 62890
 
cboBrokers.AddItem: MAURO A BENATI(317)13
cboBrokers.ItemData(.cboBrokers.ListCount - 1): 62891
 
cboBrokers.AddItem: D S CAVALCANTI(319)13
cboBrokers.ItemData(.cboBrokers.ListCount - 1): 62893
 
cboBrokers.AddItem: C MASTRANGELLI(320)13
cboBrokers.ItemData(.cboBrokers.ListCount - 1): 62894
 
cboBrokers.AddItem: FERNANDO BARCI(323)13
cboBrokers.ItemData(.cboBrokers.ListCount - 1): 62895

 

Tiranossauro,

Gostei da sua idéia, mas de qualquer forma eu tenho que conseguir antes ordenar por texto A-Z. Achou vou mesmo acabar usando ADO desconectado para fazer isto. Deve ficar mais rápido do que usar BubbleSort, SelectionSort ou ShellSort.

Tks.


   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 13/02/2008 15:53 hs            
Vilmar só mais uma duvida você gostaria que a combo ficasse assim então:
 
ao clicar em de 0-9
MARCILIO SOUZA(311)13
CARLOS TEIXEIRA(312)13
ANTONIO VIEIRA(314)13
 
e ao clicar de 0-9
 
ANTONIO VIEIRA(314)13
CARLOS TEIXEIRA(312)13
MARCILIO SOUZA(311)13
seria este o resultado que você deseja
 
 
   
Vilmar Brazão
Pontos: 2843
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 13/02/2008 18:37 hs         
sim treze, é isto mesmo.
   
Página(s): 2/3     « ANTERIOR    PRÓXIMA »

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