Событие Querysave и вызов Doc.save

Тема в разделе "Lotus - Программирование", создана пользователем SkinGreek, 3 сен 2008.

  1. SkinGreek

    SkinGreek Гость

    Доброго времени суток.

    Хотелось бы спросить совета по решению такой траблы.
    В форме есть автовычисляемые поля, вычисляются они с помощью LS(на собаках я уверен что такое не сделаешь).
    Сначала я внес код вычисления в событие Querysave, но в последсвии мен необходимо создавать документы по данной форме из LS(в агенте LWF).
    Ясно что Querysave работает ток при работе с UI. Вставлять код вычислений этих полей во все места где документ создается я считаю дурацкой идеей хотелось бы чтоб о вычислении полей знала лишь форма.
    Есть ли какие нить изощрения минимизирующие познания создающего кода о создаваемым им документе.
    таких форм несколько потому писать несколько MySave() тоже как то не так.
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Библиотеку использовать.
     
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Medevic
    +100

    Меня вообще бесит: понатыкают скриптов на форму, под кнопку и ещё в какую-нибудь жэпу.
    Потом надо использовать этот скрипт откуда-то извне, так мало, что его перетаскивать надо, он ещё и глобальные переменные юзает.
    Тьфу!

    Последнее сказано не по отношению к SkinGreek, а так, крик души.
     
  4. SkinGreek

    SkinGreek Гость

    Omh
    Я с вами согласен в этом крике)), но этот подход лотус сам провоцирует, так же как и делфи. поэтому это можно назвать "делфийский синдром". Лично я там где вижу именно библиотечные функционалы, то я их несомненно засуну в библиотеку(но бывает и лениво конечно, грешен;))). а тут просто напросто хотелось инкапсулировать логику в форме, так как она относится только к этой форме.

    Medevic
    Вот чтоб не плодить библиотеки(как сущности LN) ток недавно появилась идея создать одну общую библиотеку с базовым классом "BaseDocument" который содержал бы документ, и БД. В нем метод отдачи NotesDocument'a создания документа, и абстрактный метод "CalcFields".
    Во второй библиотеке создавать классы-наследники с переопределением последнего метода, в котром и был бы инкапсулирован код калькуляции таких филдов. Тогда можно будет в событии написать ...
    Код (Text):
    new ConcrateDoc1(curdoc).CalcFields()
    а в коде создания ...
    Код (Text):
    BaseDocument newdoc = new ConcrateDoc1().CreateNew()
    newdoc.getDocument().ReplaceItemValue("Bla1", "Hi")
    newdoc.CalcFields()
    Единственное редактор LN делает все чтоб писать длинный LS код в одной библиотеке было как можно не удобней;) (с INCLUDE директивой пока не разобрался, и скорей всего не разберусь ибо это мой последний проект на лотусе).А библиотеку для каждой формы это жирновато всеж:(
    Потому и спросил как бы так по проще сделать и с сохранением структуризации и инкапсуляции логики.

    All

    Спасиб за советы и стимул не пихать все в ж..., хотя в лотусе это весьма сложно сделать;)
     
  5. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    не скажу, что я абсолютно против, но я бы сказал, что это не так уж и плохо.
    а то, что нотес позволяет это сделать, то это скорее плюс, нежели минус.
    каждый пишет в своем стиле, кому-то приемлимо писать "на форме", кому-то в библиотеках, плюсов и минусов у каждого способа можно найти.
    и назвать это "дельфийским синдромом" как-то неверно абсолютно, я лично, кроме явы щас и не вспомню языка, который этого не позволяет (если грить о наиболее употр*цензура*емых языках)... :)
    имхо!

    зы: еще скажу, если кому-то достался чей-то код, то как бы плохо он не выглядел, нужно уважать чужой труд! т.к. у каждого из нас есть свои, причем, ощутимые ляпы!
     
  6. SkinGreek

    SkinGreek Гость

    Назвав его "дельфийским синдромом" я имел ввиду целую методолгию разработки ПО(событийно ориентированый подход)
    И началось это с делфи. Все формбилдеры такие как VC++, ASP.NET и тд построены на подобном подходе. Такой подход не плох просто он поощряет новичков писать "Magic PushButton" где надо и где не надо. Это усложняет ПО.
    В Java нет форм билдеров но есть JSF или Свинг которые тоже построены на той же стратегии. там есть нечто подобное ивентов OnClick. Но новичкам в Java сразу советуют кучу книг такие как "рефакторинг" фаулера и "паттерны" гоф. Это уменьшает соблазн рамазывать функционал по всем частям программы.

    Это тоже было ИМХО.
    Так как я вредный глядя, как на чужой так и на свой плохой код я очень сильно ругаюсь, бывает даже матом. Но уважение к труду от этого не уменьшается.
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ну, это призвано упростить разработку, но нагружает ПО кучей лишнего кода...
    значит я не так понял, что подразумевалось под термином "д.синд" :)
    на счет с кого началось, то не буду спорить, я первые версии IDE не рассматривал, хотя была помню еще под т.паскалем библиотечка, позволяющая строить "оконный" интерфейс...
    а почему нету у явы форм билдеров? на сколько мне известно, то есть IDE, в которых можно разрабатывать формы визуально... либо я, снова таки, не понял термина "форм билдер" :)
    т.е. я хочу сказать, что это не подход в программировании, это подход в разработке УИ приложений, зависящий от возможностей IDE, а не языка...
    надеюсь, я понятно выразил свою мыслю ))

    эээ, я тоже вредный, я тоже ругаюсь и на себя и на остальных, просто хотел напомнить, что надо друг друга уважать :)
     
  8. SkinGreek

    SkinGreek Гость

    скорее я не прав в этом отношении. свинг не писал и не пользовал возможности IDE.
    под "форм билдером" я имел ввиду как в делфи перетаскивание элементов нажатие на кнопочки и авто генерация обработчиков событий.
    Так как работал в основном с Web таких возможностей IDE не встричал, и как то я не расстраиваюсь по этому поводу.
    Ладно спорить наверное не бум ни в терминах ни в подходе к программированию. Главное чтоб нам нравилось как пишем и что пишем, и чтоб ухи не горели когда дашь человеку поддерживать свой код)))
    очень жаль конечно что нет хороших Best Practices в лотусе, не хватает мне как новичку. А по созданным стандартным БД шерстить просто не возможно, особенно по началу когда вообще не знаешь как искать.
    Спасибо за помощь и диалог.
     
  9. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    на счет Best Practices, то они есть... но в насколько удобном виде - вопрос :)

    короче гря, смотри на IBM developerworks там есть много Redbook 'ов, еще есть журнал The View, еще SearchDomino.com (http://searchdomino.techtarget.com) и много другого...
     
Загрузка...
Похожие Темы - Событие Querysave вызов
  1. NickProstoNick
    Ответов:
    2
    Просмотров:
    648
  2. vadpetr
    Ответов:
    0
    Просмотров:
    1.140
  3. Bob84
    Ответов:
    37
    Просмотров:
    4.882
  4. Мыш
    Ответов:
    1
    Просмотров:
    1.093
  5. Num2
    Ответов:
    0
    Просмотров:
    1.301

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