Daulet
Дата: 21.12.2011 21:16:38
Поковырял форум, но подходящего ответа не нашел.
Суть такова.
Необходимо при редактировании записей справочника формировать отчет, в котором отражаются старые данные и только те поля, которые редактировались. Т.е. есть табличка клиентов, у которых ФИО, адрес, телефон. Например, поменялся телефон - выдается отчет в котором в верхней части указаны старые данные ФИО, адрес, телефон, в нижней части такой же список полей, но те поля, которые не изменились ФИО, адрес - значение Null, а в поле телефон - новый телефон.
Ума не приложу, как сделать. Сначала попытался сделать дублирование данных - запись дублируется, старой записи метку "старая", новой "актуальная". А каким запросом вытащить изменившиеся поля? Попытался продублировать третью запись - "изменившиеся данные", в которых все поля Null кроме тех, которые изменились - уперся в ту же проблему отловить поля которые поменялись. Запрос на обновление записи "актуальная" затрет нулевыми значениями неизменившиеся данные.
Читал про хранение реквизитов справочника в отдельной таблице - id клиента, id реквизита, значение. А как быть с полями разного формата? Ведь поле "значение" имеет только один формат (предположим текстовый), а у меня там и даты рождения, формат дата. Гонять все в текст? А кошернее вариант есть?
В общем голову сломал. Не подскажете кто как решал проблему?