Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аналог периодического реквизита в Delphi


Dmitry_Chernov ©   (2006-10-10 11:54:00) 

Вопрост такой, как реализовать аналог периодического реквизита в Delphi "малой кровью"? Может у вас есть информация по данному вопросу?


ЮЮ   (2006-10-11 12:03:00) [1]


> на каждое поле нужно создавать отдельную таблицу

Можно и в одной, добавь поле
Attr в PerodicalAttrTable, униапльное для каждого атрибута и

TableWithPerodicalAttr t
LEFT PerodicalAttrTable a1 ON (a1.attr = 1) AND ...
LEFT PerodicalAttrTable a2 ON (a2.attr = 2) AND ...


Sergey13   (2006-10-11 11:39:00) [2]

> Нельзя ли дату актуальности хранить в том же поле что и само значение?

Это как?

С такими желаниями тебе наверное надо в объектные БД смотреть - может там это есть.


Dmitry_Chernov   (2006-10-11 11:31:00) [3]

Все это хорошо если одно два таких поле, а если их много... на каждое поле нужно создавать отдельную таблицу...

Нельзя ли дату актуальности хранить в том же поле что и само значение?


ЮЮ   (2006-10-11 06:31:00) [4]

Ну и в чем проблема?

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 04:08:00) [5]

эх... этот бы пользовательский интерфейс да в мою реализацию :)

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


ЮЮ   (2006-10-10 12:39:00) [6]

Это не "реализация", а пользовательский интерфейс.
Допустим, не имея доступа к таблице напрямую а через х/п с параметром DateTime имеешь то же самое.


Dmitry_Chernov   (2006-10-10 12:33:00) [7]

а просто. Там на выбраном поле ставиш галочку что это периодический реквизит. Потом при запросе этого поля указываешь дату на которую нужно запрашивать этот реквизит и вуаля... отдается значение актуальное на указаную дату.


ЮЮ   (2006-10-10 12:32:00) [8]

И как же это реализовано в 1С ?


Dmitry_Chernov   (2006-10-10 12:27:00) [9]


> З.Ы. Только при чем здесь Delphi

Это надо на дельфи реализовать....


> ItemValues  Id  Item  Value  DateFrom  DateTo

Примерно так я и думаю, но это не так удобно как реализовано в 1С.
Спрашиваю я потому, что наверняка кто-то реализовывал механизм похожий.


Stanislav   (2006-10-10 12:15:00) [10]

Dmitry_Chernov   (10.10.06 11:54)  
А что это?


ЮЮ   (2006-10-10 12:15:00) [11]

Items
 Id
 Name
 ,,,

ItemValues
 Id
 Item
 Value
 DateFrom
 DateTo - заполнял бы триггером, чтобы проще было находиить ту запись, что соответстует нужной дате

З.Ы. Только при чем здесь Delphi


Наверх

Титульная страница Поиск, карта сайта Написать письмо