• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Мелкие Вопросы Rtfm

  • Автор темы serko
  • Дата начала
S

serko

Проблема такая.. Пользователь вводит дату в формате день.месяц.год часы:минуты:секунды (10.10.2010. 10:10:10)
Надо получить эту строку и прибавить 5 дней. Если взять текущую дату и прибавить сразу (Date + 5), то все пучком, а вот что делать, если смешанный тип... Там проверки возникают на количество дней в месяце, високосный или невисокосный год и прочая мутень...
[DOUBLEPOST=1424796853,1424796741][/DOUBLEPOST]Беспокоит еще другое. Пользователь вводит вручную, с клавиатуры. Хотелось бы, чтобы при нажатии на поле с датой всплывало окно типа "календарь", где можно выбрать дату и время
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
38
1 Не надо получать строку и прибавлять. Надо использовать "правильную" функцию adjust есть и собаки, есть и LS
2 Свойства поля\Type = Date\Time; Style = Calendar\Time Control\\вторая вкладка -> нужный формат.
====================
P.S.
Если нужен ввод ТОЛЬКО через DatePicker - тоже можно. Но тут на пальцах не объяснить - надо рисовать пример.
 
Последнее редактирование модератором:
  • Нравится
Реакции: serko
S

serko

1 Не надо получать строку и прибавлять. Надо использовать "правильную" функцию adjust есть и собаки, есть и LS
2 Свойства поля\Type = Date\Time; Style = Calendar\Time Control\\вторая вкладка -> нужный формат.
====================
P.S.
Если нужен ввод ТОЛЬКО через DatePicker - тоже можно. Но тут на пальцах не объяснить - надо рисовать пример.
формат во 2 вкладке подходит, но я не понимаю для чего это делать. Поле стало некрасивым и я не знаю как вытащить календарь :(
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
38
serko
Ну вот, дизайн DateField
Вверху, как обычно - юзер вводит дату в поле ручками и через DatePicker
Внизу нестандарт - ТОЛЬКО через DatePicker
 

Вложения

  • DateFields.zip
    24,9 КБ · Просмотры: 124
  • Нравится
Реакции: serko
S

serko

serko
Ну вот, дизайн DateField
Вверху, как обычно - юзер вводит дату в поле ручками и через DatePicker
Внизу нестандарт - ТОЛЬКО через DatePicker
Спасибо. Дошло, почему не было кнопки календаря. Во 2 вкладке у меня шло Date и Time вместе, а надо только Date. Можно ли для Time сделать отдельное поле с вываливающимся окошком, как у календаря в Date?
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
38
Спасибо. Дошло, почему не было кнопки календаря. Во 2 вкладке у меня шло Date и Time вместе, а надо только Date. Можно ли для Time сделать отдельное поле с вываливающимся окошком, как у календаря в Date?
И для time можно. Завтра с утра. Ок?
 
  • Нравится
Реакции: serko

alexas1

Green Team
10.04.2014
1 202
225
BIT
38
Если для поля, во второй вкладке, включить ТОЛЬКО DisplayTime, то будет слайдер для выбора времени. Если поле сделать multivalue, то слайдер позволит выбирать 2 значения сразу - типа TimeStart\TimeEnd.
 
  • Нравится
Реакции: serko
S

serko

С @-формулами вообще не выходит ничего :arghh:
Логика следующая(может толк будет от этого):

Если (статус документа != Черновик) тогда
---результат = спрашиваем(ты уверен? Док придется заново согласовывать!)
---Если (результат = Да) тогда
------Поле статус документа = Черновик
------Редактируем
---КонецЕсли
иначе
---редактируем
конецЕсли

Код:
@If(DocStatus != "Черновик";
	@Do(
		result:=@Prompt([YesNo]; "Документ придется заново согласовывать. Вы уверены?" );
		@If(result = 1;
			@Do(
				FIELD DocStatus := "Черновик";
				@Command([EditDocument]);
			);
		);
	);
@Command([EditDocument]);
);
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
38
Да, в собачках легко запутаться :)
Вот так можно:
Код:
@If(Status = "temp"; @Command([EditDocument];"1");
@Prompt([YesNo];"Вопрос";"Правда штоль?");
@Do(@Command([EditDocument];"1");@SetField("Status";"temp"));
"");
ТакЪ победимЪ!
ЗЫ
Status, это имя поля со статусом.
Код в кнопе. Открыли док\пытаемся редактировать = result
 
Последнее редактирование модератором:
  • Нравится
Реакции: serko
S

serko

