Viewrebuild

Тема в разделе "Lotus - Программирование", создана пользователем Gor, 21 мар 2006.

  1. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Всем доброго время суток...
    Опять столкнулся с проблемой которую никак не могу решить.
    В общем ситуация следующая. Есть View на нём Action - Составить отчёт.
    В общем надо сделать следующее. Чтобы по нажатию на кнопку создавался новый документ с отчётом по динамически созданой вьюхе. Мне удалось сформировать отчёт с отбором по Дате. Но тут появилась ещё одна задача сформировать отчёт по дате + ещё по названию. (каждому названию соответствует определённая дата). Код ниже я скинул формирование отчёта я обрезал оставил только ребилд который именно и не получается.

    Код (Text):
        Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim cView As String
    Dim formula As String
    Dim supplier As String 
    Dim vecoll
    Dim kurs As String 
    Set ws = New NotesUIWorkspace
    Set v = ws.CurrentView.View
    Set db = session.CurrentDatabase



    cView = "TE"

    kurs = Inputbox$("Введите название курса")

    date1 = Inputbox$("Введите дату начала тестирования. Формат: < ДД-ММ-ГГГГ >")
    date1 = Right(date1,4) + ";" + Left(Right(date1,7),2) + ";" + Left(date1,2)
    date2 = Inputbox$("Введите дату окончания тестирования. Формат: < ДД-ММ-ГГГГ >")
    date2 = Right(date2,4) + ";" + Left(Right(date2,7),2) + ";" + Left(date2,2)



    v.AutoUpdate = False   

    formula = "SELECT Form = 'TE' & ((dprk >= @date(" + date1 + "))" + "& (dprk <= @date(" + date2 + ")) & (kurs = training))" & training =(" + kurs + ")"

    REM (dprk - поле дата в колонке TE, training - поле название в колонке TE)

    v.SelectionFormula = formula

    Call v.Refresh
    v.AutoUpdate = True
    Call ws.ViewRebuild
    НЕ ПОЛУЧАЕТСЯ СЛЕДУЮЩЕЕ!!!! втюха не может отобрать документы по следующей формуле которую я формирую программно
    formula = "SELECT Form = 'TE' & ((dprk >= @date(" + date1 + "))" + "& (dprk <= @date(" + date2 + ")) & training =(" + kurs + ")"
    А ПОЧЕМУ? а потому что в дебагере она выглядит вот так (если вводим в inputbox - Знание, а дата 01-01-2006 , 01-01-2007
    SELECT Form = "TE" & ((dprk >= @date(01;01;2006)) + (dprk <= @date(01;01;2007)) & (training = Знание)

    В таком виде он её посовывает во вьюху(((
    и естественно отбор не проходит.... причём с датой всё ок а вот с
    training = Знание ....касяк.... надо чтобы было training = "Знание"
    а он без ковычек во вьюху записывает...Как это обойти? Буду очень рад если поняли мой вопрос)
     
  2. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Gor+21:03:2006, 08:07 -->
    <span class="vbquote">(Gor @ 21:03:2006, 08:07 )</span><!--QuoteEBegin-->а он без ковычек во вьюху записывает...Как это обойти? Буду очень рад если поняли мой вопрос)
    [snapback]32193" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Ну так добавь кавычки в формулу.
     
  3. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    В представлениях нельзя использовать программно изменяющиеся формулы отбора. А что нельзя решить задачу выборки по другому? Используя документколлекшн или папки?
     
  4. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-DNT+21:03:2006, 08:52 -->
    <span class="vbquote">(DNT @ 21:03:2006, 08:52 )</span><!--QuoteEBegin-->В представлениях нельзя использовать программно изменяющиеся формулы отбора.
    [snapback]32199" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Почему нельзя ? Всё можно. И даже работает.
     
  5. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    <!--QuoteBegin-Medevic+21:03:2006, 08:53 -->
    <span class="vbquote">(Medevic @ 21:03:2006, 08:53 )</span><!--QuoteEBegin-->Почему нельзя ? Всё можно. И даже работает.
    [snapback]32200" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    В 5-ке???
     
  6. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    В таком виде он её посовывает во вьюху(((
    и естественно отбор не проходит.... причём с датой всё ок а вот с
    training = Знание ....касяк.... надо чтобы было training = "Знание"
    а он без ковычек во вьюху записывает...Как это обойти? Буду очень рад если поняли мой вопрос)


    Попробуй :

    formula = "SELECT Form = 'TE' & ((dprk >= @date(" + date1 + "))" + "& (dprk <= @date(" + date2 + ")) & training =(" +{"}+ kurs +{"}+ ")"
     
  7. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-DNT+21:03:2006, 08:56 -->
    <span class="vbquote">(DNT @ 21:03:2006, 08:56 )</span><!--QuoteEBegin-->В 5-ке???
    [snapback]32201" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    В 6-ке. Но у Gor явно версия повыше 5-ки.
     
  8. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    <!--QuoteBegin-Medevic+21:03:2006, 09:10 -->
    <span class="vbquote">(Medevic @ 21:03:2006, 09:10 )</span><!--QuoteEBegin-->В 6-ке. Но у Gor явно версия повыше 5-ки.
    [snapback]32203" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Всё, хочу шестерку. Если отбирать можно динамически - это отлично.
     
  9. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-DNT+21:03:2006, 09:12 -->
    <span class="vbquote">(DNT @ 21:03:2006, 09:12 )</span><!--QuoteEBegin-->Всё, хочу шестерку. Если отбирать можно динамически - это отлично.
    [snapback]32204" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Не всё так радужно. Менять формулу отбора можно только дизайнеру или выше. Или через агент.
     
  10. Guest

    Guest Гость

    Код (Text):
     А что нельзя решить задачу выборки по другому? Используя документколлекшн или папки?
    Ну в моей задаче всё же лучше изменять динамически... А версия у меня 6.5 и действительно она это позволяет. Кавычки в формулу добавлять пробывал но это же Lotus Script он кавычки не воспринимает как символ...
    а с фигурными скобками не пробывал, а это идея попробую поставить...!
     
  11. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Забыл зарегица опять...Пост мой выше. С коллекцией можно тоже было попробовать но повторюсь динамически в моей задаче менять проще... Да и проблемки почему то у меня часто возникают когда в коллекции у Entry хочу вытащить к примеру его Count сразу ошибки вылазят... Клиент то у меня 6.5 а сервак 5 ))
     
  12. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    to Gor

    А вас устраивает тот факт что менять условие отбора может чел с правами не ниже дизайнера??? По моему это не красиво.
     
  13. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    formula = "SELECT Form = 'TE' & ((dprk >= @date(" + date1 + "))" + "& (dprk <= @date(" + date2 + ")) & training =(" +{"}+ kurs +{"}+ ")"


    ПОМОГЛО!!!!!! :) Вопрос на самом деле оказался совсем несложный...
    а до фигурных скобок я как то не догадался...просто кавычки ещё одни добавлял а он переменную вопринимать переставал...но таким образом всё работает. Спасибо!!
    Куда я уже только эти кавычки не вставлял)))) :)
     
  14. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Меня устраивает полностью... просто эта функция составляет месячный отчёт рисует график итд итп...это система обработки результатов тестирования ну и тестирования в общем, А составлять отчёты будут только 2 человека у которых и будут права Манагера....
    Ну а как красивее?
     
  15. DNT

    DNT Постоялец форума
    Lotus team

    Регистрация:
    12 окт 2005
    Сообщения:
    592
    Симпатии:
    7
    <!--QuoteBegin-Gor+21:03:2006, 12:58 -->
    <span class="vbquote">(Gor @ 21:03:2006, 12:58 )</span><!--QuoteEBegin-->Меня устраивает полностью... просто эта функция составляет месячный отчёт рисует график итд итп...это система обработки результатов тестирования ну и тестирования в общем, А составлять отчёты будут только 2 человека у которых и будут права Манагера....
    Ну а как красивее?
    [snapback]32225" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Ну, красивее, это когда дизайнер только разработчик. Опять же переделать на основе коллекции документов. Если хотите. А как график рисуете?
     
  16. Gor

    Gor Well-Known Member

    Регистрация:
    7 июн 2005
    Сообщения:
    517
    Симпатии:
    2
    Использую стандартный Microsoft Excel Chart создаю его как объект настраиваю, считаю значения во всех документах и потом значения уже вставляю в Sheet после чего график формируется. Конечно красивее когда манагер только разработчик... С коллекцией можно конечно работать... но опять же не всегда всё с коллекцией проходит лично у меня изза несоответствии версий сервера и клиента...С Entry (GetAllEntries к примеру) например работать не могу сразу вылетает...
    И ещё это... на ВЫ не люблю как то обращение)) как нить может попроще?! :)
     

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