Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372

Фильтр по году

07.06.2017, 15:19. Показов 2258. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать фильтр,чтобы он оставлял только тех, у кого дата следующего прохождения намечена на 2017?
То что у меня на скрине, не совсем корректно и правильно
Миниатюры
Фильтр по году  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.06.2017, 15:19
Ответы с готовыми решениями:

Фильтр по месяцу и году
Хочу организовать фильтр по месяцу и году. Имеются 4 поля со списками: ГодС, ГодПо, МесяцС, МесяцПо. При выборе всех четырех полей должен...

Фильтр по месяцу и году в ADO
Добрый вечер. Просмотрела много тем и вопросов по своей проблеме, но фильтрация всё равно не работает как надо. Дана таблица TKart(ADO,...

Фильтр по году в ленточной форме
Добрый вечер! Access. В ленточной форме сделал поле для ввода,необходимо привязать к нему процедуру (на событие после обновления),...

28
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
11.06.2017, 16:57  [ТС]
Студворк — интернет-сервис помощи студентам
апп
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
11.06.2017, 19:46
VB.NET
1
2
3
        For i = DataGridView1.Rows.Count - 2 To 0 Step -1
            DataGridView1.Rows.RemoveAt(i)
        Next
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
11.06.2017, 20:54  [ТС]
Цитата Сообщение от Bidgo Посмотреть сообщение
For i = DataGridView1.Rows.Count - 2 To 0 Step -1
* * * * * * DataGridView1.Rows.RemoveAt(i)
* * * * Next
Он из двух записей, которые остались после фильтрации. Оставил одну
Т.е не сбросил фильтр
0
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
12.06.2017, 00:28
Для начала нужно ответить на два основных вопроса:
• Как заполняется DataGridView (вручную, через DataSource).
• Формат столбцов с датами.
Предположим, что данные подключались через DataSource, а формат столбца с датой – String. Тогда это можно оформить так.
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private DT As DataTable
Private dv As DataView
Private Sub Modeling_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
    DT = createTable() 'моделирование источника данных
    dv = DT.DefaultView
    DataGridView1.DataSource = dv
End Sub
Private Sub Filter_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
    Dim tDate As String = "2017" 'или из TextBox
    Dim s As String = "*" & tDate
    dv.RowFilter = String.Format("tstDate Like '{0}'", s) 'tstDate - имя поля в таблице DT
    DataGridView1.DataSource = dv
End Sub
Private Sub Restart_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
    dv.RowFilter = ""
    DataGridView1.DataSource = dv
End Sub

Если DataGridView заполняется вручную (неважно как), то решение может выглядеть так.
Кликните здесь для просмотра всего текста
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
Private DT As DataTable
Private Sub Modeling_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
    DT = createTable() 'моделирование источника данных
    DataGridView1.ColumnCount = 3
    DataGridView1.Columns(0).HeaderText = "ID"
    DataGridView1.Columns(1).HeaderText = "tstValue"
    DataGridView1.Columns(2).HeaderText = "tstDate"
    dgvFill()
End Sub
Private Sub Filter_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
    Dim tDate As String = "2017" 'или из TextBox
    Dim s As String = "*" & tDate
    For Each rw As DataGridViewRow In DataGridView1.Rows
        If Not rw.IsNewRow Then rw.Visible = rw.Cells(2).Value Like s
    Next
End Sub
Private Sub Restart_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
    dgvFill()
End Sub
Private Sub dgvFill()
    DataGridView1.Rows.Clear()
    Dim rw As DataGridViewRow
    For Each rr As DataRow In DT.Rows
        rw = New DataGridViewRow
        rw.CreateCells(DataGridView1, {rr.Item(0), rr.Item(1), rr.Item(2)})
        DataGridView1.Rows.Add(rw)
    Next
End Sub
Миниатюры
Фильтр по году  
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
12.06.2017, 00:49  [ТС]
Заполняется не в ручную.
В чем проблема?
Миниатюры
Фильтр по году  
0
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
12.06.2017, 11:58
xq, я ведь не знаю конкретики ваших данных и привел пример, полагая, что вы увидите аналогию с вашим случаем.
Заполняется не в ручную.
Не вручную это значит, что вы указали источник данных (и вручную это не только ввод с клавиатуры). Хотелось бы видеть, как вы выполняете привязку к данным.
В чем проблема?
Я так понимаю, вы пытались выполнить приведенный мной пример, но там данные формируются в процедуре createTable. Я ее не привел, полагая, что эту часть вы замените своими данными. Но, если нужно, то вот.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Function createTable() As DataTable
    Dim tb As New DataTable
    tb.Columns.Add("ID", System.Type.GetType("System.Int32"))
    tb.Columns.Add("tstValue", System.Type.GetType("System.Int32"))
    tb.Columns.Add("tstDate", System.Type.GetType("System.String"))
    tb.PrimaryKey = {tb.Columns(0)}
    Dim rr As DataRow
    Dim rnd As New Random
    For i = 1 To 50
        rr = tb.NewRow
        rr.Item(0) = i
        rr.Item(1) = rnd.Next(10, 90)
        rr.Item(2) = (Now.AddYears(-rnd.Next(-2, 4))).ToShortDateString
        tb.Rows.Add(rr)
    Next
    Return tb
End Function
У вас в проекте есть ссылка на Excel поэтому, чтобы определения таблиц не перекрывались, используйте полное определение типа
VB.NET
1
Private DT As System.Data.DataTable
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
12.06.2017, 12:32  [ТС]
Цитата Сообщение от ovva Посмотреть сообщение
Я так понимаю, вы пытались выполнить приведенный мной пример, но там данные формируются в процедуре createTable. Я ее не привел, полагая, что эту часть вы замените своими данными. Но, если нужно, то вот.


VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Function createTable() As DataTable
* * Dim tb As New DataTable
* * tb.Columns.Add("ID", System.Type.GetType("System.Int32"))
* * tb.Columns.Add("tstValue", System.Type.GetType("System.Int32"))
* * tb.Columns.Add("tstDate", System.Type.GetType("System.String"))
* * tb.PrimaryKey = {tb.Columns(0)}
* * Dim rr As DataRow
* * Dim rnd As New Random
* * For i = 1 To 50
* * * * rr = tb.NewRow
* * * * rr.Item(0) = i
* * * * rr.Item(1) = rnd.Next(10, 90)
* * * * rr.Item(2) = (Now.AddYears(-rnd.Next(-2, 4))).ToShortDateString
* * * * tb.Rows.Add(rr)
* * Next
* * Return tb
End Function

Подключил локальную базу sql. Вытащил с помощью конструктора все таблицы и texbox. Базу заполняю через texbox

Какой-то уж сильно мудреный код для обновления таблицы :/
0
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
12.06.2017, 12:49
сильно мудреный код для обновления таблицы
При чем тут обновление? В процедуре createTable создается таблица с тремя полями и заполняется случайными данными (50 записей).
Вытащил с помощью конструктора все таблицы и texbox. Базу заполняю через texbox
Вот это не понял. Меня интересует, как ваши данные связаны с DataGridView.
0
xq
1 / 1 / 0
Регистрация: 14.09.2014
Сообщений: 372
13.06.2017, 16:05  [ТС]
Цитата Сообщение от ovva Посмотреть сообщение
При чем тут обновление? В процедуре createTable создается таблица с тремя полями и заполняется случайными данными (50 записей).
Зачем мне это? У меня же таблицы созданы.

Без понятия как они связаны. Вытащил таблицы на формы и все соединилось

Добавлено через 21 час 19 минут
Помогите исправить
VB.NET
1
KvallBindingSource.Filter = String.Format("Convert.ToString(yyyy)([Дата следующего повышения], 'System.String') LIKE'" + TextBox1.Text + "%'")
Добавлено через 5 часов 9 минут
апп
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.06.2017, 16:05

Составить таблицу и выяснить минимальную и максимальную плотность населения в 1970 году и в 1989 году
Ребята, помогите пожалуйста с Excel. Я сам не успеваю.Задание ниже

Программа, которая бы позволяла по заданному году и порядковому номеру дня в году определять день недели
Ребята, помогите доработать код=) день недели выводится не правильно, примерно после 50 года=( Вот задание: Написать программу,...

По введенному году определить число ноября, на которое будет приходиться День матери в этом году
Подскажите алгоритм по которому можно выполнить эту задачу.Пробовал много способов , но ничего не получается. Алиса отправляясь на...

Необходимо написать программу, которая бы позволяла по году и порядковому номеру дня в году определять день недели
Необходимо написать программу, которая бы позволяла по году и порядковому номеру дня в году определять день недели (понедельник, вторник и...

По заданному году и порядковому номеру дня в году определять день недели и месяц этого дня
Задачу не можем решить 3 людьми. ______________________________ Написать программу, которая бы позволяла по заданному году и...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru