0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 20
1

Фильтр работает не корректно

22.08.2013, 11:30. Показов 1098. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,в программировании я новичок, вот мучаюсь с функцией фильтра:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    'функция возвращает сокр. название представительства
    Public Function predstavit() As String
        If Cbfilterpred.Text = "Жигулевск" Then
            predstavit = "Ж"
        ElseIf Cbfilterpred.Text = "Кинель" Then
            predstavit = "К"
        ElseIf Cbfilterpred.Text = "Кузнецк" Then
            predstavit = "КЗ"
        ElseIf Cbfilterpred.Text = "Новокуйбышевск" Then
            predstavit = "Н"
        ElseIf Cbfilterpred.Text = "Новоспасское" Then
            predstavit = "НС"
        ElseIf Cbfilterpred.Text = "Отрадный" Then
            predstavit = "О"
        ElseIf Cbfilterpred.Text = "Сергиевск" Then
            predstavit = "С"
        ElseIf Cbfilterpred.Text = "Сызрань" Then
            predstavit = "СЗ"
        ElseIf Cbfilterpred.Text = "Ульяновск" Then
            predstavit = "У"
        ElseIf Cbfilterpred.Text = "Хвалынск" Then
            predstavit = "Х"
        ElseIf Cbfilterpred.Text = "Тольятти" Then
            predstavit = "Т"
        Else
            predstavit = ""
        End If
    End Function
Фильтр работает но некорректно, например если выбрать сергиевск,фильтр вернет "С", "СЗ" и "НС", то есть все где есть "С". что нужно прописать еще?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2013, 11:30
Ответы с готовыми решениями:

Поисковик файлов работает корректно не на всех ПК
Всем привет! У меня возникла проблема, стоит 2012 студия, basic на framework 2.0, приложение...

Странная ошибка в функции: корректно работает только при наличии точек останова
Есть ф-ция: Function GetPass(ByVal len As Byte) As String Dim out As String = "" ...

Функция корректно работает в Delphi 7 и не неверно работает в RAD Studio 10
Переписываю свою программу с Delphi 7 под RAD Studio 10. Столкнулся с проблемой - функция в...

Игра работает корректно в Unity, но не работает после билда
Разрабатываю игру на Android. Решил сделать билд для проверки на телефоне. В Unity все скрипты...

15
98 / 49 / 0
Регистрация: 14.08.2013
Сообщений: 230
Записей в блоге: 4
22.08.2013, 11:35 2
А через Select Case не пробовал?
0
1 / 29 / 0
Регистрация: 21.08.2013
Сообщений: 379
22.08.2013, 11:37 3
я бы сделал по другому: от слова отделял бы первую(две) буквы сравнивал с вводимым и выводил нужное
если будет время мб напишу

Добавлено через 44 секунды
Цитата Сообщение от -DimN- Посмотреть сообщение
А через Select Case не пробовал?
Хм тоже очень даже неплохой вариант
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 20
22.08.2013, 11:48  [ТС] 4
через Select Case одну строчку напишите пожалуйста,а то у меня кучу ошибок выдает.... информация берется из датагридвью.....
0
1 / 29 / 0
Регистрация: 21.08.2013
Сообщений: 379
22.08.2013, 11:50 5
вначале вопрос те над фильтр именно через функцию? если да то Select case не подойдёт это оператор выбора
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 20
22.08.2013, 11:51  [ТС] 6
да,через функцию
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.08.2013, 11:57 7
через select case
вообще-то Cbfilterpred.Text лучше передавать в функцию как параметр
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Compare Text
Public Function predstavit() As String
  Dim p As String
  Select Case Cbfilterpred.Text
         Case "Жигулевск": p = "Ж"
         Case "Кинель": p = "К"
         Case "Кузнецк": p = "КЗ"
         Case "Новокуйбышевск": p = "Н"
         Case "Новоспасское": p = "НС"
         Case "Отрадный": p = "О"
         Case "Сергиевск": p = "С"
         Case "Сызрань": p = "СЗ"
         Case "Ульяновск": p = "У"
         Case "Хвалынск": p = "Х"
         Case "Тольятти": p = "Т"
         Case Else: p = ""
    End Select
    predstavit = p
