Перебор элементов массива на формулах

pbnoob

Well-known member
25.08.2006
135
0
#1
Проблема заключается в следующем:
есть текстовое поле(Allow multiple values), которое вычисляется следующим образом:

NP:=Subject ;
S:=@Subset(@DbName ; 1);
F:=@DbLookup("":"NoCache" ; "" ; "TaskByProject" ; NP ; 3) ;
@If(@IsError(F ) ; "" ;
@if(@length(F)<45 ; F ; @left(F ; 42)+"..." ) )

Последняя строчка не прокатывает. Как мне просмотреть все значения параметра F
с целью определения их длинны (в поле F текстовые строки различной длины)
 

pbnoob

Well-known member
25.08.2006
135
0
#3
<!--QuoteBegin-Dikobraz Grey+13:09:2006, 20:34 -->
<span class="vbquote">(Dikobraz Grey @ 13:09:2006, 20:34 )</span><!--QuoteEBegin-->@Transform(f;"x";@if(@length(x)<45 ; x ; @left(x ; 42)+"..." ) ))
[snapback]43811" rel="nofollow" target="_blank[/snapback]​
[/quote]

Спасибо огромное за подсказку, только сейчас всплыл один неприятный момент: я работаю на пятом лотусе, а не на шестом. Там этой функции я не нашел. И мне уже в реале сказали, что такой код в пятом не прокатит. Возможно только урезание типа @Left(F ; 42) без добавления "..." ;)
 
30.05.2006
1 345
11
#4
Спасибо огромное за подсказку, только сейчас всплыл один неприятный момент: я работаю на пятом лотусе, а не на шестом. Там этой функции я не нашел. И мне уже в реале сказали, что такой код в пятом не прокатит. Возможно только урезание типа @Left(F ; 42) без добавления "..." ;)
А строки у тебя уникальные? Для уникальных точно можно такое преобразование замутить, для НЕуникальных пока не придумал..
 

pbnoob

Well-known member
25.08.2006
135
0
#5
<!--QuoteBegin-Constantin A Chervonenko+14:09:2006, 15:04 -->
<span class="vbquote">(Constantin A Chervonenko @ 14:09:2006, 15:04 )</span><!--QuoteEBegin-->А строки у тебя уникальные? Для уникальных точно можно такое преобразование замутить, для НЕуникальных пока не придумал..
[snapback]43886" rel="nofollow" target="_blank[/snapback]​
[/quote]

к сожалению неуникальные. (но помести пожалуйста тут решение для уникальных, может оно подтолкнет к перебору и неуникальных)
 
30.05.2006
1 345
11
#6
к сожалению неуникальные. (но помести пожалуйста тут решение для уникальных, может оно подтолкнет к перебору и неуникальных)
А как вам такое решение:

C :=@Trim(<исх.список>);

S:=@Sign(@Length( C )-45);
FL:=@Replace(@Text(S);"-1":"0":"1";"-":"-":"+");

@Replace(FL+C; ("-"+C) : ("+"+C); C : (@Left(C;42)+"..."))

Ы?
 

pbnoob

Well-known member
25.08.2006
135
0
#7
Для: Constantin A Chervonenko

Ахринеть, у меня нет слов (и у моего начальника тоже) все сработало, но опять же при условии, что у нас все элементы списка были разные. Но мы в восторге!!! Огромное спасибо!!!! :angry: :angry:
 
30.05.2006
1 345
11
#8
Для: Constantin A Chervonenko

Ахринеть, у меня нет слов (и у моего начальника тоже) все сработало, но опять же при условии, что у нас все элементы списка были разные. Но мы в восторге!!! Огромное спасибо!!!! :angry: :angry:
"Я еще и на машинке строчить могу.."(с)
А вроде и для неуникальных должно работать. Впрочем, когда список проверки неуникален.... Но это можно полечить.

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

pbnoob

Well-known member
25.08.2006
135
0
#9
<!--QuoteBegin-Constantin A Chervonenko+19:09:2006, 21:59 -->
<span class="vbquote">(Constantin A Chervonenko @ 19:09:2006, 21:59 )</span><!--QuoteEBegin-->Вообще, манипуляции со списками в собако-формулах - это что-то... МощА невероятная, но мозги вывернуть приходится, если они не окончательно заштампованы С
[snapback]44091" rel="nofollow" target="_blank[/snapback]​
[/quote]

заштампованы :) (штамповал 4 года :) )
 
30.05.2006
1 345
11
#10
C :=@Trim(<исх.список>);

S:=@Sign(@Length( C )-45);
FL:=@Replace(@Text(S);"-1":"0":"1";"-":"-":"+");

@Replace(FL+C; ("-"+C) : ("+"+C); C : (@Left(C;42)+"..."))
Уточнение для неуникальных списков:
...
T:=@Unique( C );
@Replace(FL+C; ("-"+T) : ("+"+T); T : (@Left(T;42)+"..."))

Не проверял, но вроде так...