Есть 15 документов, внутри которых есть поле с датой. Надо пробежаться по всем документам, собрать поля с датой и выбрать из всех дат самую позднюю.
Я почти все сделал, осталось сделать сортировку методом пузырька, только...
Даты я храню в массиве(это очень важно). Тип я установил NotesDateTime, только вот сравнивать даты лотус не хочет, ругается. Тип String ставить неправильно, вот и парюсь... Какой же тип для даты ставить, чтобы можно было сравнить?
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
38
Есть 15 документов, внутри которых есть поле с датой. Надо пробежаться по всем документам, собрать поля с датой и выбрать из всех дат самую позднюю.
Я почти все сделал, осталось сделать сортировку методом пузырька, только...
Даты я храню в массиве(это очень важно). Тип я установил NotesDateTime, только вот сравнивать даты лотус не хочет, ругается. Тип String ставить неправильно, вот и парюсь... Какой же тип для даты ставить, чтобы можно было сравнить?
Ну правильно ругается. Сделай variant и не парься. Сравниш, как обычно - числами. А пузырёк зачем?
 
  • Нравится
Реакции: serko

erdi

Green Team
20.08.2008
264
17
BIT
0
CDbl(DateTime) - вернет тебе дату в числовом варианте
например CDbl(04.03.2015 8:17:24)=42067,3454166667, где до запятой дата, после запятой время
в таком формате прекрасно сравнивается
+ есть обратное преобразование cdat(CDbl(04.03.2015 8:17:24)+2)=06.03.2015 8:17:24
 
  • Нравится
Реакции: serko

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 949
609
BIT
259
А пузырёк зачем?
а это можно прочитать про link removed ;)
можно еще навелосипедить академический алгоритм в кот. рандомно перемешиваются элементы до получения нужной сортировки :)
 
  • Нравится
Реакции: Мыш
S

serko

Как в LS получить дочерние документы в иерархической вьюхе, не придумывая свои "велосипеды"? Родительский я всегда брал через notesdocument.parentdocumentUNID, но можно ли как-то получить дочерний аналогичным способом? ( Lotus Notes/Domino 8.5 )
 

Вложения

  • Безымянный.png
    Безымянный.png
    751 байт · Просмотры: 445

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 949
609
BIT
259
из вьюшки и получать, по а далее всякие Child/Sibling
[DOUBLEPOST=1425718950,1425718661][/DOUBLEPOST]есть тонкость - получение по ключу NotesViewEntry из и построение из него навигатора (по чайлдам или сиблингам - как по задаче)
 
  • Нравится
Реакции: serko
S

serko

из вьюшки и получать, по а далее всякие Child/Sibling
[DOUBLEPOST=1425718950,1425718661][/DOUBLEPOST]есть тонкость - получение по ключу NotesViewEntry из и построение из него навигатора (по чайлдам или сиблингам - как по задаче)
Голова не варит. Попробовал, но работает через раз. Каждый ключ дает либо левое количество потомков, либо ошибку.
Если писать 12, то выводит 1, а если 122, то ошибка. Параметры столбцов вьюхи прилагаю
Код:
Dim ws As New notesuiworkspace
	Dim view As notesview
	Set view = ws.CurrentView.View
	Dim entry As NotesViewEntry
	Set entry = view.GetEntryByKey("12")
	Msgbox entry.ChildCount
 

Вложения

  • 22.png
    22.png
    2,6 КБ · Просмотры: 481
  • Безымянный.png
    Безымянный.png
    16,2 КБ · Просмотры: 362

alexas1

Green Team
10.04.2014
1 202
225
BIT
38
Как в LS получить дочерние документы в иерархической вьюхе, не придумывая свои "велосипеды"? Родительский я всегда брал через notesdocument.parentdocumentUNID, но можно ли как-то получить дочерний аналогичным способом? ( Lotus Notes/Domino 8.5 )
Set notesDocumentCollection = notesDocument .Responses
Получишь всех деток первого уровня.
Если надо ващще всех - рекурсия (на форуме были примеры, поищи).
По поводу ByKey - в колонку могут подмешаться разные типы данных: у тебя цифири - могёт быть "текст" или "число".
Не твой ли случай?
И посмотри ещё это link removed, может понравится, сам не пользуюсь.
 
  • Нравится
Реакции: serko

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 949
609
BIT
259
не задавался вопросом - что такое childcount (никогда не пользовался)
еще раз повторю - навигатор строится отталкиваясь от полученного энтриса (а там просто Count - если он нужен)
этот вариант универсален можно перебирать любой уровень (в т.ч. - пропуская вложенный)
энтрис - это не док
 
Мы в соцсетях:

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