End Function
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 20
22.08.2013, 12:03  [ТС] 8
SoftIce, спасибо, но проблема осталась, выдает все поля где находит похожую букву
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.08.2013, 12:06 9
Дело не в функции
Функция возвращает только одно значение
Наверняка Вы её несколько раз вызываете, поэтому и получаете несколько значений.

Cbfilterpred.Text - это что такое?
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 20
22.08.2013, 12:58  [ТС] 10
Цитата Сообщение от SoftIce Посмотреть сообщение
Cbfilterpred.Text - это
это Combobox
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.08.2013, 13:02 11
Как(откуда) вызываете функцию?
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 20
22.08.2013, 13:05  [ТС] 12
Цитата Сообщение от SoftIce Посмотреть сообщение
Как(откуда) вызываете функцию?
Я сначала объявляла переменную:
VB.NET
1
Dim predstav As String = predstavit()
потом использовала ее в нужных мне фильтрах,например:
VB.NET
1
2
3
If cbfilterOtdel.Text = "" And tbDateOutPr.Text = "" And tbInDatePr.Text = "" And tbDateOut.Text = "" Then
            Me.VORSvseSTUDENTIBindingSource.Filter = String.Format("pol like '{0}' and vidobych like '{1}' and Prikaz_o_zach like '{2}' and DeductedOrder like '{3}'[B] and Predstav like '{4}[/B]' and OrgName like '{5}' and voendoc like '{6}' and status like '{7}' and outCase like '{8}' and region like '{9}'", _
            "%" & pol & "%", "%" & forma & "%", "%" & prikazZach & "%", "%" & deductedOrder & "%", [B]"%" & predstav & "%"[/B], "%" & inst & "%", "%" & voendoc & "%", "%" & status & "%", "%" & outcase & "%", "%" & region & "%")
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.08.2013, 13:15 13
Цитата Сообщение от Gal4onok Посмотреть сообщение
Я сначала объявляла переменную:
Dim predstav As String = predstavit()
Вы здесь сразу присваиваете переменной то значение, которое возвращает функция в зависимости от текста в комбобоксе на настоящий момент.

Может быть здесь
Цитата Сообщение от Gal4onok Посмотреть сообщение
"%" & predstav & "%",
попробовать использовать не переменную, а возвращаемое функцией значение?
"%" & predstavit() & "%",
1
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 20
22.08.2013, 13:27  [ТС] 14
Цитата Сообщение от SoftIce Посмотреть сообщение
попробовать использовать не переменную, а возвращаемое функцией значение?
"%" & predstavit() & "%",
попробовала, но прога однозначно возвращает мне все строки,где находит заданную в функции букву(
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
22.08.2013, 13:37 15
чудеса какие-то
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 20
23.08.2013, 08:02  [ТС] 16
Цитата Сообщение от SoftIce Посмотреть сообщение
чудеса какие-то
Это знак,что из девушки хороший программист получается редко

Добавлено через 17 часов 41 минуту
При попытке запустить на другом компьютере все заработало,всем спасибо)
0
23.08.2013, 08:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2013, 08:02
Помогаю со студенческими работами здесь

Apache+Ubuntu не работает/работает не корректно
Переустановил апачи иии оно не работает. Установка прошла без ошибок, но на старт, рестарт, стоп...

Не работает модуль (работает не корректно)
Доброго времени суток! Проблема в следующем... На главном шаблоне модуль работает, но я сейчас...

Работает не корректно
Суть задачи в том что бы Написать программу, которая ждет ввода буквы русского алфавита и в...

Не корректно работает
I need help. Не могу понять почему мой код при считывание с одного файла и записи в другой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru