0 / 0 / 0
Регистрация: 18.07.2008
Сообщений: 242
1

Данные в колонке

12.11.2008, 11:57. Показов 18679. Ответов 13
Метки нет (Все метки)

Добрый день!Есть доки, в одном из полей(назовем его Х) хранятся данные типа: год+месяц. Например, 2008Ноябрь. Элементов в полем много. Надо чтобы в колонке были года и месяца, которых нет в поле Х до текущий месяца текущего года. Как это сделать?
На ум пришло только собрать все элементы типа год+месяц до текущийГод+текущийМесяц. А затем Replace(all;X;""). Вот. Не могу реализовать на собаках(пишу прямо в Formula столбца). Как это реализовать? @For вообще работает в отборе столбца?Проблема еще и в том, что текущий месяц - это цифра, а формат у меня 2008Ноябрь(год+названиемесяца).
Прошу помочь!У кого какие предложения?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2008, 11:57
Ответы с готовыми решениями:

Отображение значение в колонке
У меня формула в колонке Value1 : Value2, в свойствах колонки выставлен флаг Multi-value separator...

Img В Колонке Представления
Добрый день. Гуру, подскажите, где посмотреть (на форуме не нашел), что почитать, чтобы...

Значение в категоризированной колонке в представлении
Столкнулся с такой багофичей: Есть представление, которое содержит два типа доков (две разные...

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

13
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
12.11.2008, 12:09 2
Лучше завести поле в документе и хранить список там. Раз в месяц агентом править. Будет гораздо быстрее.
А преобразовать в дату и получить список дат до текущей даты вроде бы не проблема.
0
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
12.11.2008, 12:54 3
Medevic
+1, тяжеловатая формула для колонки будет)




Azat
For работает.
В поле даты храниться дата, а вот отображается у тебя как раз формат "2008 Месяц".
Делай 2а списка, 1 в котором все месяца+годы которые могут быть выведены, в другом те что в документе, потом составляй список в котором Сп1-Сп2 будет, и выводи его.

