Здравствуйте!
Помогите советом, пожалуйста.
Я добавила логирование для детали Файл в разделе Проекты.
В грид логирования Файлов попросили добавить одно из полей Проекта, стадию.
Я думаю, правильно это было бы сделать добавив новое поле в таблицу логирования и при добавлении файла писать туда текущее значение стадии.
Но т.к у датасет детали Файл - ds_FileInItem не срабатывают события на изменение и добавление, то сделать этого не могу.
можно как-нибудь реализовать этот функционал?
Просто добавить поле джоином не подходит, т.к при этом получается не историрование.
Создавала тему с похожим вопросом https://community.terrasoft.ua/forum/topic/7318,
но там решили проблему другим способом
Нравится
Светлана,
Мне кажется логически правильно добавить столбец "Стадия" в таблицу файлов, сделать ее вычисляемым полем (не уверен, если это можно сделать на уровне БД в Террасофт или придется делать ее заполнение на уровне приложения), ну и собственно все. В логах будут видны стадии проекта.
P.S.
Возможно изменять таблицу логов вручную как-то не совсем хорошо... возможно, при изменении основной таблицы (файлы) таблица логов будет перестроена автоматически.
Да, так можно было бы сделать, если бы это была обычная деталь. А у файлов в детали есть только таблица и инсерт.
А датасет используется общий для всех деталей файлов ds_FilesInItem.
Добавить столбец стадия можно в таблицу детали файлов, но вот писать туда не получается т.к на изменения датасет ds_FilesInItem не выходит по событиям...
Выходит только в самом ds_Files, но в файлах мне неоткуда взять Стадию. Т.к с разделом Проекты файлы не связаны. Связывается же только деталь.
"komgbu" написал:Светлана,
Мне кажется логически правильно добавить столбец "Стадия" в таблицу файлов, сделать ее вычисляемым полем (не уверен, если это можно сделать на уровне БД в Террасофт или придется делать ее заполнение на уровне приложения), ну и собственно все. В логах будут видны стадии проекта.
P.S.
Возможно изменять таблицу логов вручную как-то не совсем хорошо... возможно, при изменении основной таблицы (файлы) таблица логов будет перестроена автоматически.
Здравствуйте Светлана,
Я понимаю, что вы хотите добавить название стадии, если в проекте такой элемент есть. Для решения предлагаю вам создать триггер на таблицу легирования файлов, и на событие Insert, записывать Имя стадии в дополнительную колонку (т.е написать select Name from tbl_Project where EssenceType = 'Stage' and ProjectID = '...' ), после чего вынести ее в sq грида