Отображение задачи в календаре

Тема в разделе "Lotus - Программирование", создана пользователем oleg7, 12 ноя 2009.

  1. oleg7

    oleg7 Гость

    Создаю документ в бд1, нажимаю на кнопку Отправить и запрос отправляется пользователю в почту в виде Задачи. Все поля формы Task заполнены, заполнены даты, но при этом в календаре задача не отображается, только после того как в почте повторно (вручную ) даты были изменены задача будет у пользователя в календаре. Почему так?
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    посмотри условия отбора, вероятно чего-то не хватает для отображения в календаре
     
  3. oleg7

    oleg7 Гость

    а никто не делал чтобы при заполнении документа в базе создавалась задача (отображаемая в календаре) в почтовой базе? Очень надо. Уже все нормально работает, а вот с этой частью просто ступор какой-то.
    Помогите, если кто-то знает
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    занудка ;) ты условие отбора смотрел в представление календаря?
    Код (Text):
    SELECT @IsAvailable(CalendarDateTime)
    поле CalendarDateTime (дата) в твоем документе есть?
    а еще поля: AppointmentType, StartDateTime, EndDateTime

    изучи вид ($Calendar) в почтовой базе.
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Попробуй создать нужную задачу "вручную" и внимательно изучи все её поля. При генерации задачи создавай все нужные поля кодом.
    Когда-то добавлял в календарь отпуск. Чтобы понять, какие поля и чем заполнять, действовал так: создал отпуск, написал агента, который перебирал все его итемы и сохранял в документе их названия и типы, док отправлял себе по почте.
     
  6. oleg7

    oleg7 Гость

    СПАСИБО!!!!!!!!! Получилось! ;) может и зануда, не спорю... но получилось
     
  7. oleg7

    oleg7 Гость

    теперь не могу понять, как задачи становятся Завершенными, если в документе нажать кнопку Завершить....
    И вот еще вопрос, если документ был делеширован другому пользователю, то задачу надо как-то удалять из почты первого исполнителя. Не подскажите как это делать?
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    надо изучить приложение "Почтовая БД" ;)
    там вообще много-много всего интересного.

    для удаления дока из базы см справку дизайнера, метод flag = notesDocument.Remove( force )
     
  9. oleg7

    oleg7 Гость

    вот так я делаю изменения в почтовой бд в Task, например:
    Код (Text):
        Dim memo As New NotesDocument( db )
    memo.Form = "Task"
    memo.Subject = db.Title
    а как сделать, чтобы при получении сообщения и открытии задачи ее нельзя было редактировать?
     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    есть несколько вариантов, если дизайн поддерживает, то сделать по условию дизайна, если нет, то либо изменить дизайн шаблона, либо контролируя доступ пользователя к базе и к полям.

    зы: посмотри форму (Notice) | Notice, может быть ее лучше использовать для твоей задачи
     
  11. oleg7

    oleg7 Гость

    нет, говорят, что именно Task хотят :D

    и с Завершением не получилось. При нажатии кнопки в документе, заполняются поля DueDateTime, DueState, вроде это и есть условие отображения в TodoCompleted (Задачи\Завершенные) ;)
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ну посмотри (TaskNotice) | TaskNotice
    млин, поройся по формам, покрути, поверти...
     
  13. nadezdaMP

    nadezdaMP Гость

  14. oleg7

    oleg7 Гость

    добрый день. Появился такой вопрос. Я все заполняю в документе, отправляю пользователю, он получает сообщение как задачу, но после делает изменения , например в дате завершения. Правильно будет, если эта дата будет и в задаче меняться, но не могу понять как этого добиться. Если может кто-то, то подскажите
     
  15. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ничего не понятно...
    т.е. есть какое-то приложение (А), в котором создается документ (Б), на основании которого строится задача (В) в почтовом приложении (Г) пользователя?
    как варинат, при создании задачи (В) в почтовике (Г) записывать в ней, к примеру, унид документа (Б), а в документе (Б) писать унид задачи (В) и адрес почтовика, - сервер-файл, (Г).
    потом, если пользователь меняет дату в задаче (В) и почтовый шаблон изменить можно, то дописать там код, который будет менять документ (Б), если же менять шаблон почтовика (Г) нельзя, то сделать в приложении (А) агент, который будет с достаточной частотой опрашивать задачи на исполнении и синхронизировать по необходимости данные.
     
  16. oleg7

    oleg7 Гость

    Akupaka
    спасибо за ответ. Правда вообще ничего не понял. Буду разбираться завтра на свежуу голову
     
  17. oleg7

    oleg7 Гость

    Извеняюсь, что поднимаю опять задачу... Опять вернулся просто к данной задаче :(
    Нашел на сайте пример. Пытаюсь использовать этот пример для себя.
    Код (Text):
    Dim directory As NotesDbDirectory
    Dim db As NotesDatabase
    server$ = "ServerName"
    Dim ProcessDb As New NotesDatabase("", "")
    Dim doc As NotesDocument

    Set directory = New NotesDbDirectory( server$ )
    dbType% = DATABASE   
    Set db = directory.GetFirstDatabase( dbType% )

    counter% = 0
    While Not ( db Is Nothing )
    counter% = counter% + 1
    Call Db.Open("", "")
    If Db.IsOpen Then
    If Cstr(Lcase(Left(db.Filepath, 4))) = "mail" Then
    Set ProcessDb = New NotesDatabase("", "")
    If ProcessDb.IsOpen Then
    Dim collection As NotesDocumentCollection
    Set doc = collection.GetFirstDocument
    Set collection = db.Search(ХХХХХХХ) ' здесь надо чтобы проверяло поле из документа с полем, которое находитсяв задаче в почтовой базе
    If collection.Count > 0 Then
    Print "Ok" '
    End If
    End If
    End If
    End If
    Set Db = directory.GetNextDatabase
    Wend
    Но после строки If ProcesDb.IsOpen Then вообще переходит сразу на следующий документ
    Помогите :newconfus: пожалуйста еще и разобраться в том, как проверять поля из документа и поля из почтовой базы
     
  18. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    имхо, так должно быть?

    Set collection = db.Search(ХХХХХХХ) ' здесь надо чтобы проверяло поле из документа с полем, которое находитсяв задаче в почтовой базе
    Set doc = collection.GetFirstDocument
     
  19. oleg7

    oleg7 Гость

    я вначале хотел просто посмотреть продвинется туда или нет:
    Set collection = db.Search({Subject = "Test"} , Nothing,0)
    для этого хотел искать просто по названию
     
  20. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    в общем, что-то тут пропущено...
    ProcessDb база не открывается-то...
    Set ProcessDb = New NotesDatabase("", "")
    NotesDatabase The path and file name of the database within the Notes or Domino data directory. Use empty strings for both dbfile$ and server$ if you want to open the database later.

    ProcessDb - это что за база?
    И дальше
    суть в том, что коллекция описана, но не инициализирована:
    Dim collection As NotesDocumentCollection
    А дальше сразу у нее док берут - даст ошибку:
    Set doc = collection.GetFirstDocument
     
Загрузка...

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