1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программирован. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление
  2. Чат codeby в telegram перезагрузка. Обсуждаем вопросы информационной безопасности и методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие. Подробнее ...

    Скрыть объявление

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

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

  1. Chron

    Chron Well-Known Member

    Репутация:
    0
    Регистрация:
    16 авг 2010
    Сообщения:
    49
    Симпатии:
    0
    Всем превед... У мну снова проблема с многозначными полями, а именно такая... в документы есть связанные с друг другом 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");
    "")
    )
    естественно не работает)))... Хотел бы услышать ваши советы...
     
  2. Kizarek86

    Kizarek86 Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    20 июл 2007
    Сообщения:
    860
    Симпатии:
    6
    Попробуйте без @Set.
    ПОЛЕ2[n]:="y";
    должно работать
     
  3. lmike

    lmike нет, пердело совершенство
    Lotus team

    Репутация:
    3
    Регистрация:
    27 авг 2008
    Сообщения:
    6.405
    Симпатии:
    344
  4. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Вроде как по индексу нельзя менять элемент.
     
  5. Chron

    Chron Well-Known Member

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


    Добавлено:
    С помощью @Replace в пределах одного поля вроде работается....
     
  6. lmike

    lmike нет, пердело совершенство
    Lotus team

    Репутация:
    3
    Регистрация:
    27 авг 2008
    Сообщения:
    6.405
    Симпатии:
    344
    а что смущает-то? :rolleyes:
     
  7. Kizarek86

    Kizarek86 Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    20 июл 2007
    Сообщения:
    860
    Симпатии:
    6
    Код:
    	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)
     
  8. Medevic

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

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Код:
    a := "A" : "C" : "F" : "A" : "B";
    b := "x" : "x" : "x" : "x" : "x";
    c := "A";
    d := "y";
    @Right(@Replace(a + "|" + b; c + "|" + b; a + "|" + d); "|")
     
  9. Darker

    Darker Гость

    Репутация:
    0
    Medevic, гениально! +1

    единственное - над разделителем надо подумать (посложнее, чтоб не встретился где-нибудь)
     
  10. lmike

    lmike нет, пердело совершенство
    Lotus team

    Репутация:
    3
    Регистрация:
    27 авг 2008
    Сообщения:
    6.405
    Симпатии:
    344
    сделать настраиваемыми (в полях или переменных)
     
Загрузка...

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