Skip to content
This repository has been archived by the owner on Dec 15, 2020. It is now read-only.
/ StatsOKM Public archive

Latest commit

 

History

History
296 lines (224 loc) · 26.5 KB

ChangeLog.md

File metadata and controls

296 lines (224 loc) · 26.5 KB

Условные обозначения

❗ Новое, 🔥 Исправлено, ⭐ Расширено, 🌟 Оптимизировано, ❔ Тестовая версия

r420

⭐ Модуль Statistics.bas

  • ⭐ Функция CostChanged: сообщение с предложением обновить цены после изменения в файле с ценами
  • 🔥 Процедура CostUpdate: изменить условия завершения процедуры
  • 🔥 Процедура SpecificationSheets: небольшие изменения в форматировании ячеек; изменены условия выполнения процедуры SortSupplier; переместить курсор на последнюю строку (ошибка #r400)
  • 🌟 Функция CheckSupplier: текст сообщения при изменении данных в колонке "Дата актуальности"
  • ❔ Процедура ListCost: изменить условия формирования списка
  • ❔ Функция GetSuppRow: изменить тип параметра PartDate

❗ Модуль Frame.bas

  • ❗ Функция ClearSpacesInText: удалить непечатаемые символы и двойные пробелы
  • ⭐ Процедура SendKeysCtrlV: собрать данные из колонки в массив Get_Supp, затем перед вставкой нескольких строк на листе SUPP_ вернуть строки из массива кроме первой
  • ⭐ Процедура SettingsStatistics: скрыть лист с настройками
  • ⭐ Процедура ErrCollection: удалить сообщение об изменении в файле с ценами; добавить сообщение о попытке вставить диапазон ячеек

🔥 Класс cExcelEvents.cls

  • 🔥 Процедура App_SheetActivate: не изменять значение переменной PartNumRow на листе ARCH_
  • 🔥 Процедура App_SheetChange: проверить данные из буфера обмена перед вставкой (отладка, выполняется в процедуре SendKeysCtrlV); присвоить Clipboard_RangeAddress значение новой строки (ошибка #r410)

⭐ Модуль AutoModuleRibbon.bas

  • ⭐ Процедура GetEnabledMacro: изменить условия проверки
  • ⭐ Процедура AutoOpenControls: завершать выполнения процедуры при отсутствии объекта
  • 🔥 Процедура ShowCosts: добавить условия проверки в сообщение с ценами (ошибка #r410)

r410

🔥 Модуль Statistics.bas

  • ⭐ Процедура Auto_Open: сортировка данных из файла с ценами по возрастанию, т.к. таблицы могут быть не отсортированы
  • ⭐ Функция CostChanged: изменить условия проверки
  • ❔ Процедура CostUpdate: добавить временную переменную TEMP_COUNT для смены номера колонки; исправить условия (ошибка #r390); добавить условия для новых листов
  • 🔥 Процедура SpecificationSheets: небольшие изменения в форматировании ячеек; добавить форматирование ячеек для новых листов
  • 🔥 Функция CheckSupplier: проверять массив SuppDiff целиком; проверка изменения данных в колонке "Дата актуальности"
  • 🔥 Функция GetCosts: добавить проверку подсчёта записей в коллекцию Cost (аналогично функция GetDateAndCosts)

🔥 Модуль Frame.bas

  • 🔥 Свойство Quit: восстановить панель контекстного меню для строки перед проверкой
  • 🔥 Процедура SettingsStatistics: условия создания коллекции
  • ❔ Функция GetSheetList: методы делегированы процедуре GetSheetIndex
  • ⭐ Процедура ErrCollection: сообщение об отсутствии таблицы в файле с ценами

🔥 Класс cExcelEvents.cls

  • ⭐ Процедура App_WorkbookActivate: удалить панель в меню строки
  • 🔥 Процедура App_SheetActivate: исправить ошибки при работе с массивом SuppDiff
  • ❔ Процедура App_SheetChange: список листов заменен на SF_ и SB_ (отладка); ошибка присвоении переменной Clipboard_RangeAddress при отсутствии записей (отладка)
  • ❔ Процедура App_SheetSelectionChange: список листов заменен на QT_ и QB_ (отладка); добавлены проверки для новых листов

🔥 Модуль AutoModuleRibbon.bas

  • ❔ Процедура AutoOpenControls: установить таймер для обновления ленточного меню при открытии книги
  • 🔥 Процедура ShowCosts: выполнить функцию GetDateAndCosts (ошибка #r400)

r400

❗ Записать константы прописными буквами

⭐ Модуль Statistics.bas

  • 🌟 Процедура Auto_Open: после открытия текущей книги присвоить статус "сохранено"
  • 🌟 Процедура SpecificationSheets: перед выполнением отключить события; переместить курсор на последнюю строку (возникает исключение при единственной записи)
  • 🌟 Функция GetCosts: перед выполнением отключить обновление экрана
  • ❔ Функция GetDateAndCosts: дополнительные проверки для выборки цен поставщика (отладка)

🔥 Модуль Frame.bas

  • ⭐ Свойство Quit: разворачивать окно приложения (на весь экран)
  • ⭐ Процедура SettingsStatistics: добавить коллекцию K_List для сбора данных о колонках листов SF_ и SB_
  • ⭐ Процедура ErrCollection: сообщение о пустой таблице в файле с ценами

🔥 Класс cExcelEvents.cls

  • 🔥 Процедура App_WorkbookBeforeSave: выполнить процедуру SpecificationSheets (ошибка #r380)
  • 🔥 Процедура App_SheetActivate: Sh заменить => на ActiveSheet (ошибка #r390)
  • ❔ Процедура App_SheetBeforeDoubleClick: дополнительные проверки индекса колонки и листа; отключить обновление экрана
  • 🔥 Процедура App_SheetChange: отобразить в сообщении лист SF_ или SB_

⭐ Модуль AutoModuleRibbon.bas

  • ⭐ Процедура RefreshRibbon: защита от изменений листа в случае отказа макросов из-за ленточного меню
  • ❔ Процедура ShowCosts: сообщение с ценами больше нуля (отладка)

r390

❗ Файл ленточного меню customUI14.xml: добавить Alt-клавиши и кнопку для просмотра цен поставщика

⭐ Колонки "Переходящих в Бюджет", "Направленных в Финансист"; переместить колонку "Кол-во поступивших материалов" <= перед "Направленных в БПК"

🔥 Модуль Statistics.bas

  • ❗ Функция GetDateAndCosts: поиск цен поставщика и передача процедуре ShowCosts
  • 🔥 Процедура CostUpdate: проверка при пересчёте итоговых сумм
  • ❔ Процедура SpecificationSheets: добавить проверку для переходящих материалов; небольшие изменения в форматировании ячеек
  • 🔥 Функция GetCosts: если цена за предыдущей период, то нужно изменить переменные SuppNumRow и cnfRenew; добавить цены для листа SB_

🔥 Модуль Frame.bas

  • 🔥 Свойство Quit: восстановить панели перед проверкой
  • ⭐ Процедура ErrCollection: сообщение о невозможности создания новой партии

🔥 Класс cExcelEvents.cls

  • ❔ Процедура App_WorkbookBeforeClose: отменить удаление объекта App
  • 🔥 Процедура App_SheetActivate: Sh заменить => на ActiveSheet; очистить массив SuppDiff
  • ❔ Процедура App_SheetBeforeDoubleClick: отключать кнопки фильтров на листе ARCH_; курсор на первую ячейку
  • ⭐ Процедура App_SheetChange: сообщение с предложением перенести переходящие материалы в другой лист

❗ Модуль AutoModuleRibbon.bas

  • ❗ Процедура GetEnabledMacro: активировать кнопку для просмотра цен поставщика
  • ❗ Процедура ShowCosts: сообщение с ценами поставщика

r380

❗ Переименовать колонки "НУМ" => "Всего НУМ", "ИТОГО Финансист" => "ИТОГО КФ"

❗ Создать массив Get_Supp для отслеживания изменений данных поставщика

❗ Модуль Statistics.bas

  • ❗ Функция GetSuppRow: поиск строки о поставщике по данным из массива Get_Supp
  • ⭐ Процедура CostUpdate: создать формулы в строке с поставщиком на листах SF_ и SB_
  • ❔ Функция SetFormula: удалить, методы делегированы процедуре CostUpdate
  • 🔥 Процедура SpecificationSheets: небольшие изменения в форматировании ячеек
  • 🌟 Функция GetCosts: добавить параметры; использовать массив Get_Supp для выборки данных о текущем поставщике
  • ❔ Процедура GetSuppRow: удалить, методы делегированы функции GetSuppRow

🔥 Модуль Frame.bas

  • 🔥 Процедура SendKeyEnter: объект Wb заменить => на ActiveWorkbook
  • ⭐ Функция GetSheetList: добавить проверку присутствия объекта ThisWb; добавить в коллекцию индекс листа с типом "байт"
  • 🌟 Процедура SettingsStatistics: добавить в коллекцию тип даты в местном формате

🔥 Класс cExcelEvents.cls

  • ❔ Процедура App_WorkbookBeforeClose: удалить процедуру SpecificationSheets
  • 🔥 Процедура App_SheetSelectionChange: удалить процедуру GetSuppRow; удалить функцию SetFormula; присвоить переменной PartNumRow номер строки до определения номера текущей колонки

r370

❗ Глобальную переменную App_Wb переименовать => в ThisWb

🔥 Модуль Statistics.bas

  • 🔥 Процедура SpecificationSheets: исправить маску "ИНН"; проверка нового поставщика, запреть ввод существующего имени
  • ❔ Процедура SendKeyEnter: переместить в модуль Frame.bas (аналогично процедура SendKeysCtrlV)

❗ Модуль Frame.bas

  • ❗ Процедура SendKeyEnter: выполнить нажатие клавиши Enter только для текущей книги
  • ❗ Процедура SendKeysCtrlV: перехват клавиш Ctrl+V для вставки неформатированного текста только для текущей книги
  • ⭐ Свойство Quit: прятать "Параметры вставки" только для текущей книги
  • ⭐ Процедура ErrCollection: сообщение об исключении в формуле проверки данных

🔥 Класс cExcelEvents.cls

  • 🔥 Процедура App_WorkbookBeforeClose: прятать "Параметры вставки" только для текущей книги
  • 🔥 Процедура App_WorkbookDeactivate: переменная CopyMode контролирует скопированный диапазон ячеек; восстановить "Параметры вставки"

🔥 Модуль AutoModuleRibbon.bas

  • 🔥 Процедура SetFilter: использовать активную ячейку вместо диапазона ячеек

r360

❗ В список "Тип организации" добавить позицию "Ведомство (без подп.)"

🌟 Перемесить колонку "Дата актуальности" <= перед "Категория цены"

🔥 Модуль Statistics.bas

  • ⭐ Процедура SpecificationSheets: переменной LastRow присвоить значение последней строки на листе; проверка дат на листах SF_ и SB_; небольшие изменения в форматировании ячеек
  • 🔥 Процедура RecordCells: изменения в массиве SuppDiff и параметрах процедуры SortSupplier из-за перестановки колонок
  • 🔥 Функция CheckSupplier: изменения в массиве SuppDiff из-за перестановки колонок
  • 🔥 Функция ChangedBeforeSave: изменения в массиве SuppDiff из-за перестановки колонок
  • 🔥 Процедура ListCost: небольшие изменения из-за перестановки колонок (аналогично процедура SuppNumRow)
  • 🔥 Функция GetCosts: небольшие изменения из-за перестановки колонок
  • 🌟 Процедура SendKeysCtrlV: проверка наличия неформатированного текста в буфере

⭐ Модуль Frame.bas

  • ⭐ Свойство Quit: отображать [Только для чтения] в заголовке
  • ⭐ Процедура ErrCollection: сообщение об исключении в формуле условного форматирования

🔥 Класс cExcelEvents.cls

  • 🔥 Процедура App_SheetBeforeRightClick: небольшие изменения из-за перестановки колонок (аналогично процедура App_SheetSelectionChange)
  • ⭐ Процедура App_SheetChange: удалить все символы, кроме натуральных чисел; автопростановка "не оплач." в колонке "Дата перечислений"

r350

🔥 Модуль Statistics.bas

  • ❔ Функция SetFormula: создать формулы в строке с поставщиком на листах SF_ и SB_
  • 🌟 Процедура SpecificationSheets: выполнить функцию ErrCollection в случае появления исключения; очистить границы ячеек; изменения в форматировании и группировки ячеек, переместить курсор на последнюю строку

⭐ Модуль Frame.bas

  • ⭐ Процедура ErrCollection: сообщение о невозможности создания условного форматирования

🔥 Класс cExcelEvents.cls

  • ❔ Процедура App_SheetChange: отдельно для каждого листа
  • 🌟 Процедура App_SheetSelectionChange: выполнить функцию SetFormula; добавить выпадающий список

r340

❗ Модуль Statistics.bas

  • ❗ Функция CostChanged: проверить изменения файла с ценами
  • ❗ Процедура CostUpdate: пересчитать формулы для поставщика
  • ⭐ Процедура Auto_Open: цены "Бухонлайн" объединить с ценами "Кодекс"; добавить свойство Quit
  • 🔥 Процедура SpecificationSheets: небольшие изменения в форматировании ячеек
  • 🌟 Процедура RecordCells: выполнить процедуру CostUpdate; добавить свойство Quit
  • ❔ Функция GetCosts: переменную OrgBody вынести из параметров функции в локальную
  • 🌟 Процедура GetSuppRow: удалить проверку с сообщением об исключении

❗ Модуль Frame.bas

  • ❗ Свойство Quit: изменить "Параметры вставки" для текущей книги
  • ⭐ Процедура ErrCollection: сообщение о изменении в файле с ценами; добавить свойство Quit
  • 🌟 Функция GetSheetList: добавить свойство Quit

⭐ Класс cExcelEvents.cls

  • ⭐ Процедура App_SheetActivate: на листах кроме SUPP_ и ARCH_ присвоить PartNumRow
  • ⭐ Процедура App_SheetSelectionChange: на листах SF_ и SB_ изменить условия выпадающих списков
  • ⭐ Процедура App_SheetSelectionChange: выполнить функцию CostChanged
  • 🌟 Процедура App_WorkbookActivate: добавить свойство Quit
  • 🌟 Процедура App_WorkbookBeforeClose: добавить свойство Quit
  • 🌟 Процедура App_WorkbookBeforeSave: добавить свойство Quit
  • 🌟 Процедура App_WorkbookDeactivate: добавить свойство Quit

r330

❗ Модуль Statistics.bas

  • ❗ Процедура SendKeysCtrlV: перехват клавиш Ctrl+V
  • 🔥 Процедура SpecificationSheets: небольшие изменения в форматировании ячеек
  • 🌟 Процедура Auto_Open: проверка существования пути файла с ценами

❗ Модуль Frame.bas

  • ❗ Процедура SettingsStatistics: сетевой путь в коллекцию с настройками
  • ⭐ Процедура ErrCollection: сообщение о необходимости выбрать поставщика

⭐ Класс cExcelEvents.cls

  • ⭐ Процедура Class_Initialize: задать горячие клавиши процедурой SendKeysCtrlV
  • 🌟 Процедура App_WorkbookDeactivate: копировать выделенный диапазон
  • ❔ Процедура App_SheetSelectionChange: на листах SF_ и SB_ изменить выпадающий список

❗ Модуль AutoModuleRibbon.bas

  • ❗ Процедура GetVisibleMenu: отображать рабочую вкладку меню только для текущей книги
  • ❗ Процедура SetFilter: управлять кнопками фильтров на вкладке меню; удалить процедуру AddFilter

r320

❗ Модуль управления меню AutoModuleRibbon.bas

❔ Файл ленточного меню customUI14.xml

⭐ Колонки "Дата материала", "Форма договора", "Кодекс" на листах SF_ и SB_

🌟 Переставить колонки "Дата акта" <=> "Номер акта", "Дата договора" <=> "Номер договора"

r310

⭐ Модуль Statistics.bas

  • ⭐ Функция CheckSupplier: обновить массив SuppDiff

⭐ Класс cExcelEvents.cls

  • ⭐ Процедура App_SheetActivate: обновить массив SuppDiff
  • ⭐ Процедура App_SheetSelectionChange: для листа SUPP_ создать массив SuppDiff

r300

❔ Шаблон книги blank r300.xlsx: тестирование производится на первых 5 листах

❗ Основной модуль Statistics.bas

  • ❗ Процедура Auto_Open (автозапуск): создать системную таблицу и загрузить файл с ценами через ADODB
  • ❔ Процедура SpecificationSheets: восстановить форматирование таблиц
  • ❗ Процедура RecordCells: записать на лист ARCH_ данные о поставщике из массива SuppDiff
  • ❗ Функция CheckSupplier: проверить изменения на листе SUPP_ в массиве SuppDiff
  • ❗ Функция ChangedBeforeSave: для класса cExcelEvents.cls
  • ❗ Процедура ListCost: создать список "Категория цен"
  • ❗ Функция GetCosts: вернуть цены на актуальную дату
  • ❗ Процедура GetSuppRow: поиск строки на листе ARCH_
  • ❔ Процедура SendKeyEnter: выполнить нажатие клавиши Enter

❗ Дополнительный модуль Frame.bas

  • ❗ Свойство GetUserName: читать имя активного пользователя
  • ❗ Процедура SettingsStatistics: создать коллекцию с настройками
  • ❗ Функция GetSheetList: обновить коллекцию с индексами листов и вернуть индекс листа по имени
  • ❗ Процедура ProtectSheet: защитить лист от изменений
  • ❗ Функция UnprotectSheet: снять защиту с листа и вернуть сам объект
  • ❗ Процедура SortSupplier: выполнить сортировку по возрастанию по номеру колонки
  • ❗ Процедура RemoveCollection: удалить все строки в коллекции
  • ❗ Функция MultidimArr: заполнить одномерный массив из двумерного
  • ❗ Процедура ErrCollection: добавить сообщения об исключении по номеру и маркеру

❗ Класс событий книги cExcelEvents.cls

  • ❗ Процедура Class_Initialize: объявить приложение App; задать горячие клавиши процедурой SendKeyEnter
  • ❗ Процедура App_WorkbookOpen: не используется
  • ❗ Процедура App_WorkbookActivate: направить перемещение курсора "вправо"
  • ❗ Процедура App_WorkbookBeforeClose: выполнить процедуру RecordCells
  • ❗ Процедура App_WorkbookBeforeSave: выполнить процедуры RecordCells и SpecificationSheets
  • ❗ Процедура App_WorkbookDeactivate: направить перемещение курсора "вниз" и выполнить процедуру RecordCells
  • ❗ Процедура App_SheetDeactivate: отдельно для каждого листа
  • ❗ Процедура App_SheetActivate: на лист ARCH_
  • ❔ Процедура App_SheetBeforeDoubleClick: переключить с листа SUPP_ на лист ARCH_
  • ❔ Процедура App_SheetBeforeRightClick: запретить удаление строк
  • ❗ Процедура App_SheetSelectionChange: отдельно для каждого листа

r200

❗ Модуль DBCreateMDWSystem.bas: создаёт системную таблицу System.mdw если не установлен Access

r100

❔ Разработана структура файла с ценами Cost.accdb