lssexampl-03-ref
Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| lssexampl-03-ref [2024/01/04 12:51] – создано - внешнее изменение 127.0.0.1 | lssexampl-03-ref [2026/04/28 12:48] (текущий) – [Создание контроллеров источников данных] madmin | ||
|---|---|---|---|
| Строка 94: | Строка 94: | ||
| Контроллеры источников данных **DataSource** размещаются в папке **php/ | Контроллеры источников данных **DataSource** размещаются в папке **php/ | ||
| - | В корне папки **php/ | + | В корне папки **php/ |
| - | Реализуем в нем проверку на уникальность содержимого поля **name**. Эта проверка и так есть - за счет уникального индекса на сервере PostgreSQL, см файл **sql/ | + | |
| - | < | + | |
| - | alter table " | + | |
| - | </ | + | |
| - | Эта проверка на уникальность происходит при завершении транзакции, | + | |
| - | Добавим проверку на уникальность, | ||
| - | < | ||
| - | <?php | ||
| - | class DataSource_Repair_Ext extends DataSource_Repair { | ||
| - | /// переопределяем проверку после правки строки | ||
| - | protected function onRowValid(& | ||
| - | { // проверка значения поля name на уникальность - для более понятного пользователю сообщения об ошибке | ||
| - | $sql_name=$this-> | ||
| - | $sql_id=$this-> | ||
| - | $sql=<<< | ||
| - | select count(*) as n | ||
| - | from | ||
| - | " | ||
| - | where | ||
| - | " | ||
| - | " | ||
| - | SQL; | ||
| - | $rec=$this-> | ||
| - | if ($rec[' | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | return new DataSource_Repair_Ext(); | ||
| - | </ | ||
| - | Обратите внимание: | ||
| - | * класс унаследован от автоматически сформированного контроллера **DataSource_Repair** | ||
| - | * в конце программного кода создается и возвращается экземпляр описанного в файле контроллера **DataSource_Repair_Ext** | ||
| - | Сравните, | ||
| ==== Создание пунктов меню, для вызова экранных форм справочников ==== | ==== Создание пунктов меню, для вызова экранных форм справочников ==== | ||
| Главное меню проекта описывается в XML файле **php/ | Главное меню проекта описывается в XML файле **php/ | ||
| Строка 145: | Строка 112: | ||
| * описатели, | * описатели, | ||
| Работу главного меню системы обеспечивает источник данных **systreexmlmenu** расположенный в файле **php/ | Работу главного меню системы обеспечивает источник данных **systreexmlmenu** расположенный в файле **php/ | ||
| - | |||
| - | ===== Материалы для скачивания ===== | ||
| - | Для скачивания материалов необходимо наличие пароля ftp сервера ЦТИ. | ||
| - | * **адрес**: | ||
| - | * **login**: ftpuserlss | ||
| - | * **password**: | ||
| - | На ftp сервере размещены следующие файлы: | ||
| - | * **lssexample-003.zip** - этап 3 демонстрационного примера; | ||
| - | Можно скачать виртуальную машину с развернутым демонстрационным примером: | ||
| - | * [[lssexampl-virtualbox]] | ||
| ===== Демонстрационные примеры и ссылки ===== | ===== Демонстрационные примеры и ссылки ===== | ||
| Демонстрационные примеры доступны в режиме " | Демонстрационные примеры доступны в режиме " | ||
| - | < | + | |
| - | < | + | |
| - | < | + | |
| - | </ul> | + | |
| - | </html> | + | |
lssexampl-03-ref.1704361869.txt.gz · Последнее изменение: 2024/01/04 12:51 — 127.0.0.1
