Может это странный код...

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Может это странный код...

Сообщение SLIM » 12.10.2008 (Вс) 12:11

Столкнулся с проблемой такой
Нужно из одного ListView добавить в другой ListView все строки по заданному параметру. Причем этот параметр "проявляется" только в выделнной строке. Ну в общем вот код, но не знаю почему (вот подсказывает мен что-то), код мне кажется слегка ненормальным.....Может есть у кого идеи по оптимизации...я уже выбился из сил варианты перебирать...
Код: Выделить всё
' _______________________________________________________________________________________________________
'| Функция добавления из одного списка в другой всех записей по заданному параметру (Списки ListView)    |
'| Список из которого добавляем ListAddable                                                              |
'| Список в который добавляем ListInAdd                                                                  |
'| Критерий отбора - номер калонки списка, из которого быдем выбирать (он выделен) ColumnCriteria        |
' -------------------------------------------------------------------------------------------------------

Public Sub AddFromListToList(ByVal ListAddable As ListView, ByVal ListInAdd As ListView, ByVal ColumnCriteria As Integer)
Dim i As Long                                           'Счетчик
Dim ListItemObj As ListItem                             'Тут все понятно
Dim VPAddedInComplect As String                         'Это будет в выделенной строке критерий добвления из списка


    VPAddedInComplect = ListAddable.ListItems.Item(ListAddable.SelectedItem.Index).SubItems(ColumnCriteria)
    i = ListAddable.ListItems.Count
    Do While Not i = 0                                  'Циклим пока счетчик не станет равен нулю
                                                        'Если в списке, из которого будем добавлять, 4-я колонка равна нашему критерию,...то
        If ListAddable.ListItems.Item(i).SubItems(4) = VPAddedInComplect Then
                                                        'Добавляем все из таблицы во вторую lstAddInComplect
            Set ListItemObj = ListInAdd.ListItems.Add(, , ListAddable.ListItems.Item(i))
            ListItemObj.SubItems(1) = ListAddable.ListItems.Item(i).SubItems(1)
            ListItemObj.SubItems(2) = ListAddable.ListItems.Item(i).SubItems(2)
            ListItemObj.SubItems(3) = ListAddable.ListItems.Item(i).SubItems(3)
            ListItemObj.SubItems(4) = ListAddable.ListItems.Item(i).SubItems(4)
            ListItemObj.SubItems(5) = ListAddable.ListItems.Item(i).SubItems(5)
            ListItemObj.SubItems(6) = ListAddable.ListItems.Item(i).SubItems(6)
                                                        'Удаляем из таблицы (из которой собственно добавляем) строку
            ListAddable.ListItems.Remove (ListAddable.ListItems.Item(i).Index)
            i = ListAddable.ListItems.Count             'Переопределяем счетчик на количество строк снова
           
        Else                                            'А если по заданному критерию строка (ее 4-я колонка) не равна,то
                                                        'Уменьшаем счетчик ровно на единицу
            i = i - 1
        End If
    Loop
   
End Sub
Пишите жизнь на чистовик.....переписать не удастся.....

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Может это странный код...

Сообщение SLIM » 12.10.2008 (Вс) 14:30

Не знаю даже что сказать, но по моему мнению то что не откоментированно можно считать неинтересным никому либо идеальным без добавлений. Хотя бы сообщили как мне думать то...
Пишите жизнь на чистовик.....переписать не удастся.....

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: Может это странный код...

Сообщение Proxy » 12.10.2008 (Вс) 14:37

Нет. Просто в воскресенье едва ли у кого-то возникнет желание читать такие свитки кода.
Follow the white rabbit.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Может это странный код...

Сообщение SLIM » 12.10.2008 (Вс) 14:49

Эх разве это свитки!!!!???? Если бы вы вес проект почитали....
Пишите жизнь на чистовик.....переписать не удастся.....

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Может это странный код...

Сообщение Nord777 » 12.10.2008 (Вс) 18:58

В .Net это будет так :P
Код: Выделить всё
  Public Sub AddFromListToList(ByVal ListAddable As ListView, ByVal ListInAdd As ListView, ByVal ColumnCriteria As Integer)
    Dim i As Integer
    Dim VPAddedInComplect As String
    VPAddedInComplect = ListAddable.SelectedItems(0).SubItems(ColumnCriteria).Text

    Do
      If ListAddable.Items(i).SubItems(ColumnCriteria).Text = VPAddedInComplect Then
        ListInAdd.Items.Add(ListAddable.Items(i).Clone())
        ListAddable.Items.RemoveAt(i)
      Else
        i += 1
      End If
    Loop While i < ListAddable.Items.Count

  End Sub
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Может это странный код...

Сообщение SLIM » 12.10.2008 (Вс) 20:11

Nord777 писал(а):В .Net это будет так :P

Странно...контрол он и в африке контрол. Надо попробовать на VB6 так же....
Пишите жизнь на чистовик.....переписать не удастся.....


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

    TopList