проблема с Outlook-формой

Тема в разделе "Остальные БД", создана пользователем CHIP, 11 авг 2006.

Статус темы:
Закрыта.
  1. CHIP

    CHIP Гость

    Всем привет!
    Такой вопрос, как можно удалить любой элемент с формы, когда она уже запущена?

    метод Remove требует индекса из коллекции Pages... А как выудить этот индекс для определенного элемента на форме я не знаю (object.Index - ошибку выдает)

    Если вместо индекса вписываю сам объект - то пишет "несовпадение типов"
    Код (Text):
    Set а=objPage.Controls("Message")
    Set b= objPage.Controls.Remove(a))
    Подскажите плиз.. ;)
     
  2. GROMILA

    GROMILA Well-Known Member

    Регистрация:
    8 апр 2004
    Сообщения:
    297
    Симпатии:
    0
    А что, сокрытие не подойдет? зачем удалять
     
  3. CHIP

    CHIP Гость

    Для: GROMILA
    Ну я давно уже сделал с сокрытием, но пришлось его на кнопку вешать, а не в функцию Open_Item..
    Потому что если при открытии делать видимым это поле, то оно автоматом имеет свои минимальные размеры (две строчки)... а мне этого не нужно.. мне нужно было чтобы видны были только прикрепленные файлы.
    Но теперь если файлы есть, то видна кнопка типа "Показать вложения"... И по ее нажатию появляется это поле, но уже с нормальными (заданными мною) размерами...
    А при закрытии формы опять становится невидимым..

    Так что эту проблему я решил кое-как... А про удаление, так ничего и не нашел.

    Кстати, как запретить удаление элемента из табличного представления папки?
    Item_BeforeDelete() работает только при условии, что этот элемент открыт...
     
  4. GROMILA

    GROMILA Well-Known Member

    Регистрация:
    8 апр 2004
    Сообщения:
    297
    Симпатии:
    0
    Мы извращались следующим образом:
    1. Аутглюк при удалении помещает элемент в папку [Удаленные!!!!
    2. Делается обработчик в надстройке (add-in), который перехватывает события папки [Удаленные]
    3. Если елемент нельзя удалять, то обработчик препятствует помещению его в папку удаленные!!!
     
  5. CHIP

    CHIP Гость

    Для: GROMILA
    Не.. это не то... Возможно ли такое запрещение посредством кода самой формы?

    Мне нужно запретить такое удаление у 80 человек примерно... И не особо улыбается ходить и каждому прописывать код...
     
  6. GROMILA

    GROMILA Well-Known Member

    Регистрация:
    8 апр 2004
    Сообщения:
    297
    Симпатии:
    0
    Не возможно.
    Но можно еще порыть мсдн если речь идет об общих папках.
    В этом случае нужно писать серверные скрипты, которые будут работать для всех, но ....
    но я этого не пробовал делать.

    Что касается более или менее серьезной разработки под OL вообще,
    то делать инсталляционный пакет, который будет распространять изменения
    функционала по сети!!!

    Это САМЫЙ БОЛЬШОЙ НЕДОСТАТОК по сравнению с Lotus-ом,
    где подобная операция обновления дизайна баз является встроенной и обычной.
     
  7. CHIP

    CHIP Гость

    Беда в том что как раз запрет нужен на удаление из персональных папок (не сетевых)...
    Ну я подозревал что это невозможно сделать через саму форму... Увы =(

    По поводу инсталяционного пакета - да, хорошая мысль...
    Потому как седня столкнулся еще с одной проблемой...
    Ситуация такая: При определенном действии внутри отправленной формы (которая лежит в общей папке) автоматически вызывается, заполняется и отсылается другая форма (тоже с кодом)... Отсылается она уже не в общую папку, а определенному человеку. И вот проблема в том, что если у этого человека нету такой формы на компе (в личных формах, например), то он получает простое сообщение, а не форму (нету не только кода, но даже кнопок и других эл-тов управления)...

    Как только вручную устанавливаю эту отправляемую форму в "Личные формы" - все отлично работает.

    Вопрос: есть ли код для автоматической установки форм?

    А то пока я только вижу шанс попробовать отследить все изменения в системе при ручной установке. И потом создать ехе-шник с этими изменениями...
     
  8. GROMILA

    GROMILA Well-Known Member

    Регистрация:
    8 апр 2004
    Сообщения:
    297
    Симпатии:
    0
    Код конечно есть, и его не трудно в объектной модели OL найти.
    Это операция публикации формы.
    Форма может быть опубликована в трех местах:
    1. В конкретной папке (доступна только в этой папке клиента OL)
    2. В Библиотеке личных форм (доступна во всех папках клиента OL)
    3. На сервере в общих папках (доступна на сервере и возможно на клиенте, проверь)

    Что касается инсталлятора, то я пришел к выводу, что лучше
    сделать отдельный проект на VB6 или на C#, где удобно отладить все нужные операции
    А потом из инсталляционных прог только вызывать эти отлаженные интерфейсы.
    Напрямую в инсталляционных прогах задолбаешься отлаживать, хотя и короче код!!!

    Что касается применения VB6 или современного C#, то начиналь юзать OL-модель на порядок легче из VB6 а то и из VBA-макросов OL. Но реалии таковы, что перелезть на C# прийдется, так как микропух уже забил на VB6, и дальнейшее развитие будет только на платформе NET и должно пройти время тестирования.
     
  9. GROMILA

    GROMILA Well-Known Member

    Регистрация:
    8 апр 2004
    Сообщения:
    297
    Симпатии:
    0
    Хочу предупредить еще о двух проблемах, которые весьма криво решаются, что ведет порой к тупику применения OL:
    1. Поиск по пользовательским полям не работет без публикации полей в папке!!!
    А программно это сделать через модель нельзя :)))))
    (как подтверждение см.топик здесь)
    Прийдется ИНСТАЛЛЯТОРУ таскать за собой папки с опубликованными средствами конструктора полями!!!

    2. Для пользовательских полей Дата/Время нет компонента ввода на форме!!
    рекомендуют использовать ActiveX MSDatePicker (название кривое по памяти пишу), но с ним есть проблема и очень большая:
    - перестает работать сохранение даты (глючить обмен между формой и компонентом по ствойству Value)
    - компонент нужно ИНСТАЛЛИТЬ на ПК!!!!!


    На мой взгляд сие делает OL совершенно непригодным для серьезной разработки Workflow-приложений.
    Так, чисто по мелочам.
     
  10. CHIP

    CHIP Гость

    Для: GROMILA
    Ясно.. Код нашел.. Спасибо.

    Будут еще вопросы - напишу сюда :)
     
  11. CHIP

    CHIP Гость

    Вот задался вопросом таким:
    А как програмно запустить форму из библиотеки личных форм ??

    Т.е. как к этой библиотеке обратиться?

    А и еще.. Может кто знает как отключить сообщения отлука о том что на форме используется несколько полей типа "Сообщение" или "Заметка" ??
     
  12. GROMILA

    GROMILA Well-Known Member

    Регистрация:
    8 апр 2004
    Сообщения:
    297
    Симпатии:
    0
    Что значит к ней обратиться? Она всегда доступна, причем глобально.
    Просто открывай и все.


    По поводу сообщений.
    На сколько я помню, подобное предупреждение выдается в процессе конструирования формы.
    Оно на самом деле всегда будет одно, так что не используй копий.
    Копии иногда нужно делать, если скрыть основное и открыть свое (копию), чтобы управлять им.
     
  13. CHIP

    CHIP Гость

    Для: GROMILA
    Да уж.. про бибилотеку я ступил =)

    А про сообщения.. Там кароче даже если имена этих полей одинаковые, но всеравно выдается предупреждение.
    Меня это удивляло потому что эти поля были на вкладках которые, либо одна либо другая скрывались...
    Оказывается это не меняет дело.. а меняет только то, что если по умолчанию одно из полей сделать невидимым. а при открытии нужной вкладки делать видимым и все. Предупреждения нету =)
     
Загрузка...
Похожие Темы - проблема Outlook формой
  1. Zloikaktus
    Ответов:
    0
    Просмотров:
    4
  2. c0de3r
    Ответов:
    5
    Просмотров:
    127
  3. DobermannTT
    Ответов:
    10
    Просмотров:
    136
  4. SoulPaladin
    Ответов:
    4
    Просмотров:
    133
  5. Artael
    Ответов:
    1
    Просмотров:
    110
Статус темы:
Закрыта.

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