Для получения названия месяца юзай:
@Select ( Номер_Месяца ; "Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"И юль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декаб рь")
0
0 / 0 / 0
Регистрация: 18.07.2008
Сообщений: 242
12.11.2008, 14:52 4
Цитата Сообщение от kizarek
Для получения названия месяца юзай:
@Select ( Номер_Месяца ; "Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"И юль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декаб рь")
Спасибо! А все таки никак в колонке все написать,а? А то агентом не очень то охота
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
12.11.2008, 15:32 5
Можно, но это будет тупо.
0
0 / 0 / 0
Регистрация: 18.07.2008
Сообщений: 242
12.11.2008, 15:46 6
Создал поле, computed then composed,написал там
i:=2008;
j:=1;
all:=" ";
@While(i<=@Year(@Now);
@While(j<=@Month(@Now);
all:= all & @Text(i;"G") & @Select(j;"Январь";"Февраль";"Март";"Апрель";"Май" ;"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Нояб рь";"Декабрь");
j:=j+1;
)
i:=i+1;
)


Выдает ошибку @Function arguments excepted but none were supplied...

Подскажите, пожалуйста, Как и что лучше написать в поле, где будет содержаться все месяцы и года до текущего месяца текущего года?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
12.11.2008, 15:52 7
Цитата Сообщение от Azat
Создал поле, computed then composed,написал там
Неправильно выбран тип поля. Нужно просто computed.

Вот, держи:

Код
month := "Январь" : "Февраль" : "Март" : "Апрель" : "Май" : "Июнь" : "Июль" : "Август" : "Сентябрь" : "Октябрь" : "Ноябрь" : "Декабрь";
start := "2005Апрель";
startDate := @Date(@TextToNumber(start); @Member(@RightBack(start; 4); month); 1);
@For(n := @Adjust(startDate; 0; 1; 0; 0; 0; 0); n < @Date(@Year(@Today); @Month(@Today); 1); n := @Adjust(n; 0; 1; 0; 0; 0; 0); d := d : (@Text(@Year(n)) + month[@Month(n)]));
@Trim(d)
0
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
12.11.2008, 15:59 8
ммм...вложеные циклы на собаках)
0
0 / 0 / 0
Регистрация: 18.07.2008
Сообщений: 242
13.11.2008, 08:15 9
Цитата Сообщение от kizarek
Вот, держи:

month := "Январь" : "Февраль" : "Март" : "Апрель" : "Май" : "Июнь" : "Июль" : "Август" : "Сентябрь" : "Октябрь" : "Ноябрь" : "Декабрь";
start := "2005Апрель";
startDate := @Date(@TextToNumber(start); @Member(@RightBack(start; 4); month); 1);
@For(n := @Adjust(startDate; 0; 1; 0; 0; 0; 0); n < @Date(@Year(@Today); @Month(@Today); 1); n := @Adjust(n; 0; 1; 0; 0; 0; 0); d := d : (@Text(@Year(n)) + month[@Month(n)]));
@Trim(d)
Премного благодарен!!!
0
0 / 0 / 0
Регистрация: 18.07.2008
Сообщений: 242
13.11.2008, 10:03 10
Спасибо отвечавшим!
0
0 / 0 / 0
Регистрация: 18.07.2008
Сообщений: 242
16.11.2008, 09:13 11
Добрый день!еще такой вопрос. Часто бывает нужно в поле, которое multivalue добавить что-нибудь на Лотусскрипте (агентом или кнопкой). Использую ReplaceItemValue. Но там же не напишешь

Call pardoc.ReplaceItemValue("Reade",pardoc.reade : session.UserName & Date)

Я конечно, извращаюсь, когда пишу
Call pardoc.ReplaceItemValue("Reade", Fulltrim(Arrayappend(tempstr,laststr)))
где,
Dim tempstr(1)
Tempstr(0)=Cstr(doc.from(0)) & " " & Cstr(doc.date(0))
laststr=pardoc.reade,
но не знаю как делать проще...
Подскажите, пожалуйста, как оптимизировать код!
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
16.11.2008, 09:38 12
Цитата Сообщение от Azat
Добрый день!еще такой вопрос. Часто бывает нужно в поле, которое multivalue добавить что-нибудь на Лотусскрипте (агентом или кнопкой).
Call notesItem.AppendToTextList( newValue )
0
0 / 0 / 0
Регистрация: 18.07.2008
Сообщений: 242
16.11.2008, 14:30 13
А если надо добавить в начало списка,а не в конец?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
16.11.2008, 15:31 14
Цитата Сообщение от Azat
Я конечно, извращаюсь, когда пишу
Call pardoc.ReplaceItemValue("Reade", Fulltrim(Arrayappend(tempstr,laststr)))
где,
Dim tempstr(1)
Tempstr(0)=Cstr(doc.from(0)) & " " & Cstr(doc.date(0))
laststr=pardoc.reade,
но не знаю как делать проще...
Подскажите, пожалуйста, как оптимизировать код!
Почему извращаешься? Нормально. Если немного поправить:

Код
Call pardoc.ReplaceItemValue("Reade", FullTrim(ArrayAppend(pardoc.GetItemValue("Reade"), session.UserName & Date)))
Можно Evaluate использовать:

Код
Call pardoc.ReplaceItemValue("Reade", Evaluate({@Trim(Reade : (from + @Text(date)))}, pardoc))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2008, 15:31
Помогаю со студенческими работами здесь

Сортировка категорий в колонке вида
Доброго времени суток.помогите пожалуйста. требуется:отсортировать данные в коллекции не по...

Как Определить Значение В Колонке Представления
Добрый день. Подскажите, как программно определить значение в колонке представления. Суть: На...

Разные стили в одной колонке вьюхи
Можно ли в одной колонеке вьюшки часть текста выделить жирным? Колонка содержит ФИО+Статус, вот...

отображение многознач значения в колонке с новой строки
Добрый день! в категаризованной вьюшке есть колонка в которой выводиться многозначное поле,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru