Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/82: Рейтинг темы: голосов - 82, средняя оценка - 4.94
Stovo Rohmotov
1

Контакты - День рождения и Юбилей

03.05.2009, 17:48. Просмотров 15034. Ответов 8
Метки нет (Все метки)

Всем известно, что в локальной адресной книге есть представление, отображающие значения из полей Birthday и Anniversary
Стандартное представление состоит из 4 колонок (hidden, дата, имя и возраст(лет))
Само представление отображает документы в линейном виде, а формулы в коолнках делают проверку на ниличие непустого знаечния в полях Birthday и Anniversary и в зависимости от состояния отображают документ, иногда даже по два, если указан и день рождения и юбилей.

Вот формулы для столбца hidden
[codebox]d := @If(Birthday != "" & Anniversary != ""; @Month(Birthday) : @Month(Anniversary);
Birthday!= "" & Aniversary = ""; @Month(Birthday);
Birthday = "" & Anniversary != ""; @Month(Anniversary); "");
@Right("0" + @Text(d); 2)[/codebox]
для столбца date
[codebox]dspBday := @Text(Birthday);
dspAday := @Text(Anniversary);

@If(Birthday != "" & Anniversary != ""; dspBday : dspADay;
Birthday!= "" & Aniversary = ""; dspBday;
Birthday = "" & Anniversary != ""; dspAday; "")
[/codebox]
для столбца Name
[codebox]tBday := "День рождения";
tAnniv := "Юбилей";

txt := @If(Birthday != "" & Anniversary != ""; tBday : tAnniv;
Birthday!= "" & Aniversary = ""; tBday;
Birthday = "" & Anniversary != ""; tAnniv; "");

@Name([CN]; Fullname) + " / " + txt
[/codebox]

В приципе каждый наверное видел этот код, но просто чтобы не лазить в дизанер лишний раз, если что.

Как сделать отображение дат дней рождений и юбилеев по следующему принципу:
Первый столбец - категоризированное имя месяца(сортированное по номеру-не по алфавиту), второй - категоризированный тип даты(день рождения, юбилей)
Примерно вот так:

Январь?День рождения
Юбилей
?....?Декабрь?День рождения
Юбилей?
Пытался сделать замену цифрового обозанчения месяца

@If(dd="01";
"Январь";dd="02";"Февраль";dd="03";"Март";dd="04";"Апрель";d d="05";"Май";dd="06";"Июнь";dd="07";"Июль";dd="08";"Август"; dd="09";"Сентябрь";dd="10";"Октябрь";dd="11";"Ноябрь";dd="12 ";"Декабрь";"[Вне периода[")

но что то плохо выходит, либо сотрировка по алфавиту, либо по две даты или вообще вразрброс.
Как это реализовать правильно ?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2009, 17:48
Ответы с готовыми решениями:

Юбилей и День рождения в контактах Гугл
Приветствую. Подскажите, пожалуйста, для чего в Контактах есть тип события Юбилей? Вот я вывожу...

Заданы день и месяц рождения, а также текущие день, месяц и год. Определить, сколько дней осталось до дня рождения
заданы день и месяц рождения, а также текущие день, месяц и год. Определить, сколько дней осталось...

Юбилей определить кол-во дней до дня рождения
Всем, Hello у меня программа не прошла проверку по високосному году и кажется мне еще каких-то...

11 сентября юбилей , день Гранённого Стакана
... гранёному стакану. Цитата Сегодня исполняется 66 лет гранёному стакану. 11 сентября 1943 года...

__________________
8
0 / 0 / 0
Регистрация: 04.08.2008
Сообщений: 408
03.05.2009, 18:02 2
Цитата Сообщение от Slava Rahmatov
Пытался сделать замену цифрового обозанчения месяца

@If(dd="01";
"Январь";dd="02";"Февраль";dd="03";"Март";dd="04";"Апрель";d d="05";"Май";dd="06";"Июнь";dd="07";"Июль";dd="08";"Август"; dd="09";"Сентябрь";dd="10";"Октябрь";dd="11";"Ноябрь";dd="12 ";"Декабрь";"[Вне периода[")
Что есть дд? И если оно цифровое, то почему со стрингом сравнивается?
0
Stovo Rohmotov
03.05.2009, 18:25 3
Извиняюсь, это новая переменная, которую я добавил, чтобы hidden оставить скрытым.
берется она из

