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

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

  1. oleg7

    oleg7 Гость

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

    Akupaka А че я?.. О.о

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

    oleg7 Гость

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

    Akupaka А че я?.. О.о

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

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

    nvyush Well-Known Member
    Lotus team

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

    oleg7 Гость

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

    oleg7 Гость

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

    Akupaka А че я?.. О.о

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

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

    oleg7 Гость

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

    Akupaka А че я?.. О.о

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

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

    oleg7 Гость

    Репутация:
    0
    нет, говорят, что именно Task хотят :D

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

    Akupaka А че я?.. О.о

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

    nadezdaMP Гость

    Репутация:
    0
  14. oleg7

    oleg7 Гость

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

    Akupaka А че я?.. О.о

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

    oleg7 Гость

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

    oleg7 Гость

    Репутация:
    0
    Извеняюсь, что поднимаю опять задачу... Опять вернулся просто к данной задаче :(
    Нашел на сайте пример. Пытаюсь использовать этот пример для себя.
    Код:
    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 *

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

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

    oleg7 Гость

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

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.442
    Симпатии:
    8
    в общем, что-то тут пропущено...
    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
     
Загрузка...

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