Операции с многозначными полями

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

Chron

Всем превед... У мну снова проблема с многозначными полями, а именно такая... в документы есть связанные с друг другом 2 многозначных поля... Суть такова, например: у первого поля такие элементы --> "A";"C";"F";"A";"B", у второго - "x";"x";"x";"x";"x"... Мне необходимо в первом поле выявить значения (или одно значение) "A", узнать его порядковый номер и заменить элементы с такими же номерами во втором поле на другое значение... т.е. второе поле будет выглядеть уже так, например --> "y";"x";"x";"y","x"... Возможно реализации скриптом?.. Я пробовал через формулы, своим недалеким умом допер до

Код:
@For(n := 1;
n <= @Elements(ПОЛЕ1);
n := n + 1;
@If(ПОЛЕ1[n]="A";
@Set(ПОЛЕ2[n];"y");
"")
)

естественно не работает)))... Хотел бы услышать ваши советы...
 
result:=@Replace(source;"A";"y");
если я не напутал с утра :rolleyes:
 
Вроде как по индексу нельзя менять элемент.
 
Попробуйте без @Set.
ПОЛЕ2[n]:="y";
должно работать

Не получается... Удивительным образом после сохранения агента строчка ПОЛЕ2[n]:="y" преобразуется в ПОЛЕ2[n:="y"] :rolleyes:


Добавлено:
result:=@Replace(source;"A";"y");
если я не напутал с утра :)

С помощью @Replace в пределах одного поля вроде работается....
 
Код:
	Dim FIELD1 As Variant
Dim FIELD2 As Variant
Dim i As Integer

FIELD1 = doc.getitemvalue("ПОЛЕ1")
FIELD2 = doc.getitemvalue("ПОЛЕ2")

For i=0 To Ubound(FIELD1)
If FIELD1(i)="А" Then FIELD2(i) = "y"
Next

Call doc.ReplaceItemValue("ПОЛЕ2", FIELD2)
 
Код:
a := "A" : "C" : "F" : "A" : "B";
b := "x" : "x" : "x" : "x" : "x";
c := "A";
d := "y";
@Right(@Replace(a + "|" + b; c + "|" + b; a + "|" + d); "|")
 
Medevic, гениально! +1

единственное - над разделителем надо подумать (посложнее, чтоб не встретился где-нибудь)
 
Мы в соцсетях:

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