Календарное Представление Повторение Задачи В Нем

Тема в разделе "Lotus - Программирование", создана пользователем azzza, 6 сен 2012.

Статус темы:
Закрыта.
  1. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Добрый день !

    Прошу помочь в вопросе отображения в календарном представлении повторений задачи.
    Попробовал создавать по аналогии с календарем но не получается, массив дат не срабатывает, если его указывать первой колонке представления :(

    представляю выдержку из кода (создание самой задачи) , специально создавал все значимые поля по аналогии с календарным событием, но для вьюхи главными являются первые два столбца (дата и продолжительность).

    Дату беру из CalendarDateTime продолжительность 0

    Если создавать отдельные копии события в разных датах (док на дату 1 дак на дату 2 и т.д.), да они появляются, но почему-то неотображается последняя во вью :(

    Прошу помощи ...

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">"Часть кода"</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
        resp.form="Appointment"
    Call resp.replaceItemValue("AppointmentType", "2")
    Call resp.replaceItemValue("$AlarmDisabled", "1")
    Call resp.replaceItemValue("$AlarmOffset", "-1440")
    Call resp.replaceItemValue("$AlarmUnit", "D")
    Call resp.replaceItemValue("$AltPrincipal", s.userName)
    Call resp.replaceItemValue("$BorderColor","7F96A3")
    Call resp.replaceItemValue("$BusyName", s.userName)
    Call resp.replaceItemValue("$BusyPriority", "2")
    Call resp.ReplaceItemValue("$ExpandGroups", "3")
    Call resp.ReplaceItemValue("$FromPreferredLanguage","ru")
    Call resp.ReplaceItemValue("$HFFlags", "1")
    Call resp.ReplaceItemValue("$IconSwitcher", "AllDayEvent")
    Call resp.ReplaceItemValue("$LangChair", "en")
    Call resp.ReplaceItemValue("$LangPrincipal", "en")
    Call resp.ReplaceItemValue("$NoPurge", rtend)
    Call resp.ReplaceItemValue("$PublicAccess", "1")
    Call resp.ReplaceItemValue("$REF",doc.universalID)
    Call resp.ReplaceItemValue("$RefOptions", "1")
    Call resp.ReplaceItemValue("$Revisions", rtstart)
    Call resp.ReplaceItemValue("$SMTPKeepNotesItems", "1")
    Call resp.ReplaceItemValue("$TableSwitcher","Description")
    Call resp.ReplaceItemValue("Alarms", "0")
    Call resp.replaceItemValue("AltChair", s.userName)
    Call resp.replaceItemValue("AppendEndTime",rtend)
    Call resp.replaceItemValue("AppendStartTime", rtstart)
    Call resp.replaceItemValue("ApptUNID", doc.universalID)
    Call resp.replaceItemValue("BookFreeTime", "1")
    Dim tmp As New NotesDateTime(rtstart.Dateonly+" 00:00:00")
    Dim etmp As New NotesDateTime(rtend.Dateonly+" 23:59:59")
    ReDim varCDT(0) As NotesDateTime
    Set varCDT(0)=New NotesDateTime(tmp.Dateonly)'.zonetime)
    Dim strCDT As String
    Call etmp.adjustday(-1)
    count=1
    Dim rtmp As New NotesDateTime("Now")
    Do Until tmp.timedifferencedouble(etmp)>0
    ReDim Preserve varCDT(count)
    Set rtmp = New NotesDateTime(tmp.Dateonly)
    Set varcdt(count)=New NotesDateTime(tmp.Dateonly)'.zonetime)
    strCDT=strCDT+";"+CStr(rtmp.Dateonly)
    Call tmp.adjustday(1)
    count=count+1
    Loop
    strCDT=Mid(strCDT,2)
    Call resp.ReplaceItemValue("CalendarDateTime",varcdt)
    Call resp.replaceItemValue("Chair", s.userName)
    Call resp.ReplaceItemValue("dspNum", CStr(count+1))

    Call resp.ReplaceItemValue("EndDate",etmp)
    Call resp.ReplaceItemValue("EndDateTime",etmp)
    Call resp.ReplaceItemValue("EndTime",etmp)
    Set item = resp.replaceItemValue("From", s.userName)
    item.isAuthors = True
    Call resp.replaceItemValue("IsBroadcast","0")
    Call resp.ReplaceItemValue("OrgRepeat", "1")
    Call resp.ReplaceItemValue("ORGTABLE","P0")
    Call resp.replaceItemValue("Principal", s.userName)
    Call resp.ReplaceItemValue("Repeats", "1")
    Call resp.ReplaceItemValue("SaveOptions","")
    Call resp.ReplaceItemValue("SchedulerSwitcher", "1")
    Call resp.ReplaceItemValue("SEQUENCENUM",1)
    Call resp.ReplaceItemValue("StartDate",tmp)
    Call resp.ReplaceItemValue("StartDateTime",mp)
    Call resp.ReplaceItemValue("StartTime",tmp)
    Call resp.ReplaceItemValue("txtNum", CStr(count+1))
    Call resp.ReplaceItemValue("UPDATESEQ",1)
    Call resp.ReplaceItemValue("WebDateTimeInit", "1")
    Call resp.ReplaceItemValue("xMtg", "это собрание")
    Call resp.ReplaceItemValue("xToDo", "эта задача")
    '----------------------------------------------------------------------
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    я чего-то не понял - цикл для чего?
     
  3. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    массивчик заполнить аля

    01.04.2012
    02.04.2012
    03.04.2012
    04.04.2012
    05.04.2012

    для дат

    и потом в календаре Lotus клиента, если так заполнен то задача отображается в каждом из дней как задача на день, что мне и требуется, но с календарной вью это не проходит :(

    если делать по второму пути и самому пихать создание задачи в цикл , а этот заменить на просто дату, то да формируются отдельные задачи в календарной вью (на 01.04.2012 своя и висит в шапке вью, на 02.04.2012 своя и тоже висит в шапке вью и т.д. )
    , но (глюк) начинается если в 06.042012 добавить Appointment (задачку не на день а по времени) - задача которая висела 05.04.2012 исчезает и перестает показываться :(
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Я как-то делал аналогично с почтовым шаблоном - все получалось. И набор там строился формулой прямо в представлении.
    Посмотри внимательней почтовый шаблон =)
     
  5. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    А как получалось ? делали задачку на каждый день и в "своем" календарном представлении (не в пользовательском календаре)
    , либо делали задачку с зависимыми ?

    Делаю На скрипте, можно поподробнее... (У мну тоже типа получилось (я генерю события на весь день в каждой дате и они отображаются , кроме последнего - глюк) но вот глюк вышеописанный мешает - пропажа последней задачки , если после нее ставим задачку по времени :( ).

    Опишу поподробнее , в СВОЕМ календарном представлении (не пользователя ! - не клиентский календарь пользователя !) отображаю доки Appointment, есть аналогичная формочка в ней допустим одно поле примечание, которая создана под эти доки
    Таким образом делаю так:
    1. создаю Appointment типа 2 в дате 01.09.2012 - событие на целый день
    2. создаю Appointment типа 2 в дате 02.09.2012 - событие на целый день
    3. создаю Appointment типа 2 в дате 03.09.2012 - событие на целый день
    4. создаю Appointment типа 2 в дате 04.09.2012 - событие на целый день
    5. создаю Appointment типа 1 в дате 05.09.2012 с 06:00:00 до 12:00:00 -временной,
    так вот Appointment типа 2 в дате 04.09.2012 пропадает из представления, пока не сделал п.5 вижу все доки пп 1-4 нормально - вот проблема. так получается что док п.5 скрывает док п.4

    Вот типа создается и работает -но глюк ;)
    У себя на клиенте попробовал (календарь пользователя клиентский) сделал такое же событие на день и событие в конце - все норм
    в чем проблема то :( , там же видел что можно делать зависимые события , вот и пытался засунуть по аналогии в перую колонку массив с датами , дабы породить зависимые доки - их отображение, но то же не вышло.

    Может частичка Вашего кода мне поможет :(
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Да нету уже давно никакого кода...
    Может в этой статье найдешь для себя ответ http://www.ibm.com/developerworks/lotus/li..._Calendar_view/

    Самый интересный раздел, я думаю:

    Обрати внимание на то как получают массив времени для отображения в календаре
    Код (Text):
    DateList := @Explode(@TextToTime(@Text(CalendarDateTime) + "-" + @Text(EndDateTime)));
     
  7. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Спасибо, я нашел именно эту статью и определился с глюками и формированием зависимых задачек, проблемка была в том что кроме первой колонки, надо было и вторую делать мульти, хз почему так, но у мну перестал пропадать последний док, если после него еще что-то создаешь. Массив Вы описали на формулах, а я в скрипте его собираю и все получилось достаточно не плохо. Теперь только с подменой при открытии Appointment-а на основной док допилить хех :p

    Огромное спасибо !

    Жаль токо один плюйс могу добавить :huh: , а так бы наспамил - за статейку, похоже только в ней и есть более менее инфа по делу :huh:
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    А мне то за что? Я статью не писал =)
     
  9. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Млиннн рано обрадовался глюк опять проявлется :)

    создаю документы

    1 - Основной Appointment 2 - начало многодневного события, пример располагается в календаре с 21:00 - до упора
    2-4 Производные от основного - задача на целый день
    5 - Appointment 1 - кончик многодневного события, пример располагается в календаре с 00:00 до 13:00

    раньше при наличии 5 пропадал 4, потом вроде все стало нормально, но до того момента пока рядом с 5 не появился другой документ, при этом 4 исчезло из представления, хотя док есть и ни куда не делся %( , в представлении события на весь день ставил БЕЗ времени, в противном случае не попадает над представлением.
    В почтовом шаблоне смотрел - там время ставят 04:00:00 интервал дня с 07:00 -21:00 и шкалу делают делением 1 час,
    мне нужно шкалу по 15 мин и интервал я делаю с 00:00 - 23:00.

    Ну почему же вдруг пропадает последняя задача на весь день, может с занятостью что крутить нужно :(
     
  10. azzza

    azzza Well-Known Member

    Регистрация:
    26 апр 2011
    Сообщения:
    54
    Симпатии:
    0
    Разобрался, особливо нужно уделить внимание периоду представления с 7-19 и паре тройке настроек. Поправил код и вроде все ок.

    Всем Спасибо.
     
Загрузка...
Статус темы:
Закрыта.

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