Вопрос

Добавление поля в таблицу логирования

Здравствуйте!
Помогите советом, пожалуйста.

Я добавила логирование для детали Файл в разделе Проекты.
В грид логирования Файлов попросили добавить одно из полей Проекта, стадию.
Я думаю, правильно это было бы сделать добавив новое поле в таблицу логирования и при добавлении файла писать туда текущее значение стадии.
Но т.к у датасет детали Файл - ds_FileInItem не срабатывают события на изменение и добавление, то сделать этого не могу.

можно как-нибудь реализовать этот функционал?

Просто добавить поле джоином не подходит, т.к при этом получается не историрование.

Создавала тему с похожим вопросом http://www.community.terrasoft.ua/forum/topic/7318,
но там решили проблему другим способом

У меня такой же вопрос

3 комментария

Светлана,

Мне кажется логически правильно добавить столбец "Стадия" в таблицу файлов, сделать ее вычисляемым полем (не уверен, если это можно сделать на уровне БД в Террасофт или придется делать ее заполнение на уровне приложения), ну и собственно все. В логах будут видны стадии проекта.

P.S.
Возможно изменять таблицу логов вручную как-то не совсем хорошо... возможно, при изменении основной таблицы (файлы) таблица логов будет перестроена автоматически.

Да, так можно было бы сделать, если бы это была обычная деталь. А у файлов в детали есть только таблица и инсерт.
А датасет используется общий для всех деталей файлов ds_FilesInItem.
Добавить столбец стадия можно в таблицу детали файлов, но вот писать туда не получается т.к на изменения датасет ds_FilesInItem не выходит по событиям...
Выходит только в самом ds_Files, но в файлах мне неоткуда взять Стадию. Т.к с разделом Проекты файлы не связаны. Связывается же только деталь.

"komgbu" написал:

Светлана,

Мне кажется логически правильно добавить столбец "Стадия" в таблицу файлов, сделать ее вычисляемым полем (не уверен, если это можно сделать на уровне БД в Террасофт или придется делать ее заполнение на уровне приложения), ну и собственно все. В логах будут видны стадии проекта.

P.S.
Возможно изменять таблицу логов вручную как-то не совсем хорошо... возможно, при изменении основной таблицы (файлы) таблица логов будет перестроена автоматически.

Здравствуйте Светлана,
Я понимаю, что вы хотите добавить название стадии, если в проекте такой элемент есть. Для решения предлагаю вам создать триггер на таблицу легирования файлов, и на событие Insert, записывать Имя стадии в дополнительную колонку (т.е написать select Name from tbl_Project where EssenceType = 'Stage' and ProjectID = '...' ), после чего вынести ее в sq грида

Войдите или зарегистрируйтесь, чтобы комментировать