![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать вх. номер? [D6, Paradox]
Viktor1 © (2002-04-07 00:28:00)Делаю программу регистрации входящих писем, нужно чтобы программа каждому письму присваивала уникальный вх.номер. Так вот к чему этот номер привязать, чтобы по окончанию года вх.номер начинался бы сначала. Может кто видел такой пример, подскажите где. База Paradox, BDE.Спасибо всем.
dnk (2002-04-07 15:30:00) [1]Можно таким нехитрым запросом его посчтитать ->
select Max(Nomer)+1 from jurnal.db
where Year = :PY
PY = параметр текущий год
Viktor1 (2002-04-07 12:26:00) [2]Спасибо, всё понял. Shaman огромное спасибо за пример. Главное принцип остальное дело техники!!!
Shaman (2002-04-07 10:01:00) [3]Не используй автоинкрементное поле, а расчитывай номер письма сам. Например
function NewLetterNum(NewDate: TDateTime): Lontint;
var
d, m, y1, y2: Word;
PrevDate: TDateTime;
PrevNum: LongInt;
begin
// Определяем год из даты нового письма
DecodeDate(NewDate, d, m, y1);
// Таблица должна быть отсортирована по дате + номер письма
Table1.IndexFieldNames := "LDate;LNum";
// Определяем номер и дату последнего письма и выделяем из нее год
Table1.Last;
PrevDate := Table1.FieldByName("LDate").AsDateTime;
PrevNum := Table1.FieldByName("LNum").AsInteger;
DecodeDate(PrevDate, d, m, y2);
if y2 < y1 then Result := 1 else Result := PrevNum + 1;
end;
Anatoly Podgoretsky (2002-04-07 09:04:00) [4]Привяжи к году, год+nr