мета-данные страницы
page | desc |
---|---|
Virtual Treeview | Virtual Treeview
Компонент отображения деревьев и списков: Virtual Treeview.
Приёмы использования в проектах.
|
Речевая аналитика | Речевая аналитика
Получение возможных оплат для химчистки
Тип запроса: PUT | Адрес: |
Принципы работы с шрифтами в VCL | Принципы работы с шрифтами в VCL Для стандартизации размеров и названий шрифтов внес ряд изменений в базовые классы. Основной шрифт приложения теперь задается в ImgDM.pas (модуль выбран из-за того, что он использует Forms и создается раньше всех): |
Перевод в delphi | Перевод в delphi С текущего момента эталонным языком в программе является Английский. По этому все, что будет отображено клиенту должно быть на английском (текст на формах, сообщения, |
Команды монитора цеха | Команды монитора цеха ---------- Авторизация Команда: Login Общая команда авторизации. Используются данные (логин/пароль) пользователя Агбис.Химчистка |
Рекомендательная система | Рекомендательная система ---------- О методах рекомендаций На данный момент рекомендательная система способна формировать и выдавать рекомендации по 3 наиболее популярным методам: |
Билд "сабов" Агента | Билд "сабов" Агента Связанные с Агентом дополнительные приложения AgbisAgentCheckFreeze, AgbisAgentTasks, AgbisAgentAsterisk находятся в проекте: E:\_Projects\Agbis.dxe\Tasks\AgbisAgentSub.dproj |
Кодировки и наборы символов | Кодировки и наборы символов Начать думаю стоит с того времени когда компьютеризация еще не была так сильно развита и только набирала обороты. Собственно тогда то и возникла потребность в кодировке текста. В каком то же виде нужно было хранить буквы, а компьютер только единицы и нули понимает. Так была разработана одно-байтовая кодировка… |
Установка Delphi и компонентов для десктопных решений | Установка Delphi и компонентов для десктопных решений Установка Delphi , настройка компонентов и тюнинг, устранение зависимостей компонентов при установке, раньше были сродни искусству. Иногда это походило на какое-то шаманство и не хватало только танцев с бубнами, чтобы это все заработало.… |
Ссылка на заказ клиента | Ссылка на заказ клиента У апи используется единая точка входа. Все команды работают через одну функцию с разными параметрами В связи с моральным устареванием старой ссылки на заказ, было принято решение обновить и изменить концептуально. |
Команда SaveFullOrder | Команда SaveFullOrder Команда SaveFullOrder позволяет создать новый заказ... ---------- Формат запроса: SaveFullOrder={"dor_id":"0","price_id":"6","sclad_id":"3","sclad_to":"3","is_not_confirmed":"1","waiting_confirm":"0","status_deliver":"0","kredit":"18824","comments":[{"description":"55"}],"servs":[{"dos_id":"1","parent_id":"0","tovar_id":"1556","count":"2","wardrobe_id":"0","kfx":"1","action_him_id":"0"}],"plans":[{"type":"1","address":"Улица пушкина 1 1","dttm":"18.01.2023 03:00:00",… |
Сборка проекта на iOS со встроенным Extension | Сборка проекта на iOS со встроенным Extension Основной сценарий 1) На рабочем столе MacOS создается папка с названием проекта (например, BrendAPP) 2) Запускаем xCode и создаем новый проект |
Получение параметров Тинькофф. GetTinkoffQR | Получение параметров Тинькофф. GetTinkoffQR Получения признака и параметров, что Тинькофф QR активирован. Для чистомата Тип запроса: GET Формат запроса: |
Основные термины | Основные термины Константы - данные, значения которых не изменяются в программе. Переменные - данные, могущие изменяться при выполнении программы. |
Обслуживание и сбор статистики базы данных | Обслуживание и сбор статистики базы данных Основные моменты, которые будут освещены в этой статье, это: * Database Monitoring; * Backup/Restore; * Database validation; |
Модуль TmpQuery | Модуль TmpQuery В TmpQuery.pas прописаны ф-ии для доступа к БД и работы с ней. CreateTempQuery Ф-ия создает TagbDataset с указанным SQL запросом и заполненными параметрами, если они есть и |
Компоненты agbRadioButton's | Компоненты agbRadioButton's Компоненты используются используемые как правило в группе взаимосвязанных индикаторов, из которых обычно может быть выбран только один. Они используются для выбора одной из нескольких взаимоисключающих альтернатив. |
Компоненты agbCheckBox's | Компоненты agbCheckBox's Компоненты используются для обозначения включения или отключения какой либо опции. Действие одного флажка, на форме, происходит независимо от других флажков, но при необходимости можно запрограммировать такие действия. |
Компоненты agbButton's | Компоненты agbButton's Компоненты представляющие собой стандартную кнопку, инициирующее какое-то действие. agbButton В отличии от базового TsButton из пакета AlphaControl, имеется возможности: |
Транзакции | Транзакции Что такое транзакции? Транзакция — это группа последовательных операций с базой данных, которая представляет собой логическую единицу работы с данными. Транзакция может быть выполнена либо целиком и успешно, соблюдая целостность данных и независимо от параллельно идущих других транзакций, либо не выполнена вообще, и тогда она не должна произвести никакого эффекта. Транзакции обрабатываются транзакционными системами, в процессе работы которых создаётся история транзакций.… |
Строковые типы в Delphi. | Строковые типы в Delphi. Строка представляет собой последовательность символов. Delphi поддерживает следующие предопределенные типы строк: |
Документирование API | Документирование API Введение Любые команды API должны быть задокументированы. Основные документы: * API Личного кабинета - Команды API, которые используются для Личного кабинета, предоставляя информацию по сессии авторизованного клиента. |
Статистика исключений, беспощадная ты су... или особенности программистской охоты на ошибки | Статистика исключений, беспощадная ты су... или особенности программистской охоты на ошибки Всё нижеописанное актуально на момент написания статьи, т.к. аффтар не теряет надежды, что в дальнейшем это всё будет поудобнее и более организованно. |
Используемые нами контролы и подходы | Используемые нами контролы и подходы В качестве основных контролов мы используем набор AlphaControls - Сайт с компонентами. В дизайн-тайме они располагаются на вкладках AlphaStandard, AlphaAdditional, AlphaDBControls и AlphaTools, и их классы начинаются с префикса Ts |
Оплаты ПСБ | Оплаты ПСБ ---------- Описание команд Получение ссылки на оплаты (Для личного кабинета, МП лк) Тип запроса: POST Адрес: https://himinfo.ru/him_general_php/api/payment_systems/Psb/PsbPay.php |
Общее описание оплат | Общее описание оплат ---------- Список систем оплат В команды оплат обязательно передается payment_system_id - ID платежной системы. Принимает значения: |
Оплаты Тинькофф/Тинькофф QR | Оплаты Тинькофф/Тинькофф QR Описание протокола api тинькоффа Описание ошибок api тинькоффа ---------- Содержание ---------- Описание команд |
Команды онлайн оплаты | Команды онлайн оплаты Данные оплаты поддерживают, платежную веб страницу, оплату QR кодом через систему быстрых платежей. Работа с оплатами реализована через общие скрипты разделенные по типу оплаты, и при работе на прямую со криптами конкретной платежной системы. |
Clumsy - программа для эмуляции "плохой" сети | Clumsy - программа для эмуляции "плохой" сети Симуляция сетевых сбоев для распределенных систем является одним из необходимых видов тестирования ПО. Не всегда есть возможность использовать аппартные решения, поэтому на помощь приходят программы - эмуляторы. Для Linux и Unix систем давно существует несколько таких программ. Для Windows есть программа… |
Безопасность Api | Безопасность Api
Можно ознакомиться со статьей на Хабре |
AgentNG автоматическое тестирование | AgentNG автоматическое тестирование Запуск и просмотр результатов автоматического тестирования Для запуска автоматического тестирование AgentNG ему необходимо послать команду: |
Тестирование отчета в разных условиях | Тестирование отчета в разных условиях Для того чтобы проверить отчёт нужно провести следующие проверки * Успешность построения * Правильность построения данных |
Компоненты с выпадающими списками | Компоненты с выпадающими списками Компоненты предназначенные для выбора значения из подготовленного списка. agbKeyEdit [&400] Однострочное текстовое поле, служащее для ввода данных пользователем. |
Справочник конфликтных клиентов | Справочник конфликтных клиентов Для информирования химчисток разработан общий справочник номеров телефонов конфликтных клиентов. Справочник содержит номер телефона и комментарии к данному телефону. |
Создание заказа через АГБИС ПМП | Создание заказа через АГБИС ПМП В мобильных приложениях, основанных на базе АГБИС ПМП есть один способ именно СОЗДАНИЯ заказа. Для оформления нового заказа в мобильном приложении нужно перейти в прайс-лист, добавить услуги в корзину, далее настроить выезд курьера и после нажатия на кнопку… |
Команды для ПМП и ПСК | Команды для ПМП и ПСК * ПМП. Создание заказа. * ПМП. Создание заказа. V2 |
Шаблоны проектирования php(Статья в разработке) | Шаблоны проектирования php(Статья в разработке) Шаблоны проектирования позволяют улучшить читаемость кода и стандартизировать подходы к разработке. Статья будет разделена на 2 главы: |
Потоки, анонимные потоки, OmniThreadLibrary | Потоки, анонимные потоки, OmniThreadLibrary Потоки. Процесс — это исполнение программы. Операционная система использует процессы для разделения исполняемых приложений. |
Работа с базой данных в PHP | Работа с базой данных в PHP Неотъемленной частью разработки на пхп является работа с базой данных. Есть разные подходы в зависимости от проекта. |
PhpStorm | PhpStorm PhpStorm — коммерческая кросс-платформенная интегрированная среда разработки, разрабатывается компанией JetBrains на основе платформы IntelliJ IDEA. PhpStorm представляет собой интеллектуальный редактор для PHP, |
Дашборды | Дашборды
В будущем здесь будет нормальная документация
URL: |
Создание/Изменения таблиц, репликационная структура | Создание/Изменения таблиц, репликационная структура Создание новых таблиц Для создания новых таблиц обычно используем IBE. Можно написать скрипт создания самому, можно воспользоваться возможностями интерфейса (ПКМ на строке Tables, и затем New Table, или комбинация клавиш ctrl+N): |
Компоненты agbEdit's | Компоненты agbEdit's Компоненты предназначенные для ввода данных на форме. agbEdit [&400] Однострочное текстовое поле, служащее для ввода данных пользователем. |
Создание меню | Создание меню В этой статье разберём то как создаются разделы меню в модуле Агбис Химчистка. Общие правила * Необходимо правильно выбрать место для добавление нового раздела меню, по планируемому наполнению. |
Чистоматы. Инструкция по сборке и установке ПО. | Чистоматы. Инструкция по сборке и установке ПО. Система сборки deb пакетов развернута на TestStand (192.168.92.3). Скрипты сборки и распространения находятся в ~/PROD/BuildStation/. Все действия выполняются на TestStand. |
Интерфейсы. | Интерфейсы. Введение. Не смотря на то, что понятие интерфейса обычно не рассматривается в основных концепциях ООП, «интерфейс» является важной программной/синтаксической структурой и наряду с абстракцией служит для упрощения проектирования, написания, сопровождения информационных систем.… |
Трехзвенная архитектура приложений. | Трехзвенная архитектура приложений. Трехзвенная (трехуровневая) архитектура приложений - это модульная клиент-серверная архитектура, которая состоит из |
Компоненты agbLabel's | Компоненты agbLabel's Компоненты предназначен для отображения, как правило статического текста, то есть надписей форме, которые используются как метки для пользователя во времени работы. |
Особенности работы смс-рассылки | Особенности работы смс-рассылки Здесь будут описаны некоторые особенности работы Выборка клиентов при sendAllMsg Выборка клиентов основана на таблице _users_new_msg. В зависимости от выбранного канала, необходимо учитывать разные поля. Для sms это date_added_sms и date_send_sms. |
Стандартизация логов | Стандартизация логов Уровни логирования * DEBUG — запись масштабных переходов состояний, например, обращение к базе данных, старт/пауза сервиса, успешная обработка записи, текст SQL запроса и пр. (расширенный лог). |
Отправка сообщений | Для понимания последовательности действий при отправке и получении сообщений используется алгоритм. У каждого провайдера есть свои особенности, но приблизительный алгоритм одинаковый. |
Использование API команд | Использование API команд ---------- Введение Команды выполняются в зависимости от поддерживаемого методом командой GET или POST. Ответ на запрос приходит в |
Кратко о б24 | * * * * * * * * ---------- Кратко о б24 Окно условно можно разделить на три области: * Список ссылок на разные информационные блоки * |
Agb controls | Agb controls * Label - Компоненты предназначен для отображения, как правило статического текста, то есть надписей форме, которые используются как метки для пользователя во времени работы. |
Создание procedures, triggers, views в Firebird | Создание procedures, triggers, views в Firebird Далее для простоты повествования: * Procedures - процедуры * Triggers - триггеры * Views - представления В этой документации рассмотрим как создавать процедуры, триггеры и представления в Firebird. Начнём с общей информации. |
Uni_Form | Uni_Form Наш основной класс, который мы используем в качестве шаблона для различных карточек и документов 1 Создание формы Чтобы создать новый модуль на базе TUniForm, необходимо в Delphi выбрать пункт меню File / New / Other, в окне найти Inheritable Items и выбрать UniForm. |
Принципы работы с базой данных | Принципы работы с базой данных В данной статье будут разобраны модули Init, DM и TmpQuery, с точки зрения работы с базой данных. Выбор базы данных |
Firebird | Firebird Приложения АГБИС для своей работы используют базы данных под упралением Firebird. Для подключения к базе данных используются сервер Firebird и клиент Firebird. |
Обновление программ | Обновление программ При выходе новой версии запускается процесс обновления программных модулей на серверах и приемных пунктах. Обновление выполняется в три этапа: |
Идемпотентность API | Идемпотентность API
Интересная статья c примером от Яндекс |
Создание классов | Создание классов Класс - логическая абстракция, которая описывает некоторый объект. Объект физически занимает место в ОП и производит действия над своими данными (полями), используя собственные методы - процедуры и функции. |
UniLines | UniLines TUniLinesFrame (размещён в модуле UniLines.pas, далее будем называть его просто UniLines) - пожалуй, можно считать основным фреймом в нашей программе. |
Дизайн справочников и документов | Дизайн справочников и документов Дизайн очень важный критерий для программы, чем он понятней, удобней и лаконичней, тем пользователям будет удобней пользоваться продуктом. В этой статье представлены критерии, примеры и советы по дизайну справочников и документов. |
Юниты для работы с кассовым оборудованием | Юниты для работы с кассовым оборудованием Все юниты по работе с кассовым оборудованием (фискальными регистраторами - далее ФР, POS-терминалами) находится в папке |
Юниты по работе с оборудованием | Юниты по работе с оборудованием Кассовое оборудование |
Описание работы с Яндекс Доставка | Описание работы с Яндекс Доставка Модуль BusinessYandexDelivery.pas предназначен для автоматического создания заявок в Яндекс Доставке. Для работы в нем необходимо получить и настроить |
Описание работы с Яндекс Геокодер | Описание работы с Яндекс Геокодер Вариант 1 В общем модуле BusinessYandexDelivery.pas есть публичная функция GeoPosYandex. function GeoPosYandex(adr: string; const GeoApiKey: string): TStringList; |
Структура скриптов | Структура скриптов Отправка сообщений клиенту разделена на два этапа: * Непосредственная передача данных агрегатору - SendAllMsg.php * Запрос статусов отправленных сообщений - |
Структура базы данных sms_workflow | Структура базы данных sms_workflow * * * * * * * * * ---------- База данных создана в MySQL. Для работы сервиса создано две БД, одна для хранения основных данных |
sms_workflow | SmsWorkflow - это сервис по отправке сообщений. Сервис находится на нашем удаленном сервере. * Структура БД * Структура скриптов * Интеграции с новыми агрегаторами * Примерный алгоритм работы скриптов * Особенности работы проекта |
Общая информация | Общая информация
Агбис.Агент умеет выполнять 3 вида скриптов, мы их называем Random, DifOrder и SMS.
Скрипт должен представлять собой файл вида |
Тестирование документов и справочников | Тестирование документов и справочников 1. Общее тестирование Здесь мы рассмотрим общие вещи основного функционала, необходимого для корректной работы. |
FSAdmin | FSAdmin В качестве фреймворка использовался Laravel. Фронт был реализован на blade шаблонах. Логика работы разделена на 3 условных блока «AdminAgbis», |
Мастер-классы по Delphi | Мастер-классы по Delphi Здесь публикуем видео с разборов как правильно использовать те или иные механизмы в Delphi касательно наших подходов. |
TNamedListJson | TNamedListJson TNamedListJson - предназначен для хранения списка «ключ-значение». В роли значения может выступать переменная типа variant или объект TNamedListJson |
Классы и функции по категориям | Классы и функции по категориям Работа с БД Работа файлами Работа с датой/временем Работа JSON * TNamedListJson - unit AgbJson (..\ForAll\AgbJson.pas) Класс для хранения многомерной структуры данных |
Использование DDDebug | Использование DDDebug ---------- Описание DDDebug - это набор инструментов отладки, который содержит несколько модулей: * профилировщик памяти; |
Использование FastMM5 | Использование FastMM5 FastMM5 используется для новой версии Delphi (с поддержкой FMX). Если требуется осуществить поиск утечек памяти для старой версии Delphi XE нужно использовать |
Использование FastMM4 | Использование FastMM4 FastMM4 используется для старой версии Delphi XE. Если требуется осуществить поиск утечек памяти для новой версии Delphi (с поддержкой FMX) нужно использовать |
Поиск и устранение утечек памяти в Delphi | Поиск и устранение утечек памяти в Delphi
* Использование FastMM4
* Использование FastMM5
* Использование DDDebug
Мастеркласс по поиску утечек памяти с помощью FastMM и DDDebug:
|
Оформление проекта PHP | Оформление проекта PHP Зачем статья? Для стандартизации оформления проектов и для облегчения порога вхождения для новых сотрудников. Статья будет постепенно пополняться свежей информацией |
Лайфхаки в АП используемые для отладки | Лайфхаки в АП используемые для отладки * CTRL+V - эмуляция ввода штрихкода, посылает событие штрихкода * CTRL+W - WHAT? где мы? отображает в заголовке, текущий таск и активный фрейм, упрощает поиск формочек |
Вспомогательные команды для AgentNG | Вспомогательные команды для AgentNG * DebugLog?enable=1 - статус и включение/выключение отладочных логов, * AutoUpdate - запуск автообновления * BugReport - показ списка файлов багрепортов за 4 дня, ?all=1 все имеющиеся файлы, и их скачивание, требует авторизации agbis временным ключем |
Файлы проектов | Файлы проектов Проекты Delphi состоят из множества файлов разных типов, основные: pas - исходный код Pascal dfm - файл с описанием формы dcu - откомпилированный модуль |
Модуль для обновлений UpdateMe | Модуль для обновлений UpdateMe Путь до последней версии модуля тут. Данный модуль подписан нашим сертификатом Agbis что бы на него не ругалась Windows |
Многопоточность | Многопоточность Современные программы не могут работать в одном потоке. Один поток в случае с Delphi – это главный поток программы, который обрабатывает все взаимодействие с пользователем, отрисовку |
Коды ответов агента | Коды ответов агента Формат кодов ответов Агента. где error - состояние обработки запроса агентом. Принимает значения: * 0 - Успешный ответ; |
Правильные коммиты во все ветки разработки в Мету. | Правильные коммиты во все ветки разработки в Мету. Настройка подключений В первую очередь нужно настроить мету. Для этого нужно правильно указать пути к базовым базам всех веток. |
Зачем параметрам нужен const | Зачем параметрам нужен const отсутствие const приводит к * Увеличению генерируемого ASM кода: скрыто генерируется защитный блок try finally. На небольших процедурах количество паразитного кода может легко превзойти количество полезного. |
JSONHelpers.pas или "Разделка JSON, без брызг и боли..." | JSONHelpers.pas или "Разделка JSON, без брызг и боли..." Как пилит JSON мальчик (реальный пример!) procedure THimstat.DoAddScriptsForRepl(json: string; out Str: String); var nSessionID: string; json_o: TJSONObject; json_SessionIDP: TJSONPair; begin try json_o := TJSONObject.ParseJSONValue(json) as TJSONObject; if not Assigned(json_o) then begin Str := 'Не Json строка!'; Exit; end; json_SessionIDP := json_o.Get('SessionID'); if json_SessionIDP = n… |
Страничка в разработке | Страничка в разработке Но это не точно... JSONHelpers.pas или "Разделка JSON, без брызг и боли..." Зачем параметрам нужен const? |
Вычитка кода (Code Review) - как сделать | Вычитка кода (Code Review) - как сделать 1. Оформление кода * Отступы * Пробелы * Читабельность * Понятное название ф-ий и переменных 2. Странности в коде |
Работа с командами для АМО | Работа с командами для АМО ---------- Оглавление ---------- Авторизация. Login Команда: …/api/?Login Общая команда авторизации пользователем Агбис химчистки (в программе Агбис химчистка, меню «Справочники»-«Пользователи»). |
Все виды настроек | Все виды настроек Глобальные настройки Глобальные настройки собираются автоматически в реальном времени. Для того чтобы добавить глобальную настройку |
Работа в канбане и Б24 | Работа в канбане и Б24 Канбан - это инструмент для организации работы, распределения и контроля выполнения задач в рамках команды. Просмотреть все доступные канбаны можно по ссылке |
Создание справочников | Создание справочников Создание Мета объекта В Мете выбираем нужный нам раздел, например Химчистка > Справочники. В нём создаём метаобъект, задаём ему название. Далее в запросе данных этого метаобъекта вписываем необходимый нам запрос, который должен ссылаться на уже созданную или на предварительно созданную таблицу в базе.… |
Настройка рабочего места | Настройка рабочего места В этом разделе будут описаны моменты, связанные с настройкой рабочего места программиста - какие программы нужны, как их настроить, какие нюансы и т.д. |
Билд Агента | Билд Агента Отклонение от данной инструкции повлечет замечание от руководителя! Билды агента разрешено делать только Андрею (если билд делается после рабочего времени Новокузнецка) и Анатолию (если билд агента делается в рабочее время Новокузнецка) |
Конфигурирование линий с включенным параметром exctention-in-contract | Конфигурирование линий с включенным параметром exctention-in-contract Разобран пример конфигурирования линии, соответствующий форме: Конфигурация FreeSWITCH находится в файле: /usr/local/freeswitch/conf/freeswitch.xml |
Установка CEF4 | Установка CEF4 * Скачать архив \<\\WebDAV\Share55\Develop\cef4>.rar * Разархивировать его в папку E:\_ComponentsXE * В Tools-Options-Library добавить путь E:\_ComponentsXE\CEF4\source * Установить пакет из E:\_ComponentsXE\CEF4\packages\CEF4Delphi.dproj |
Выключение Delphi доступа в интернет | Выключение Delphi доступа в интернет Delphi нет нет, но лезет в интернет за разным, передает сведения о нас. Очень не хочется, чтобы это происходило. Поэтому выключаем доступ для Delphi всех версий в интернет. |
BuildStation | BuildStation Для создания билдов используется отдельная виртуальная машина. Билды создаются с помощью задач xStarter, веб интерфейс доступен по адресу: |
Реализация запуска клиентов | Реализация запуска клиентов Доработка списка клиентов в РС для отдела запуска 1 Добавлено на форме «Менеджер проектов» TMainForm 1.1. Добавлена вкладка «Клиенты» \ «Запуск клиентов» 1.2. При переключении на вкладку «Запуск клиентов» выполняется загрузка данных для этой вкладки (actDeployClientsLoad)… |
Тест команд AgbisAgent | Тест команд AgbisAgent Проект E:\_Projects\AgbisTest\AT_AgentCmd\AT_AgentCmd.dpr Программа предназначена для автоматического тестирования выпускаемых версий AgbisAgent. |
Реализация подключения БДП к ЦБД Реализация подключения к центральной базе данных | Реализация подключения БДП к ЦБД Реализация подключения к центральной базе данных Реализация подключения приемного пункта к центральной базе данных через агент. |
Updater Агбис.Обновление Реализация | Updater Агбис.Обновление Реализация Проект Updater Агбис.Обновление E:\_Projects\Agbis.dxe\Updater\Updater.dpr * TFIBSQLExecuter Исполнение SQL * TFIBSQLExecuter Игнорирование ошибок исполнения SQL Параметры командной строки * AliasDB – алиас БД из agbis.xml (если есть, то должен быть |
FIBSQLExecuter Игнорирование ошибок исполнения SQL | FIBSQLExecuter Игнорирование ошибок исполнения SQL Подсистема TFIBSQLExecuter Исполнение SQL При обновлении скриптами изменяется структура базы: добавляются или удаляются поля таблиц, меняются процедуры, триггеры и другие элементы. Часто изменения вносятся вручную, например, добавляется новое поле, тогда в обновлении скриптом это поле будет добавляться повторно и вызовет ошибку. Такие ошибки не должны останавливать процесс обновления. Для этого сделана функция TFIBSQLExecuter.IgnoreError, к… |
Ветвление в Mercurial | Ветвление в Mercurial
Навеяно статьей:
|
Расчет "Задолженность общая" | Расчет "Задолженность общая" Проект "AnaliticDB" Расчет данных выполняется в процедуре TMain.CalcData TMain.CalcData * Определяется период расчета: (rcParam.DateCalcBegin, rcParam.DateCalcEnd) |
Загрузка таблицы A_ORDERS | Загрузка таблицы A_ORDERS Проект "AnaliticDB" Импорт данных выполняется в процедуре TMain.LoadData TMain.LoadData * Определяется период загрузки: с даты следующего дня после последней загрузки (rcParam.DateLoadLast) по текущую дату. Если это первая загрузка, то добавляется период для импорта до даты первой загрузки (rcParam.DateCalcFirst).… |
Загрузка таблицы A_SALES | Загрузка таблицы A_SALES Проект "AnaliticDB" Импорт данных выполняется в процедуре TMain.LoadData TMain.LoadData * Определяется период загрузки: с даты следующего дня после последней загрузки (rcParam.DateLoadLast) по текущую дату. Если это первая загрузка, то добавляется период для импорта до даты первой загрузки (rcParam.DateCalcFirst).… |
Загрузка таблицы A_PAYMENTS | Загрузка таблицы A_PAYMENTS Проект "AnaliticDB" Импорт данных выполняется в процедуре TMain.LoadData TMain.LoadData * Определяется период загрузки: с даты следующего дня после последней загрузки (rcParam.DateLoadLast) по текущую дату. Если это первая загрузка, то добавляется период для импорта до даты первой загрузки (rcParam.DateCalcFirst).… |
AllCP’sByPeriod Реализация | AllCP’sByPeriod Реализация Проект «AnaliticDB» |
Мониторинг предупреждений Delphi | Мониторинг предупреждений Delphi E:\_Projects\AgbisTest\AT_DelphiWarnings\AT_DelphiWarnings.dpr Предназначен для мониторинга предупреждений компилятора Delphi и распределению работ среди программистов. |
Команды API трехзвенки Агента | Команды API трехзвенки Агента Команды предназначены для операций с базой данных, через промежуточное звено. Трехзвенка в нашем случае: клиентское приложение |
API-функция GetReplPrms | API-функция GetReplPrms Используется в программе ReplIn, для получения параметров, которые используются при настройке репликации. Команда GetReplPrms выполняет те же задачи, что и команда GetReplParams. |
API-функция GetReplParams | API-функция GetReplParams Используется в программе ReplIn, для получения параметров, которые используются при настройке репликации. Команда GetReplParams выполняет теже задачи, что и команда GetReplParams. |
API-функция IsDbActive | API-функция IsDbActive Проверяет в базе данных данных PC статус учетной записи базы данных подразделения. Возвращает * код ошибки равный нулю и REP_ID в случае упешной идентификации. |
TFIBSQLExecuter Исполнение SQL | TFIBSQLExecuter Исполнение SQL TFIBSQLExecuter предназначен для исполнение SQL-скриптов. В процессе исполнения анализируется статус выполнения запроса: |
Реализация создания нового подразделения | Реализация создания нового подразделения Объект TCopyDep из unit rCopyDep служит для создания и настройки новой базы данных подразделения. Параметры TCopyDep |
Тестирование репликационных параметров БД | Тестирование репликационных параметров БД Скрипты для проверки значений параметров Проверка таблицы DEPS deps Глобальные настройки Для просмотра |
Проверка скрипта | Проверка скрипта Проект Менеджер проектов После сохранения скрипта на форма «Скрипт» в «Менеджере проектов» запускается проверка скрипта. «» Последовательность операций после нажатия кнопки |
Реализация импорта исключений | Реализация импорта исключений Блок Мониторинг исключений. Агент «Менеджера проектов» загружает данные в БД «AgbisLog.fdb» * Для импорта исключений в настройках |
Реализация отправки исключений | Реализация отправки исключений * Исключения записываются в «Локальный журнал исключений» mst_exceptions. * Объем информации определяется настройками EurekaLog (В Delphi Project \ EurekaLog options |
Реализация добавления обязательных полей для агента | Реализация добавления обязательных полей для агента Сейчас проверка наличия полей разбросана по исполняемым модулям. * TTasksMainForm.CheckDBData - проверяет и автоматически добавляет поля в базу данных, однако пополнение списка выполняется программно, и, следовательно, требует обновления агента.… |
Запуск команд в Агенте | Запуск команд в Агенте Процессы Агента запускаются в модуле GeneralDM. В модуле GeneralDM Декларирование функции обработки Декларирование функции обработки ключа WEB-сервером |
Идентификация базы данных | Идентификация базы данных В случае работы основной базы данных и ее копии возникаю проблемы с потерей данных. В связи с дублированием ключей в таблицах данных при репликации записи с копии перетирают данные с основной базы. |
Запуск процессов в Агенте | Запуск процессов в Агенте Процессы Агента запускаются в модуле TasksMain. Для интегрирования нового процесса в список запускаемых требуется |
Типовые задачи | Типовые задачи Запуск процессов в Агенте Запуск команд в Агенте TFIBSQLExecuter Исполнение SQL Билд Агента Билд "сабов" Агента Назад |
Настройка Delphi | Настройка Delphi * Установка AgbisControls Установка AgbisControls * Удаляем из Delphi старый AgbisControls и AlphaSkins * Удаляем папку e:\_ComponentsXE\AlphaSkins * Распаковываем архив из \ |
Реализация мониторинга сертификатов | Реализация мониторинга сертификатов Таблицы данных certif users Операции * Контроль срока действия сертификатов * Рассылка уведомлений о просроченных сертификатах |
Создание базы данных для нового подразделения через DBMeta | Создание базы данных для нового подразделения через DBMeta В DBMeta на форме Создание нового подразделения (TCopyDepForm) и объекта TCopyDep выполняются следующие операции: |
Настройка подключения БДП к ЦБД | Настройка подключения БДП к ЦБД Для корректной настройки копии базы данных и настройки репликации требуется доступ к центральной базе данных. |
Создание репликационной структуры для всей базы через DBMeta | Создание репликационной структуры для всей базы через DBMeta Внимание! Если вам нужно добавить репликацию только для одной таблицы (не для всей базы), |
Реализация репликации | Реализация репликации Руководство разработчика 1. Если запись исправлена на центральной базе данных, то она рассылается на все приемные пункты 2. Если запись исправлена на приемном пункте А, то |
Автодокументирование программ | Автодокументирование программ Задача Создание описания модулей на основе элементов текста модулей программных модулей с помощью pasdoc.exe. |
Комбинации клавиш в Delphi | Комбинации клавиш в Delphi Клавиши редактора в Delphi Ctrl + J Выбор code-template. Вставка шаблона кода. Можно вставлять типовые шаблоны, а можно написать свои собственные. При нажатии Ctrl + J, будет показан список шаблонов. Либо можно набрать несколько букв из имени шаблона, чтобы ограничить выбор, либо полное имя шаблона и нажать комбинацию - шаблон сразу вставится.… |
GUI Приёмки | GUI Приёмки Многозадачность Различные сценарии работы выполняются в отдельных задачах (Task). Задачи между собой никак не взаимодействуют, не получают уведомлений о завершении. Между задачами можно переключаться через меню задач. Работа с задачами реализована в модуле MultiTaskInterface.pas, в объекте TaskManager.… |
Сетевой протокол Приёмки | Сетевой протокол Приёмки
JSON-RPC
Для сетевого взаимодействия Приемки и Агента был выбран протокол JSON-RPC
|
URL | URL URL, которые используются в программном коде: Агент для менеджера проектов - синонимы http://offrepl.agbis.co - Updater https://cl.agb.is - AgbisAgent 192.168.192.55:84 - ProjectsControl3 Список обращений https://www.agbis.ru/support/ - Him Сайт с обновлениями ПО https://www.agbis.ru/Download/Updates/ - Him Номер последней доступной версии https://www.agbis.ru/Download/Updates/UpdatePack_vers.txt - Him Информация о клиенте (проверка лицензии клиента) https://cl.agb.is/cl… |
Технологии | Технологии Мобильные приложения GUI Приёмки Сетевой протокол Приёмки GUI Mobile GUI наследование Mobile GUI вычисления |
Компоненты Delphi (VCL) | Компоненты Delphi (VCL)
VirtualTree
Одни из самых классных контролов для построения деревьев и списков. Статья по использованию на русском:
Документация Virtual Tree
|
Оформление кода Pascal | Оформление кода Pascal Был соблазн написать именно про оформление кода Delphi, но мы изредка пишем в том числе и на Lazarus, поэтому речь именно про Pascal. |
Краткая памятка о том, как проектировать формы в программах Agbis | Краткая памятка о том, как проектировать формы в программах Agbis Каждая новая форма может быть или наследницей от TUniForm или не быть наследницей. В первом случае на новую форму автоматически добавляется панель нижнего края с кнопками ОК, Отмена и т.д. Наследуются также методы из базового класса TUniForm.… |
Реализация системы репликации | Реализация системы репликации Ключи У всех систем репликации есть некоторый базис, который позволяет отличить записи одних подразделений от записей других подразделений. Нельзя допускать такого, чтобы могли создаваться записи с одинаковыми первичными ключами в разных подразделениях одновременно.… |
Закрытые команды API | Закрытые команды API !!!Закрытые команды API. Запрещается передавать клиентам или кому либо, кроме работников Компании АГБИС. Квитанция мешка. ReceiptOnlineBag |
Регламент создания/изменения API функций | Регламент создания/изменения API функций ---------- Общий регламент Мы распространяем наш API для все большего и большего количества клиентов. |
Mercurial | Mercurial Из WikiPedia Mercurial : Mercurial (с англ. — «ртутный, подвижный»), он же Hg (от обозначения химического элемента ртути) — кроссплатформенная распределённая система управления версиями, разработанная для эффективной работы с очень большими репозиториями кода. В первую очередь она является… |