Замена функций

  • Автор темы kilcher
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

kilcher

#1
Доброе утро! Можно ли заменить функцию @GetField на @SetField в формуле
@If(@Elements(revpositions) >= 2; @GetField("revpositions")[2]; @Nothing)?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
Нет. На собаках нельзя менять элементы по индексу напрямую.
 
K

kilcher

#3
Это получается,что для Lotus 5.0 эта формула не подходит и надо скрипт писать? :blink:
 

morpheus

скриптописец
07.08.2006
3 915
1
#4
нет , потому что к масиву можно обратиться по индексу Х, но нельзя записать ( используя кв. скобки )
поэтому я вычислял все элементы с индексом меньше Х(пусть А), и все элементы с индексом больше Х (Пусть С ), а потом компоновал

@SetField("revpositions"; А : ЭлементНаЗамену : С ) ;
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
Или я не так понял и ты не про индекс?
В 5-ке перед @SetField нужно задекларировать поле. Т.е. FIELD revpositions := revpositions.
 
K

kilcher

#6
Дело в том,что я не знаю заранее какие у меня элементы массива.И элемент на замену чего? Мне же просто надо вытащить конкретный(по индексу) элемент
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#7
Не понятно. Если надо вытащить элемент, то зачем @SetField?
 

morpheus

скриптописец
07.08.2006
3 915
1
#9
kilcher
да зачем вам гетфиелд? обратитесь к полю по имени )))
revpositions[2]
 
K

kilcher

#14
Можно задам еще вопрос опять же по замене функций? В Lotus 6.5 в кнопке работал код

@If ( (myFieldFlag = "0":"") &(Lastname1!="");
@Do(
FIELD Untitled1 := "1. ";
@Command( [RefreshHideFormulas] );
FIELD myFieldFlag := "1"
)
...........

После переноса в 5ку код изменился на

@If ( (myFieldFlag = "0":"") &(Lastname1!="");
@Do(
Untitled1 DEFAULT "1. " ;@Command
([RefreshHideFormulas] ) ;myFieldFlag
DEFAULT "1" ) ;
..........
И соответственно перестал работать.Я не поняла,а что не так то? Почему он заменяет функции? Ведь FIELD и @Do так же есть в 5ке. И так везде,где используется @if и @Do.

P.S. Сделала так @Subset(@Subset(revpositions;2); -1). Вроде все работает.Спасибо.
 
S

Sandr

#15
Гы, прикольно... перепишите руками... :angry:
@SetField используйте... тогда не сломается...
 
K

kilcher

#16
Гы, прикольно... перепишите руками... :angry:
@SetField используйте... тогда не сломается...
Я вроде так и сделала
FIELD Untitled1:=Untitled1;
@If ( (myFieldFlag = "0":"") &(Lastname1!="");
@Do(@SetField( Untitled1 ; "1. ");
@Command([RefreshHideFormulas] ) );
@Success)
Но ничего не работает :angry:
 
G

Guest

#18
Насколько я помню в 5-ке есть проблемы с @Do, лучше его не использовать
 
G

Guest

#20
Проблемы те, что не работает. По крайней мере у меня была такая ситуация, что в 5-ке появлялась ошибка в связи с этим оператором (какая точно уже не помню). В данной ситуации этот оператор можно заменить на несколько @IF
 
Статус
Закрыто для дальнейших ответов.