View + категории по неделям

  • Автор темы KIL
  • Дата начала
K

KIL

Гость
#1
Подскажите как во вьюшке категоризированть документы по неделям создания, т.е. 02.01.08 - первая неделя в году, 10.01.08 - вторая и тд.
 
S

Sandr

Гость
#2
Ну.. фукции, возвращающей номер недели вроде как нет в лотусе... Но наверняка кто-нить писал, а если не писал, что написато не долго...
 

valmont

Well-Known Member
27.12.2004
64
0
#4
d:= @Date(@Today);
startWeekDay := 2;
checkWeekDay := 5;
d0 := @Date (@Year (D) + 1; 1; 1) : @Date (@Year (D); 1; 1) : @Date (@Year (D) - 1; 1; 1);
wd := @Modulo (@Weekday (d) - startWeekDay + 7; 7);
w0 := @Modulo (checkWeekDay - startWeekDay + 7; 7);
wn := @Integer (((d - d0) / 24 / 60 / 60 + w0 - wd) / 7 + 1);
k := @Member ("1"; @Text (@Sign (wn)));
weekNumber := @Subset (@Subset (@Text (wn); k); -1);
weekNumber

где в weekNumber - номер недели.
 
K

Kron

Гость
#7
Хорошо а как быть если номер неделеим нужно видеть в каждом месяце в январе 1-6 недели, а в февоале соответственно тоже будут 1-5 недели?
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#8
m:=@Month(@Date(rgCardDate));
d:=@Day(@Date(rgCardDate));
NumFD := @Weekday(@Date(@Year(rgCardDate); 1; 1));
NumFirstDayOfYear := @If(NumFD=2;1;NumFD=3;2;NumFD=4;3;NumFD=5;4;NumFD=6;5;NumFD=7;6;7);
NumDC := @Weekday(@Date(rgCardDate));
NumDayCurrent := @If(NumDC=2;1;NumDC=3;2;NumDC=4;3;NumDC=5;4;NumDC=6;5;NumDC=7;6;7);
x:=@If(@Integer(NumFirstDayOfYear) > @Integer(NumDayCurrent); 1; 0);
y:=@If(@Year(@Date(rgCardDate))/4=@Integer(@Year(@Date(rgCardDate))/4 & m>2);1;0);a:=@Integer((d+y+@If(m=2;31;m=3;59;m=4;90;m=5;120;m=6;151;m=7;181;m=8
;212;m=9;243;m=10;273;m=11;304;m=12;334;0))/7+1) + @Integer(x);
q:=@If(a=53;52;a);
@If(@Integer(NumDayCurrent)=3;@Integer(q)-1;q)

то что тебе надо
 
K

Kron

Гость
#9
не возвращает неделю в месяце, возвращает номер недели в году, rgCardDate подменил на свое поле
 

DNT

Постоялец форума
Lotus team
12.10.2005
590
7
#10
придется по себя код переписать. если не ошибаюсь достаточно поменять первый день в году - на первй день в тек. месяце. Переменная NumFirstDayOfYear.

вопщем, дерзай
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#11
Так?
Код:
date := @Today;
wd := @Weekday(@Date(@Year(date); @Month(date); 1));
wd := @If(wd = 1; 7; wd - 1);
@Integer((@Day(date) + wd - 2) / 7) + 1;