1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Сортировка По Важности В Виде

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

  1. Mitya

    Mitya Well-Known Member

    Регистрация:
    13 июн 2012
    Сообщения:
    111
    Симпатии:
    0
    Подскажите пожалуйста, как правильно реализовать данный момент.
    Есть 2 формы. Одна «основная» форма, другая «справочник». «Основная» берет данные из «справочника»
    Есть представление, где сортируются данные из «основной» форм + группируются. Как мне реализовать сортировку по «важности» должности в этом представлении?
    Есть идея в форме справочника добить цифровое поле - «важность» должности (типа 1, 2, 3…)
    А в «основной» форме добавить скрытое, вычисляемое поле. И при выборе должности из «справочника», автоматически определять значение поля «важности». А в представлении потом все просто настроить.

    Может кто сталкивался с данной задачей. Хотелось бы на примере увидеть все это.
    Спасибо.
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Mitya
    В представлении нет возможности консолидировать в одной записи данные из разных документов — нужно значение "важности" также копировать в "основную" форму.
     
  3. Mitya

    Mitya Well-Known Member

    Регистрация:
    13 июн 2012
    Сообщения:
    111
    Симпатии:
    0
    Я вроде и писал, что поле "важность" будет вычисляемое на "основной” форме.
    Т.е. при создании нового документа по "основной" форме тянут должность из ”справочника” - поле "важность" вычисляется, берет значение из того же "справочника"

    Вот как это реализовать, пока, не начитал. Поэтом, хотел видеть пример, коротенький =)
     
  4. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Mitya
    Что Вы имеете ввиду под "вычисляемое на основной форме"? Если значение важности будет браться из справочника в computed for display поле на форме, то в представлениях оно будет не доступно и сортировать по нему будет невозможно. Поэтому при выборе из справочника названия должности "подтягивайте" и сохраняйте также и значение важности. Делать можно как на дог-фомулах, так и на лс-скрипте.
    Поскольку справочник в Lotus Notes понятие растяжимое, опишите сперва Вашу реализацию, чтобы можно было что-то посоветовать.
     
  5. Altaya

    Altaya Active Member

    Регистрация:
    1 мар 2012
    Сообщения:
    35
    Симпатии:
    0
    На сколько я поняла, то ответ содержится в самом вопросе. Mitya, как сделать вы уже все описали, осталось только сделать.
    А по поводу важности "1,2,3", если у вас должности делятся только на "руководитель" и "подчиненный", то достаточно поля "Руководитель" со значениями да/нет и по ним потом сортировать.
     
  6. Mitya

    Mitya Well-Known Member

    Регистрация:
    13 июн 2012
    Сообщения:
    111
    Симпатии:
    0
    Чем дальше в лес, тем больше дров
    Спасибо за понимание к новичку и разъяснения.

    Реализация задумывается быть такой:
    Есть форма “справочника” состоящая из 2 полей (1-е - "классификатор", 2-е - "значение") + добавлю дополнительное поля "важность". Вот не знаю стоит это поле делать числовым?
    Есть "основная" форма документа. Куда в поле "должность" из справочника тянуться значения (@DbLookup(””:”NoCache”;@DbName;"list";"Post";2)
    Хотелка в том, как заставить в зависимости от выбранной должности тянуть данные из поля "важность" в "основной" документ.
     
  7. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    У функции @DbLookup есть ключ [RETURNDOCUMENTUNIQUEID] (см. справку). Название должности, важность и другие поля можно получить функцией @GetDocField( documentUNID ; fieldName ).

    Подозреваю, что поле должности у Вас типа диалогбокса, а @DbLookup в формуле списка значений. Я бы сделал поле должности текстовым, а для выбора должности добавил на форму кнопку с @PickList, в представлении для выбора добавил скрытую колонку, в которой через разделители (например, "|") указал все нужные значения, которые бы потом разбивал через @Explode.

    Текстовые поля сортируются не так, как числовые, например:
    1
    10
    11
    2
    Если это то, что Вам нужно, делайте поле текстовым
     
  8. Mitya

    Mitya Well-Known Member

    Регистрация:
    13 июн 2012
    Сообщения:
    111
    Симпатии:
    0
    Изначально тип поля ”должность” на "основной форме" был «поле со списком», где значения брались так: @DbLookup(””:”NoCache”;@DbName;"list";"Post";2)
    я не понял как пристроить ключ [RETURNDOCUMENTUNIQUEID] =) и сделал через @PickList, повесил на "основную" форму кнопку:
    ch:=@PickList([Custom]:[Single];@DbName;"list"; "Выберите должность"; "Cписок должностей";1;"Должности");
    @SetField("post";@GetDocField(ch;"value"));
    @SetField("pn";@GetDocField(ch;"pn"))

    Но, пишет "Ошибка в UNID; UNID должен представлять собой 32-разрядную шестнадцатеричную строку!!
    что тут не так? Спасибо

    Разобрался: добавил в виде "list" 4-ю колонку:mad:Text( @DocumentUniqueID)
    и подправил ch:=@PickList([Custom]:[Single];@DbName;"list"; "Выберите должность"; "Cписок должностей";4;"Должности");

    Может через [RETURNDOCUMENTUNIQUEID] было бы проще, но как это прикрутить?
     
  9. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    > я не понял как пристроить ключ [RETURNDOCUMENTUNIQUEID] =) См. хелп @DbLookup (Domino data source): @DbLookup("":"NoCache";@DbName;"list";"Post";2;[RETURNDOCUMENTUNIQUEID])
     
  10. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Я предлагал в скрытую колонку помещать все нужные данные, т.е. формула колнки была бы примерно такая:
    Код (Text):
    @Text(@DocumentUniqueID) + "|" + post + "|" + @Text(pn);
    Формула кнопки соответственно:
    Код (Text):
    ch:=@PickList([Custom]:[Single];@DbName;"list"; "Выберите должность"; "Cписок должностей";4;"Должности");
    @SetField("postUNID"; @Word(ch; "|"; 1));
    @SetField("post"; @Word(ch; "|"; 2));
    @SetField("pn"; @TextToNumber(@Word(ch; "|"; 3)));
    поместить в InputTranslation
    @SetField("post";@GetDocField(ch;"value"));
    @SetField("pn";@GetDocField(ch;"pn"))
     
Загрузка...

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