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

  • Автор темы azat20
  • Дата начала
A

azat20

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Лучше завести поле в документе и хранить список там. Раз в месяц агентом править. Будет гораздо быстрее.
А преобразовать в дату и получить список дат до текущей даты вроде бы не проблема.
 

Kizarek86

Green Team
20.07.2007
875
8
BIT
119
Medevic
+1, тяжеловатая формула для колонки будет)




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

Для получения названия месяца юзай:
@Select ( Номер_Месяца ; "Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь")
 
A

azat20

Для получения названия месяца юзай:
@Select ( Номер_Месяца ; "Январь";"Февраль";"Март";"Апрель";"Май";"Июнь";"Июль";"Август";"Сентябрь";"Октябрь";"Ноябрь";"Декабрь")

Спасибо! А все таки никак в колонке все написать,а? А то агентом не очень то охота
 
A

azat20

Создал поле, 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...

Подскажите, пожалуйста, Как и что лучше написать в поле, где будет содержаться все месяцы и года до текущего месяца текущего года?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Создал поле, 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)
 
A

azat20

Вот, держи:

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)

Премного благодарен!!!
 
A

azat20

Добрый день!еще такой вопрос. Часто бывает нужно в поле, которое 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,
но не знаю как делать проще...
Подскажите, пожалуйста, как оптимизировать код!
 
A

azat20

А если надо добавить в начало списка,а не в конец?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Я конечно, извращаюсь, когда пишу
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))
 
Мы в соцсетях:

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