d := @If(Birthday != "" & Anniversary != ""; @Month(Birthday) : @Month(Anniversary);
Birthday!= "" & Aniversary = ""; @Month(Birthday);
Birthday = "" & Anniversary != ""; @Month(Anniversary); "");
dd:=@Right("0" + @Text(d); 2)

Поэтому и строковая.
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
03.05.2009, 22:20 4
Чтобы по номеру месяца сортировалось, добавь перед столбцом с именем месяца скрытый осортированный столбец, содержащий номер месяца в числовом формате.
0
Stovo Rohmotov
04.05.2009, 08:18 5
Цитата Сообщение от Medevic
Чтобы по номеру месяца сортировалось, добавь перед столбцом с именем месяца скрытый осортированный столбец, содержащий номер месяца в числовом формате.
Что-то не получается, уже по разному перепробовал.

убрал все столбцы, оставил только 2 - hidden и месяц.
для столбца hidden установлено show multilpe values as separate entries(чтобы и День рождения и юбилей были отображались отдельными строками), - это было предустановлено.
Сортировка идет, но почему то показывает 3 месяца января,(у некоторых документов заполнены поля День рождения и юбилей)
пытался категоризировать и hidden и месяц и поочереди, и одновременно, что выходит - на рисунке:

То есть что- то я не учел, что не пойму.

На форуме читал, что скрытый отсортированный столбец помогает отсортировать месяц по алфавиту, и даже отрабатывал такой пример, но тут тонкость, в данном примере документ отображается дважды, в случае если в контакте заполнено поле Дня рождения, и в случае, если заполнено поле Юбилей, то есть поодиночке ничего, а еслт оба поля, то получается каша.
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 271
04.05.2009, 11:22 6
Вот так наверное будет красивей, и если мне не изменяет сколероз, то при таком варианте они отсортированы так, как надо без доп. столбца:

@Select ( @TextToNumber ( dd);"Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";" Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь")
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
04.05.2009, 12:12 7
Slava Rahmatov
Думаю, что не получится сделать как ты хочешь.
Сделай две категории: День рождения и Юбилей. А в них уже по месяцам.
0
0 / 0 / 0
Регистрация: 20.10.2008
Сообщений: 271
04.05.2009, 12:16 8
Думаю вполне логично будет выводить просто дни рождения, а у тех, у кого юбилей, в соседнем столбце выводить какую-нибудь картинку.. всем будет понятно и без гимора
0
StovoRohmotov
04.05.2009, 19:44 9
Цитата Сообщение от Medevic
Slava Rahmatov
Думаю, что не получится сделать как ты хочешь.
Сделай две категории: День рождения и Юбилей. А в них уже по месяцам.
Я пока так и сделал, только уж больно задачка интересная, интуитивно кажется, что алгортим (или решение) должно быть очень красивым.
Тогда можно будет указывать не только два поля, а гораздо больше.

Ладно, если что надыбаю- поделюсь
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2009, 19:44

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как по дню и месяцу рождения определить день недели (дня рождения) в любом году?
Подскажите, пожалуйста, как по дню и месяцу рождения определить день недели (дня рождения) в любом...

Скрипт, определяющий по введенной дате рождения знак зодиака, день недели, был ли год рождения високосным.
Здравствуйте, ребят буду благодарен если кто напишет, в написанном постараюсь разобраться сам. ...

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

Найти школьника, чей день рождения выпадает на заданный день
Выяснить, имеется ли среди школьников учащийся, день рождения которого совпадает со средним...

Ввести день, месяц, год рождения. чтобы определился знак вашего зодиака по дате рождения. Неправильно работает программа
Создайте консольное приложение. Напишите программу, с помощью которой можно будет наглядно ввести...

Задание 5. В какой день вы празднуете день рождения ( Excel)
Создайте модуль, который по дате вашего рождения определяет день недели, в который празднуете свой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.