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

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

Cleric84

Well-known member
03.01.2008
599
0
Всем привет!

Задача:

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

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

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

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

как би ето на @ замутить? пните в нужную сторону))))
 
а что надо вообще - удалить значения из сендту или заполнить нужными?
 
SendTo := @If(RespMessage1 = ""; RespAddress1; "") : @If(RespMessage2 = ""; RespAddress2; "") : ...
 
Код:
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
 
Код:
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]) ));
 
Код:
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; "")));
 
OKEN

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


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


всем спасибо! иду учить формули)
 
посмотреть/отладить (да и терпежу на подумать не хватает) не могу :), что-то типа:
filter:=list1+mask;
right:=@Replace(filter;mask;enable);
result:=@Left(list2+right;enable)
где mask и enable - строки по вкусу ;)
 
> Field SendTo:=@trim(@transform(a; "x"; @if(m[@member(x;a)]=""; x; "")));

Darker
Не будет работать при двух одинаковых значениях в a
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab