Topic: Ведение истории
Здравствуйте.
Можно ли в этой замечательной программе организовать ведение истории изменений?
Например есть база блоков, хотелось бы вести историю перемещений, замен и проч.
My Visual Database → Russian → Ведение истории
Здравствуйте.
Можно ли в этой замечательной программе организовать ведение истории изменений?
Например есть база блоков, хотелось бы вести историю перемещений, замен и проч.
Приветствую,
можно с помощью скриптов, пожалуйста, скачайте этот проект в качестве примера
можно с помощью скриптов, пожалуйста, скачайте этот проект в качестве примера
Дмитрий! А если в моём проекте основных гридов три? Мне кажется, что журнал всё равно можно сделать один? Ведь значения пишуться в другую таблицу ( у Вас это logs), и в неё можно собрать все необходимые колонки из трёх гридов?
kunar80
К сожалению не вспомню сходу ваш проект )
но думаю в любом случае можно )
kunar80
К сожалению не вспомню сходу ваш проект )
но думаю в любом случае можно )
Проект я Вам сегодня уже отправил. Если не затруднит, посмотрите. Есть там непонятки не работающие. Скрипты не ругаются, но и не работают. Что касается этой темы, то делал я для одного грида, но он так и не заработал. После отладки первого хотел записать два другие, но, пожалуй, лучше всё же пробовать всё свести в один журнал.
А если в моём проекте основных гридов три? Мне кажется, что журнал всё равно можно сделать один? Ведь значения пишуться в другую таблицу ( у Вас это logs), и в неё можно собрать все необходимые колонки из трёх гридов?
Работает. Но проблема с ID. В logs записал id_doc. В скрипте: sDoc1ID, sDoc2ID и sDoc3ID. sDoc1ID работает правильно, а sDoc2ID и sDoc3ID пишут значение "-1" на любую операцию.
Впрочем, думаю, что мне от ID лучше вообще отказаться, так как у меня учитываются документы, каждый из которых имеет свой собственный номер. И проблема отпадёт сама собой.
Хочу прикрутить историю изменений к своему проекту. Надо чтобы отображалось старое значение и новое. Ну и соответственно кто внес. Подарите пример, пожалуйста.
Хочу прикрутить историю изменений к своему проекту. Надо чтобы отображалось старое значение и новое. Ну и соответственно кто внес. Подарите пример, пожалуйста.
У себя я сделал вход в программу по логину (у меня без пароля) на основе проекта из этой темы: http://myvisualdatabase.com/forum/viewtopic.php?id=649. В ней есть и мой проект.
Там имеется переменная sUser, в которую сохраняется логин вошедшего пользователя. Она объявлена в самом начале всего скрипта.
В начале скрипта я также объявил переменную sLastActionForm: string;, которая используется для определения действия (новая запись, показать запись); переменную sEditUserOld: string;, в которую записывается старое значение и переменную sEditUserNew: string;, куда записывается новое значение.
Для формы редактирования записи я добавил событие OnShow:
procedure Form6_OnShow (Sender: string; Action: string);
begin
sLastActionForm := Action;
end;
Для грида, из которого берутся записи для редактирования, я добавил событие OnCellClick:
procedure Form4_TableGrid1_OnCellClick (Sender: string; ACol, ARow: Integer);
var
sID: string;
begin
sID := IntToStr(Form4.TableGrid1.dbItemID); // по клику на записи получаем её идентификатор
sEditUserOld := SQLExecute ('SELECT name FROM user WHERE id = '+ sID); // используя полученный идентификатор, вытягиваем из базы нужное значение
end;
На форме редактирования записи для кнопки я созал событие OnAfterClick:
procedure Form6_btnSaveEditedUser_OnAfterClick (Sender: string);
var
sCurrentUser: string;
sCurrentDate: string;
sOperation: string;
begin
sCurrentUser := '"' + sUser + '"'; // записываем логин пользователя
sCurrentDate := '"' + FormatDateTime('yyyy-MM-DD hh:mm:ss.000', now) + '"'; // записываем текущую дату и время
sEditUserNew := Form6.Edit1.Text; // записываем старое значение
if sLastActionForm = 'ShowRecord' then sOperation := 'Змінено ім''я користувача з ' + sEditUserOld + ' на ' + sEditUserNew; // записываем результат операции
SQLExecute ('INSERT INTO actionlog (user, operation, date) VALUES ('+ sCurrentUser +',"'+ sOperation +'",'+ sCurrentDate +')'); // записываем всё в таблицу лога
end;
My Visual Database → Russian → Ведение истории
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi