Помогите с @ формулой.)

Тема в разделе "Lotus - Программирование", создана пользователем Cleric-Lviv, 10 июн 2011.

  1. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    Всем привет!

    Задача:

    Нужно получить результирующее поле "SendTo".

    Имеем поля: RespAddress1:RespAddress2:RespAddress3:CommAddress1:CommAddress2:CommAddress3:Co
    ntAddress1:UserAddress1

    а также поля RespMessage1:RespMessage2:RespMessage3:CommMessage1:CommMessage2:CommMessage3:Co
    ntMessage1:UserMessage1

    если RespMessage1 != "" то RespAddress1 не будет в "SendTo" и т.д

    как би ето на @ замутить? пните в нужную сторону))))
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а что надо вообще - удалить значения из сендту или заполнить нужными?
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    SendTo := @If(RespMessage1 = ""; RespAddress1; "") : @If(RespMessage2 = ""; RespAddress2; "") : ...
     
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Код (Text):
    ValuesToCheck:=
    @explode("RespMessage1:RespMessage2:RespMessage3:CommMessage1:CommMessage2:CommMessage3:ContMessage1:UserMessage1"; ":");
    SendToFields:="";
    @for(i:=1; i<=@elements(ValuesToCheck); i:=i+1;
    @if(@elements(@GetField(ValuesToCheck[i]))>0; ""; SendToFields:=SendToFields:@GetField(@replacesubstring(ValuesToCheck[i]; "Message"; "Address")))
    );
    SendToFields:=@Trim(SendToFields);
    Field SendTo := SendToFields
     
  6. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Код (Text):
    a:=RespAddress1:RespAddress2:RespAddress3:CommAddress1:CommAddress2:CommAddress3:ContAddress1:UserAddress1;
    b:=RespMessage1:RespMessage2:RespMessage3:CommMessage1:CommMessage2:CommMessage3:ContMessage1:UserMessage1;

    i:=0;
    FIELD SendTo:=@Transform(b;"x";@Do( i:=i+1; @If(x!="";@Nothing;a[i]) ));
     
  7. Darker

    Darker Гость

    Код (Text):
    m:=RespMessage1:RespMessage2:RespMessage3:CommMessage1:CommMessage2:CommMessage3:ContMessage1:UserMessage1;
    a:=RespAddress1:RespAddress2:RespAddress3:CommAddress1:CommAddress2:CommAddress3:ContAddress1:UserAddress1;
    Field SendTo:=@trim(@transform(a; "x"; @if(m[@member(x;a)]=""; x; "")));
     
  8. Cleric-Lviv

    Cleric-Lviv Lotus team
    Lotus team

    Регистрация:
    3 янв 2008
    Сообщения:
    605
    Симпатии:
    0
    OKEN

    Заполнить нужно, спасибо за код, но он возвращает в поле "1"
    :)


    Medevic - спасибо помогло и очень просто ))))


    всем спасибо! иду учить формули)
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.079
    Симпатии:
    300
    посмотреть/отладить (да и терпежу на подумать не хватает) не могу :), что-то типа:
    filter:=list1+mask;
    right:=@Replace(filter;mask;enable);
    result:=@Left(list2+right;enable)
    где mask и enable - строки по вкусу ;)
     
  10. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    > Field SendTo:=@trim(@transform(a; "x"; @if(m[@member(x;a)]=""; x; "")));

    Darker
    Не будет работать при двух одинаковых значениях в a
     
  11. Darker

    Darker Гость

    Согласен, ставка делалась на "неповторимость" адресатов ))
     
Загрузка...

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