• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

Статус
Закрыто для дальнейших ответов.

azzza

Green Team
26.04.2011
68
3
BIT
4
Добрый день !

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

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

Дату беру из 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">
Код:
	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", "эта задача")
'----------------------------------------------------------------------
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
178
я чего-то не понял - цикл для чего?
 

azzza

Green Team
26.04.2011
68
3
BIT
4
я чего-то не понял - цикл для чего?

массивчик заполнить аля

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 исчезает и перестает показываться :(
 
A

Akupaka

Я как-то делал аналогично с почтовым шаблоном - все получалось. И набор там строился формулой прямо в представлении.
Посмотри внимательней почтовый шаблон =)
 

azzza

Green Team
26.04.2011
68
3
BIT
4
Я как-то делал аналогично с почтовым шаблоном - все получалось. И набор там строился формулой прямо в представлении.
Посмотри внимательней почтовый шаблон =)

А как получалось ? делали задачку на каждый день и в "своем" календарном представлении (не в пользовательском календаре)
, либо делали задачку с зависимыми ?

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

Опишу поподробнее , в СВОЕМ календарном представлении (не пользователя ! - не клиентский календарь пользователя !) отображаю доки 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

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

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

Akupaka

Да нету уже давно никакого кода...
Может в этой статье найдешь для себя ответ

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

Designing the columns

Designing the first two columns is the most important aspect of a Calendar view's design. These columns must be designed as follows in order for the calendar to function properly. (Notes 4.5 won't let you save the view without these two columns.)

Column 1: Make it hidden and sorted and include a Time/Date value, or list of Time/Date values. The time portion is required because it is used for indexing. If you are using a list of Time/Date values, be sure that "Show multiple values as separate entries" is turned on in the properties for Column 1. This will allow the document to appear on more than one day in the calendar. For correct usage of Time/Date fields and values in Calendar Views, see Ryan Jansen's recipe for "Using Time/Date values in LotusScript."

Figure 5. The properties for Column 1
The properties for Column 1

It is also a good idea to have your Calendar view's selection formula refer to the date/time field used in Column 1. For example, the formula for this column might be as follows. (AppointmentType "2" is an event that might span multiple days, so the column value is a list.)

StartTime := @Time(CalendarDateTime);
DateList := @Explode(@TextToTime(@Text(CalendarDateTime) +
"-" + @Text(EndDateTime)));
@If(AppointmentType = "2"; @TextToTime(@Text(DateList) +
" " + @Text(StartTime)); CalendarDateTime)


In this case the selection formula is @IsAvailable(CalendarDateTime), because the CalendarDateTime field is required to calculate Column 1.

Column 2: This should also be hidden and must be a duration in minutes (for example, (EndDateTime-StartDateTime)/60). If duration is not relevant, this column should be 0 (zero).

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

azzza

Green Team
26.04.2011
68
3
BIT
4
Да нету уже давно никакого кода...
Может в этой статье найдешь для себя ответ

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



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

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

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

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

Akupaka

А мне то за что? Я статью не писал =)
 

azzza

Green Team
26.04.2011
68
3
BIT
4
А мне то за что? Я статью не писал =)

Млиннн рано обрадовался глюк опять проявлется :)

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

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.

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

azzza

Green Team
26.04.2011
68
3
BIT
4
Разобрался, особливо нужно уделить внимание периоду представления с 7-19 и паре тройке настроек. Поправил код и вроде все ок.

Всем Спасибо.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!