BEGIN
/* HistoryData - ostatní */
SValue = '';
mExist = 0;
for
SELECT B.StringFieldValue FROM HistoryData B
WHERE B.ID=:AID AND B.CLSID=:ACLSID
AND B.FieldCode=:AFieldCode AND B.ValidFrom$DATE = (
SELECT MAX(C.ValidFrom$DATE) FROM HistoryData C
WHERE C.ID=:AID AND C.CLSID = :ACLSID
AND C.FieldCode=:AFieldCode AND C.ValidFrom$DATE <= :ADate)
INTO SValue
do begin
mExist = 1;
end
/* Pokud se nenašel záznam k danému datu, tak se vezme hodnota ze záznamu s nejmenším datem. */
if (mExist = 0) then begin
mExist = 0;
for
SELECT B.StringFieldValue FROM HistoryData B
WHERE B.ID=:AID AND B.CLSID=:ACLSID
AND B.FieldCode=:AFieldCode AND B.ValidFrom$DATE = (
SELECT MIN(C.ValidFrom$DATE) FROM HistoryData C
WHERE C.ID=:AID AND C.CLSID = :ACLSID
AND C.FieldCode=:AFieldCode)
INTO SValue
do begin
mExist = 1;
end
/* Pokud se nenajde žádná hodnota v historii, tak se vrátí defaultní hodnota*/
if (mExist = 0) then begin
SValue = ADefault;
end
end
Suspend;
END;