Главная страница
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.041 c
15-1164737905
vain
2006-11-28 21:18
2006.12.17
Пожалуй, самая прикольная шутка.


2-1164830603
бегинка
2006-11-29 23:03
2006.12.17
делфи и флеш


5-1145023755
SMAC
2006-04-14 18:09
2006.12.17
Binary component


15-1164719102
Gero
2006-11-28 16:05
2006.12.17
У кого есть книга Ф. Юань — Программирование графики для Windows


8-1146241508
MetalFan
2006-04-28 20:25
2006.12.17
Воспроизвести видео из буфера