Пусть есть комбобокс с формулой заполнения с синонимами.

Автор Тема: Пусть есть комбобокс с формулой заполнения с синонимами.  (Прочитано 13821 раз)

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Предположим, заполнено оно так:

Один | 1
ДВА | 2

В само поле сохраняется 1 или 2, это ясно. А в другое поле я в момент выбора хочу вставить "Один" или "ДВА". Как сделать? Оч. желательно на формулах.

Спс.

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Можно поставить в свойствах первого поля рефрешить поля при изменении значения. А второе поле сделать вычисляемое на основе первого поля.

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Но в вычисляемое поле запишется "1" или "2" тогда, а мне не нужны алиасы, нужны реальные слова...

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Смотря что вы в формулу запишите. Можно так:
@if(field1="1"; "Один"; field1="2"; "ДВА"; "")

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Я не могу вписать формулу, потому что у меня каждый раз в этом поле будут разные значения; формула там стоит.

В разных базах эта ф-ла дает разные рез-ты. Соотв я не могу написать иф-then, т.к. в 1 случае "1" - это "Один", а в другом - "Два".

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Не понятно, что вам нужно. Чтобы второе поле содержало "человеческое" значение первого или что-то другое?

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Пусть формула сработала в поле XXX в первой базе.

Вернула

Козел | животное
Муха | насекомое

При выборе в комбобоксе XXX нужного значения  - значение XXX равно либо "животное", либо "насекомое".

А мне нужно добавить 2-е поле YYY, в которое сохраняется не алиас выбранного в XXX, а непосредственно человек что видит, т.е. "Козел", "Муха".



Пусть формула сработала на 2-й базе. Вернула
Лёха | человек
Маша | нечеловек.

Нужно чтобы то же самое было, что и в 1 случае; мне нужно в отдельное поле сохранить человеческое значение.

Если ваше 1-е утверждение верно - опишите по шагам; я не понимаю.

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Тогда нужно исходить из той формулы, что генерит значения для первого поля. На ее основе можно составить формулу для второго поля.

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
"":(@DbLookup ("";"":"";"ORG2";funduszUNID;4) + "|" + @DbLookup ("";"":"";"ORG2";funduszUNID;2))

Возвращает 1300 выбираемых позиций.

Sergey_st85

  • Старший специалист
  • ****
  • Сообщений: 181
  • Только вперед!
    • Просмотр профиля
    • Личный сайт.
Формат - "Название | Код". Сохраняется в поле  - Код. Нужно в поле№2 сохранять Название выбранного Кода.

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
например такую формулу для второго поля:

list1 := @DbLookup ("";"":"";"ORG2";funduszUNID;2);
list2 := @DbLookup ("";"":"";"ORG2";funduszUNID;4);
pos := @Member(field1; list1);
list2[pos];

и добавить проверки для корректности.