Форум: "Базы";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
ВнизАналог периодического реквизита в Delphi Найти похожие ветки
← →
Dmitry_Chernov (2006-10-10 11:54) [0]Вопрост такой, как реализовать аналог периодического реквизита в Delphi "малой кровью"? Может у вас есть информация по данному вопросу?
← →
Stanislav © (2006-10-10 12:15) [1]Dmitry_Chernov (10.10.06 11:54)
А что это?
← →
ЮЮ © (2006-10-10 12:15) [2]Items
Id
Name
,,,
ItemValues
Id
Item
Value
DateFrom
DateTo - заполнял бы триггером, чтобы проще было находиить ту запись, что соответстует нужной дате
З.Ы. Только при чем здесь Delphi
← →
Dmitry_Chernov (2006-10-10 12:27) [3]
> З.Ы. Только при чем здесь Delphi
Это надо на дельфи реализовать....
> ItemValues Id Item Value DateFrom DateTo
Примерно так я и думаю, но это не так удобно как реализовано в 1С.
Спрашиваю я потому, что наверняка кто-то реализовывал механизм похожий.
← →
ЮЮ © (2006-10-10 12:32) [4]И как же это реализовано в 1С ?
← →
Dmitry_Chernov (2006-10-10 12:33) [5]а просто. Там на выбраном поле ставиш галочку что это периодический реквизит. Потом при запросе этого поля указываешь дату на которую нужно запрашивать этот реквизит и вуаля... отдается значение актуальное на указаную дату.
← →
ЮЮ © (2006-10-10 12:39) [6]Это не "реализация", а пользовательский интерфейс.
Допустим, не имея доступа к таблице напрямую а через х/п с параметром DateTime имеешь то же самое.
← →
Dmitry_Chernov (2006-10-11 04:08) [7]эх... этот бы пользовательский интерфейс да в мою реализацию :)
Вообще как я себе это представляю. Лежит на форме датасет. Помимо обычных свойств этого датасета у него есть еще одно - дата актуальности. Присваиваем ей, например, текущую датувремя тогда все переодические поля возвращают значения актуальные на установленную дату. Вот что я подразумеваю под реализацией, т.е. удобство разработчику (мне) максимальное.
← →
ЮЮ © (2006-10-11 06:31) [8]Ну и в чем проблема?
Select t.*, a.Value
FROM
TableWithPerodicalAttr t
LEFT PerodicalAttrTable a ON t.DateAttr BETWEEN a.DateFrom AND a.DateTo
В данном случае актуальность определяется полем .DateAttr в таблице TableWithPerodicalAttr
Select t.*, a.Value
FROM
TableWithPerodicalAttr t
LEFT PerodicalAttrTable a ON :DateAttr BETWEEN a.DateFrom AND a.DateTo
В данном случае параметр :DateAttr задается пользователем перед открытием НД
← →
Dmitry_Chernov (2006-10-11 11:31) [9]Все это хорошо если одно два таких поле, а если их много... на каждое поле нужно создавать отдельную таблицу...
Нельзя ли дату актуальности хранить в том же поле что и само значение?
← →
Sergey13 © (2006-10-11 11:39) [10]> Нельзя ли дату актуальности хранить в том же поле что и само значение?
Это как?
С такими желаниями тебе наверное надо в объектные БД смотреть - может там это есть.
← →
ЮЮ © (2006-10-11 12:03) [11]
> на каждое поле нужно создавать отдельную таблицу
Можно и в одной, добавь поле
Attr в PerodicalAttrTable, униапльное для каждого атрибута и
TableWithPerodicalAttr t
LEFT PerodicalAttrTable a1 ON (a1.attr = 1) AND ...
LEFT PerodicalAttrTable a2 ON (a2.attr = 2) AND ...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c