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

Тема в разделе "Lotus - Программирование", создана пользователем pbnoob, 13 сен 2006.

  1. pbnoob

    pbnoob Well-Known Member

    Регистрация:
    25 авг 2006
    Сообщения:
    135
    Симпатии:
    0
    Проблема заключается в следующем:
    есть текстовое поле(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 текстовые строки различной длины)
     
  2. Dikobraz Grey

    Dikobraz Grey Гость

    @Transform(f;"x";@if(@length(x)<45 ; x ; @left(x ; 42)+"..." ) ))
     
  3. pbnoob

    pbnoob Well-Known Member

    Регистрация:
    25 авг 2006
    Сообщения:
    135
    Симпатии:
    0
    <!--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) без добавления "..." ;)
     
  4. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    А строки у тебя уникальные? Для уникальных точно можно такое преобразование замутить, для НЕуникальных пока не придумал..
     
  5. pbnoob

    pbnoob Well-Known Member

    Регистрация:
    25 авг 2006
    Сообщения:
    135
    Симпатии:
    0
    <!--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]

    к сожалению неуникальные. (но помести пожалуйста тут решение для уникальных, может оно подтолкнет к перебору и неуникальных)
     
  6. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    А как вам такое решение:

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

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

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

    Ы?
     
  7. pbnoob

    pbnoob Well-Known Member

    Регистрация:
    25 авг 2006
    Сообщения:
    135
    Симпатии:
    0
    Для: Constantin A Chervonenko

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

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    "Я еще и на машинке строчить могу.."(с)
    А вроде и для неуникальных должно работать. Впрочем, когда список проверки неуникален.... Но это можно полечить.

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

    pbnoob Well-Known Member

    Регистрация:
    25 авг 2006
    Сообщения:
    135
    Симпатии:
    0
    <!--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 года :) )
     
  10. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Уточнение для неуникальных списков:
    ...
    T:=@Unique( C );
    @Replace(FL+C; ("-"+T) : ("+"+T); T : (@Left(T;42)+"..."))

    Не проверял, но вроде так...
     
Загрузка...
Похожие Темы - Перебор элементов массива
  1. 123456789igor
    Ответов:
    1
    Просмотров:
    1.571
  2. sima12
    Ответов:
    4
    Просмотров:
    1.779
  3. iivvnn
    Ответов:
    4
    Просмотров:
    1.863
  4. Altaya
    Ответов:
    10
    Просмотров:
    2.814
  5. MMN
    Ответов:
    28
    Просмотров:
    7.639

Поделиться этой страницей