А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Работа над поиском по таблицам БД продолжается. Поток косяков просто кошмарный

 

Сегодня был у меня очень длинный день. Очень длинный и очень трудный. Уже очень давно я так не работал. Практически двенадцать часов подряд. Работал над механизмом поиска и замены в таблицах базы данных. И работы, как всегда, оказалось непомерно больше, чем предполагалось с утра. Да и под вечер столько косяков вылезло, что вот до сих пор мне их пришлось фиксить. Да ещё и не всё профиксил. Механизм поучился очень запутанным и неудобным. Я не только о поиске, но и про архитектуру всей программы. Очень неудобным. Но ещё надо суметь, чтобы он был работоспособным. И вот тут у меня уже появилась тень сомнения. 

Вот на верхнем скриншоте диалоговое окно с поиском и заменой. Да, контрол поиска можно открыть в отдельном окне, ровно как и контрол для редактирования настроек отображения таблицы и столбцов. Так что вот так...

1 + 0 -

Реализация калькулятора, обработки данных функцией и наконец-то тот косяк поправлен!

 

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

А вот калькулятор этот применяется не только для вычислений по горизонтали, но так же и по вертикали. То есть вычисляться могут данные, взятые из всего столбца, по каждой строке. Но это уже применяется не в этом выпадающем окне, а в полноценном диалоговом окне, выполняющим вычисления по горизонтали и вертикали...  

0 + 0 -

Реализация новых идей по функционалу представления таблиц

 

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

И что же я сегодня примечательного сделал? Да целый ряд новых придумок. Ну начнем с того, что я создал и добавил новый контрол для построчного отображения в таблицах. Этот контрол отображает статус каждой строки в таблице...


1 + 0 -

Реализация функций редактирования данных таблиц в диалоговых окнах

 

Вот, за весь день реализовал пару новых возможностей по редактированию данных в таблице окна программы. Да, и ещё сделал функцию дублирования строк данных. То есть в таблице окна нужно выбрать строки, а затем нажать кнопку с надписью "дублировать". Затем эти выделенные строки будут продублированы (повторно вставлены) в эту таблицу. Но если там разбивка пагинации более одной страницы, то, чтобы увидеть продублированные строки, то нужно будет перейти на последнюю страницу.

Да, и теперь редактирование строк в диалоговых окон. Вообще, целесообразно ли это было делать? Думаю, в случае, когда места в окне не достаточно, то удобнее строку будет отредактировать в диалоговом окне. Там редакторы строки располагаются по вертикали, а не горизонтали...

1 + 0 -

Реализация функций добавления строк, сохранения изменений в БД, отмены изменений в таблице и др.

 

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

0 + 0 -

Работа над функционалом редактирования данных отображаемых таблиц

 

Последний рабочий день недели. А завтра у меня - выходной. От  программы. Потому что есть ещё и другие дела, в том числе творческие. Ими-то я завтра и займусь. Ну а что же было сегодня. Конечно, уже традиционно, я начал свою работу не с реализации того, что задумывал вчера вечером. Как всегда уже. К тому, что задумывал, я перешёл только к двум часам дня. Ну а до полудня меня опять увело. Увело на реализацию дополнительного функционала программы и на доработку допущенных ранее упущений. Ну и что же я добавил нового в функционал программы, что заняло у меня время аж до полудня? А именно добавил одну полезную для определенной категории людей функцию. Это возможность произведения в интерфейсе программы сложных математических и научных расчётов. И это должно расширить ареал применения моей программы. Установил библиотеку из nuget для выполнения этих вычислений и сознал функцию динамического выполнения C# кода. Эту функцию я прикрутил к пользовательской функции выполнения кода в C#-классе SQLite, в конвертере для обработки выводимых данных в ячейках отображаемых таблиц. И ещё буду использовать в дальнейшем в новых элементах интерфейса, реализация которых уже не за горами...

0 + 0 -

Работа над поиском и новые исправления багов

 

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

0 + 0 -

Реализация интерфейса настроек поиска

 

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

Ну а сегодня главным (но, к сожалению, мелким - продуктивность подтормаживает) свершением было создание блока с настройками для поиска в отображенных данных таблицы. То есть поиск будет производиться в тех строках таблицы, которые были выбраны после SQL-запроса в базу данных, а не во всей таблице. Поиск (с заменой) во всей таблице в файле БД, как я уже говорил ранее, будет отдельным и будет расположен в другой панели макета главного окна. Так что вот так. Ну и вот эти настройки поиска во всплывающем оке показаны на верхнем скриншоте...

0 + 0 -

Реализация упорядочивания столбцов таблиц

 

Вот, прошел ещё одни рабочий день. Что он принес? А принес он некоторые доработки и реализацию функции выполнения упорядочивания столбцов в таблице базы данных вслед за упорядочиванием столбцов в отображаемой таблице интерфейса. Дело это не хитрое. Но вот штука опять в том, что это будет работать только если в таблице нет столбцов с уникальными ключами. В противном случае перезапись данных в таблицу БД невозможна. Так что вот так. 

Ну а ещё я завершил пока все прочие недокрученные "докрутки". Например, добавил автокомплит введенных ранее и сохраненных в кэше значений при редактировании содержимого ячеек таблиц. Мелочь, но всё же это может принести удобства во многих случаях. Так как не надо повторно вводить какое-то значение, оно может быть вставлено из выпадающего списка текстового поля. Но доступно это удовольствие только для столбцов типа "VARCHAR". Так же как и автовставка пользовательских переменных...

0 + 0 -

Ряд доработок, новая команда и новый контрол - VariableBox

 

Вот он и прошёл, последний день рабочей недели. Но у меня-то, конечно, на этом рабочая неделя не заканчивается. Ну а что же я успел сделать сегодня? Вчера я предполагал, что сегодня прямо с утреца начну делать фильтры для отображенных данных таблицы. Но блин. не то что я с этим задержался, я даже до этого ещё не дошел! Так-то! Это всё потому, что вчера вечером после окончания работы, мне в голову стали валиться водопадом идеи касательно того, что нужно ещё доделать и в срочном порядке. И я записал в своей толстой тетради всё это. Получилось работы на целый день. Но зато я поправил ряд недоработок и упущений.

Ну во-первых. Добавил команду добавления новой строки в представление таблицы. Уже в программе имеются несколько функций для добавления данных в таблицы базы данных в разных форматов. Но это добавление данных непосредственно в таблицу БД, а не в её представлении в интерфейсе окна, без непосредственной записи данных в SQLite-файл...

1 + 0 -
  • Яндекс.Метрика