Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Аналог периодического реквизита в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.055 c
2-1164702335
Joq
2006-11-28 11:25
2006.12.17
Написание службы


2-1164716979
daser
2006-11-28 15:29
2006.12.17
Есть MDI-приложение. Как показать дочернюю форму,...


15-1164687154
DelphiN!
2006-11-28 07:12
2006.12.17
Отключить использование Proxy сервера в компоненте TWebBrowser


2-1165056870
Kotik
2006-12-02 13:54
2006.12.17
Работа с текстом


15-1164777571
sapsi
2006-11-29 08:19
2006.12.17
Работа в Яндекс