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

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

  1. Della

    Della Гость

    Привет всем!Помогите, пожалуйста, решить проблемку (с Лотусом только знакомлюсь). Попытаюсь объяснить.
    Есть 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 Гость

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

    nvyush Lotus team
    Lotus team

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

    Della Гость

    галочки были проставлены :(

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

    Della Гость

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

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

    Xalet Well-Known Member

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

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

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

    nvyush Lotus team
    Lotus team

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

    Или другой вариант
    Поле isp, событие Onfocus:
    Код (LotusScript):
    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:
    Код (LotusScript):
    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:
    Код (Delphi):
    Field isp := @If($UpdateIsp = "1"; @ThisValue; isp);
    @ThisValue
     
  8. Della

    Della Гость

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

    Xalet Well-Known Member

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

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

    Код (Text):
    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 Lotus team
    Lotus team

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

    zma Гость

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

    Пардон, сам разобрался, если кому интересно, http://codeby.net/forum/threads/21286.html?mode=linear
     
Загрузка...
Похожие Темы - Проблема Dialoglist или
  1. AgniXRudra
    Ответов:
    2
    Просмотров:
    54
  2. Zloikaktus
    Ответов:
    0
    Просмотров:
    31
  3. c0de3r
    Ответов:
    5
    Просмотров:
    155
  4. DobermannTT
    Ответов:
    10
    Просмотров:
    160
  5. SoulPaladin
    Ответов:
    4
    Просмотров:
    145

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