Удаление значения из поля

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

kilcher

#1
Всем добрый день! Возникла следующая задачка. Нужно удалить элемент из многозначного поля(или переместить его в другое поле).
Использовала следующее:
@Trim(@Subset(("revNameRus");1)).
Но почему-то не сработало :D . Может синтаксис неверен?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
@GetField пропущен?
@Trim(@Subset(@GetField("revNameRus"); 1)).

Цель какая? Удалить N-ый элемент?
 
K

kilcher

#3
Да цель именно такая.Так почему-то тоже не работает ;) . Опишу подробней.Это все еще лист соглосования :D При нажатии на кнопку "СОЛГАСОВАННО" имя визирующего лица удаляется из списка.
 
D

D!m@n

#4
Удаление i-го элемента
Код:
FIELD revNameRus:=@Trim(@Replace(revNameRus; revNameRus[i]; ""))
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
@Trim(@Replace(список; имя_визирующего; @Nothing))

<!--QuoteBegin-D!m@n+4:02:2008, 12:05 -->
<span class="vbquote">(D!m@n @ 4:02:2008, 12:05 )</span><!--QuoteEBegin-->Удаление i-го элемента
[snapback]96496" rel="nofollow" target="_blank[/snapback]​
[/quote]
Не совсем так. Удалятся все элементы revNameRus в списке.
 
D

D!m@n

#7
2kilcher: Medevic дело говорит.
Для Вашей задачи и моя формула подойдет, но вообще удаление i-го элемента надо делать по другому:
Код:
list:=@Trim(@Subset(list; i-1):@Subset(list; -(@Elements(list)-i)))
При этом счет элементов идет с единицы.
 
K

kilcher

#8
Мда.Работает то все работает,но немного не так. Если удаляю первый элемент,то получается,что первым становится второй :( . А надо чтоб первоначальные индексы значений в поле не удалялись.(может их не удалять а как-нибудь скрывать в поле)?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#9
Для: kilcher
А для чего?
Можно сделать два поля. Одно скрытое и содержит полный список визоров. Второе для отображения.
 
K

kilcher

#10
Если перывый сотрудник нажимает"соглосовать",то он удаляеться из списка и т.д. Но т.к. соглосование идет не в строгом порядке первый,второй,третий и т.д.,то необходимо,чтобы удалялась именно запись согласующего(если он был в списке первоначально четвертым,то за ним и должен сохраниться его номер для кода). Во как все запутанно
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#11
<!--QuoteBegin-kilcher+4:02:2008, 12:52 -->
<span class="vbquote">(kilcher @ 4:02:2008, 12:52 )</span><!--QuoteEBegin-->Если перывый сотрудник нажимает"соглосовать",то он удаляеться из списка и т.д. Но т.к. соглосование идет не в строгом порядке первый,второй,третий и т.д.,то необходимо,чтобы удалялась именно запись согласующего(если он был в списке первоначально четвертым,то за ним и должен сохраниться его номер для кода). Во как все запутанно
[snapback]96518" rel="nofollow" target="_blank[/snapback]​
[/quote]
Так делай три поля: полный список согласующих, текущий список согласующих и список тех, кто уже согласовал. :(
Из первого и третьего легко получаем "номер для кода)" :). Второй просто для отображения.
 
K

kilcher

#14
А как? :( Создала еще два поля Names1и Names2.
В кнопке прописала @Replace( revNameRus ; @Subset(revNameRus;1) ; Names1)
Что неверно,не заносится в список :)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#15
<!--QuoteBegin-Medevic+4:02:2008, 12:56 -->
<span class="vbquote">(Medevic @ 4:02:2008, 12:56 )</span><!--QuoteEBegin-->полный список согласующих, текущий список согласующих и список тех, кто уже согласовал.
[snapback]96521" rel="nofollow" target="_blank[/snapback]​
[/quote]
Назовем их Список1, Список2, Список3 соответственно.
Тогда в Список2 пишем формулу @Trim(@Replace(Список1; Список3; @Nothing)).

В кнопке, как я понял, нужно заполнять Список3. И сделать рефреш.
 
K

kilcher

#16
Чтобы добавить в список3 я пишу FIELD @Subset(Names1;1):= Lastname1 это первый элемент.Почему после сохранения остается FIELD Names1:= Lastname1? Получается я неверно присваиваю значение элементу?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#17
<!--QuoteBegin-kilcher+4:02:2008, 15:22 -->
<span class="vbquote">(kilcher @ 4:02:2008, 15:22 )</span><!--QuoteEBegin-->Чтобы добавить в список3 я пишу FIELD @Subset(Names1;1):= Lastname1 это первый элемент.Почему после сохранения остается FIELD Names1:= Lastname1? Получается я неверно присваиваю значение элементу?
[snapback]96543" rel="nofollow" target="_blank[/snapback]​
[/quote]
После слова FIELD должно идти имя поля.
 
K

kilcher

#18
Значение то присваивается,но меняется когда я добавляю следующее в поле.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#19
Для: kilcher
Надо конкатенацию делать.
Т.е. формула для кнопки:
Код:
FIELD Names1 := @Unique(@Trim(Names1 : Lastname1)))
 
K

kilcher

#20
Вот и новое слово в моем словаре ;) Спасибо.Но еще остались проблемы. Из списка 2 записи не удаляются. Вот что там прописано @Trim(@Replace(revNameRus;Names1;@Nothing));