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

Тема в разделе "Lotus - Программирование", создана пользователем KIL, 8 фев 2008.

  1. KIL

    KIL Гость

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

    Sandr Гость

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

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Для: KIL
    Думаю, плясать нужно от функции @Weekday
     
  4. valmont

    valmont Well-Known Member

    Регистрация:
    27 дек 2004
    Сообщения:
    63
    Симпатии:
    0
    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 - номер недели.
     
  5. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    @Integer(((@Created - @Date(@Year(@Created); 1; 1)) / 604800)) + 1
     
  6. KIL

    KIL Гость

    Спасибо большое.
     
  7. Kron

    Kron Гость

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

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    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)

    то что тебе надо
     
  9. Kron

    Kron Гость

    не возвращает неделю в месяце, возвращает номер недели в году, rgCardDate подменил на свое поле
     
  10. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    придется по себя код переписать. если не ошибаюсь достаточно поменять первый день в году - на первй день в тек. месяце. Переменная NumFirstDayOfYear.

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Так?
    Код (Text):
    date := @Today;
    wd := @Weekday(@Date(@Year(date); @Month(date); 1));
    wd := @If(wd = 1; 7; wd - 1);
    @Integer((@Day(date) + wd - 2) / 7) + 1;
     
  12. Kron

    Kron Гость

    :huh: :huh: :)
     
Загрузка...

Поделиться этой страницей