Работа над самым большим и сложным контролом потихоньку идет. Она идет уже не первую неделю и до окончания работы над ним ещё далеко. Хорошо, если за месяц управлюсь. Продуктивность предыдущих дней в силу разных причин была ниже плинтуса. Даже сил и времени не было писать новые посты. Так-то. Очень тут всё не просто дается. Буквально из кожи вон вылезать приходится, чтобы сделать какую-то пустяшную мелось, которая занимает часы времени.
Вот, на самом верхнем скриншоте представлено диалоговое окно для редактирования данных в ячейках таблицы. Оно может быть удобно при редактировании, когда ширина столбцов небольшая и нужно место в ширь. Это окно скопировано из старой версии программы в текущую, но, конечно-же претерпело существенные изменения. Оно раньше служило только для редактирования выбранных из таблицы данных, но ещё и добавляет новые строки в таблицу, при вызове функции добавления новых строк через это окно. Да уж, функций становиться всё больше и больше. Программа усложняется. Времени на работу нужно всё больше.

Ну а теперь полным ходом пошла работа над поиском и заменой данных в таблицах. Она уже второй день идет. До конца этой недели точно хватит работы над поиском и заменой. Так как в базах данных это очень важная функция. Найти и отфильтровать данные. И тут я реализую аж несколько механизмов поиска и замены. Первый - на стороне БД SQLite. Данные выбираются по заданным критериям из базы данных. Далее второй механизм- фильтрация уже выбранных данных по дополнительным критериям. При этом фильтрация строк таблицы происходит без обращения непосредственно к таблице SQLite, а производится фильтрация уже выбранных строк.
Третий механизм - к нему мне ещё предстоит перейти, но уже завтра. Поиск и замена через диалоговое окно с возможностью задания столбцов таблицы, где будут производиться эти операции. Ну и, наконец, четвертый механизм поиска и замены - это поиск и замена по всем таблицам базы данных сразу. Один запрос выбирает все найденные совпадения из всех существующих в БД таблиц, с использованием всех столбцов этих таблиц. Да, это самый мощный поиск. И результаты этого поиска открываются в отдельной, специальной вкладке, где результаты поиска отображаются при выборе из специальной временной таблицы, куда помещаются результаты поиска. Так что вот так.
Ну а остановился я пока на втором механизме. И ещё сегодня его доделать не успел. Думал сделаю, но получилось как всегда. вечно времени не хватают и вечно приходиться отвлекаться на другие возникающие проблемы в программе, которые постоянно внезапно выскакивают, как черт из табакерки.
Вот, на следующем скриншоте показана работа поиска по уже выбранным данным, которые отображаются в представлении таблицы. ораньжевым подсвечиваются найденные соответствия поиску:
Для этой подсветки результатов пришлось делать целый отдельный контрол и целую систему для его динамического подключения к таблице. Конечно, эту подсветку можно и убрать, изменив настройки поиска.
Ну и вот, наконец второй механизм поиска - непосредственно в таблицах БД SQlite. Вот и интерфейс настройки этого поиска и замены, на панели справа:
Собственно, механизм поиска тут я уже сделал, но до замены добраться не успел. Помешал закончившийся день и закончившиеся в сегодняшних мучениях силы. Так что вот такие пироги.
Ну и на этом пока что всё. Будем продолжать работу над поиском и заменой. но уже завтра. А на этом пока что всё и теперь уже до новых постов и до новых свершений.




