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

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

 

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

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

Это использовано в диалоге для заполнения ячеек в таблицы, вызываемое при нажатии на большую кнопку "Заполнить ячейку" на вкладочной ленте окна. Вот это окно:

 

Тут всё тоже самое, кроме возможности выбора вычислений по строкам (рядам) или по столбцам.

Ну и далее. Реализована функция для обработки данных функцией. Не SQLite-функциями, а функциями .NET. Математическими. Пока что. Потом функции можно будет и добавить. И тоже там можно выбрать применение по вертикали и горизонтали. Вот оно, это диалоговое окно:

 

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

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

Так что на этом пока что всё. И как обычно, до новых постов и до новых свершений.

29-10-2024, 19:57
Вернуться назад