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

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

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

Проблема с Dialoglist или как убрать ненужное значение

Тема в разделе "Lotus - Программирование", создана пользователем Della, 7 апр 2010.

  1. Della

    Della Гость

    Репутация:
    0
    Привет всем!Помогите, пожалуйста, решить проблемку (с Лотусом только знакомлюсь). Попытаюсь объяснить.
    Есть 3 формы. На 1й поле (наименование службы). На второй два поля (наименование службы, название группы). К каждой службе относится несколько групп.
    На 3й форме два DialogLista (в одном (slug) выбирается служба, во втором (gruppa) группы, относящиеся только к данной службе ). В 1м выбираем из списка службу @DbColumn("":"NoCache";"":""; "nais"; 2),где nais-вьюха, в кот-й отображаются названия служб. Во втором DialogListе выбираем @If(slug!="";@DbLookup("":"NoCache";"":""; "naig"; slug; 2);"")
    Вопрос: когда в первый раз выбираю из slug службу,а из gruppa названия соответствующей ей группы, все нормально, но стоит поменять название службы, и начать выбор из поля gruppa, в нем (в gruppa)отображаются группы,привязанные к выбранной службе плюс остается группа от выбора предыдущей службы. Как сделать так, чтобы при изменении выбора в поле slug , убиралось значение от предыдущего выбора?
    Может я что-то не так делаю?? :)
     
  2. Darker

    Darker Гость

    Репутация:
    0
    Во второй вкладке свойств поля группы проставь предпоследние 2 галочки
     
  3. nvyush

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Для slug добавить в InputTranslation
    Код:
    Field gruppa := "";
    @ThisValue
     
  4. Della

    Della Гость

    Репутация:
    0
    галочки были проставлены :(

    Добавлено:
    Спасибо большое!!!Получилось!
     
  5. Della

    Della Гость

    Репутация:
    0
    Появился еще один вопрос :ya_lamo: На вышеупомянутой форме есть поле slug, добавила туда еще одно поле isp, тоже DialogList, но значения выбираются так:@DbColumn("":"NoCache";"":""; "naig"; 3). Значения и там и там одинаковые, но представления разные.
    Необходимо, чтобы при выборе в поле slug, такое же значение выбиралось в isp. Но при этом в поле isp можно было бы поменять значение.
    Делала так:
    Поле slug в InputTranslation

    Field isp := @ThisValue;
    @ThisValue
    При этом,конечно,в поле isp значение такое же,как и в slug,но поменять его нельзя
     
  6. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    @SetField( fieldName ; value )

    а лучше скриптом

    uiDoc.FieldSetText("isp",uiDoc.FieldGetText("slug"))
     
  7. nvyush

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    А если так:
    Field isp := @If(isp = ""; @ThisValue; isp);
    @ThisValue

    Или другой вариант
    Поле isp, событие Onfocus:
    Код:
    Sub Onfocus(Source As Field)
    Dim ws As New NotesUIWorkspace
    Dim doc As NotesDocument
    Set doc = ws.CurrentDocument.Document
    doc.ReplaceItemValue("$UpdateIsp", "0").SaveToDisk = False
    End Sub
    Поле slug:
    событие Onfocus:
    Код:
    Sub Onfocus(Source As Field)
    Dim ws As New NotesUIWorkspace
    Dim doc As NotesDocument
    Set doc = ws.CurrentDocument.Document
    doc.ReplaceItemValue("$UpdateIsp", "1").SaveToDisk = False
    End Sub
    InputTranslation:
    Код:
    Field isp := @If($UpdateIsp = "1"; @ThisValue; isp);
    @ThisValue
     
  8. Della

    Della Гость

    Репутация:
    0
    Спасибо всем за отклики!!!! :O_0: Воспользовалась "другим" вариантом nvy, так как в этом случае выбранное значение(сколько раз ни выбирай) в поле slug будет совпадать с соответствующим значением в поле isp, при этом значения isp можно при надобности поменять.
     
  9. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Зачем так сложно?

    Можно же просто сделать в поле slug событие onChange

    Код:
    Sub Onchange(Source As Field)
    Dim ws As New NotesUIWorkspace
    Dim uiDoc As NotesUIDocument
    Set uiDoc = ws.CurrentDocument
    Call uiDoc.FieldSetText("isp",uiDoc.FieldGetText("slug")) 
    End Sub
    Твой код рабочий. Ток не очень понимаю, зачем...
     
  10. nvyush

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Onchange срабатывает после потери полем фокуса. В предложенном варианте связанное поле обновляется сразу.
     
  11. zma

    zma Гость

    Репутация:
    0
    А не подскажите еще, как этот код заставить под Web-ом работать? @DbLookup не понимает значение первого поля....

    Пардон, сам разобрался, если кому интересно, http://codeby.net/forum/threads/21286.html?mode=linear
     
Загрузка...

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