-Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в fixin

 -Сообщества

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 12.12.2002
Записей: 4343
Комментариев: 24598
Написано: 35607


Доработал Аутглюк - виды.

Четверг, 09 Декабря 2004 г. 09:31 + в цитатник
В Аутглюке к сожалению нельзя настроить панельку, чтобы по нажатию кнопки вызывался нужный вид, например задачи по категориям. Поэтому приходится сначала переходить в папку задачи, потом заходить в меню и выбирать нужный вид.

К сожалению я не нашел, как в VBA анализировать статус нажатия клавиши. Можно было бы с Shift открывать в новом окне. А так она всегда открывается в новом окне и при этом разворачивается на весь экран. Очень сильно экономит время, когда видов много сделано. Можно из контактов перейти в задачи или календарь, знаете ли.
Юзайте на здоровье!

Вот как выглядит панелька. Мордочками - контакты. Стрелками вверх - задачи. Звонками - встречи.
M:\Мои рисунки\Панель видов аутглюка.gif

Кстати, рекомендую создать виды "последние задачи" и "последние контакты" - это объекты, отсортированные по полю Изменено в порядке убывания даты. Так вы будете видеть объекты, которые меняли в последний раз.

А вот что нужно сделать:
1. Создать новую панель.
2. Нажать ALT+F11, откроется редактор Visual Basic.
3. Сервис - Макросы - Создать. Создать нужные макросы.
4. В модуль макросов добавить функцию SelectView
5. Назначить каждой кнопке панельки макрос.


== А макросы выглядят так ===

'Виды папок
'olFolderCalendar - календарь
'olFolderContacts - контакты
'olFolderDeletedItems - удаленные
'olFolderDrafts - черновики
'olFolderInbox - входящие
'olFolderJournal - журнал (сегодня)
'olFolderNotes - заметки
'olFolderOutbox - исходящие
'olFolderSentMail - отправленные
'olFolderTasks - задачи


Sub ВыбратьВид_Задачи_ПоКатегориям()
SelectView olFolderTasks, "По категориям"
End Sub

Sub ВыбратьВид_Задачи_РаботаАктивные()
SelectView olFolderTasks, "Работа активные"
End Sub

Sub ВыбратьВид_Задачи_Агенда()
SelectView olFolderTasks, "Агенда"
End Sub

Sub ВыбратьВид_Задачи_Последние()
SelectView olFolderTasks, "Последние"
End Sub

Sub ВыбратьВид_Контакты_ПоКатегориям()
'SelectView olFolderJournal, ""
SelectView olFolderContacts, "По категориям"

End Sub
Sub ВыбратьВид_Контакты_Последние()
SelectView olFolderContacts, "Последние"
End Sub
Sub ВыбратьВид_Встречи_Последние()
SelectView olFolderCalendar, "Последние"
End Sub

Sub ВыбратьВид_Встречи_ДНМ()
SelectView olFolderCalendar, "День/неделя/месяц"
End Sub


=== А функция SelectView выглядит так ===

Sub SelectView(folder, view, Optional new_window = True)
Dim myOlApp As New Outlook.Application
Dim myOlExplorer As Outlook.Explorer
Dim myOlView As Outlook.view

On Error GoTo sss

Set new_folder = myOlApp.GetNamespace("mapi").GetDefaultFolder(folder)

If new_window Then
Set myExplorer = new_folder.GetExplorer
myExplorer.Display
Else
Set myExplorer = myOlApp.ActiveExplorer
Set myExplorer.CurrentFolder = new_folder
End If


Set myOlView = new_folder.Views.Item(view)
Set myExplorer.CurrentView = myOlView
myExplorer.WindowState = olMaximized

Exit Sub
sss:
MsgBox "Error 2 " & Err.Description & " " & Err.Source
Exit Sub

End Sub

Вопросы программерам:

Можно ли как-то настроить запрос на SQL, чтобы записи в папке Outlook показывались на основе фильтра, написанного на VBA, т.е. не просто сравнивались поля записей, а производились какие-либо вычисления и на основе этого принималось решение, показывать запись или нет.
Может есть событие типа - ПриОтбореЗаписи или ПриПоказеЗаписи, ПриФильтрацииСписка и как его это событие перехватить?

Еще вопрос по ходу. Кнопке панели можно присвоить макрос. А как в этот макрос передать параметр. Например я всем кнопкам хочу присвоить один и тот же макрос.
Можно определить, какая кнопка была нажата и каким образом - мышью, с нажатым шифтом, с отжатым?

Еще вопрос - как определить была ли нажата кнопка Shift, Ctrl, Alt, когда был вызван макрос с панели инструментов.
Без шифта будет делаться одно, с шифтом другое - открываться вид в новом или текущем окне.

Или может быть так - вид, папка или эксплорер хранит где-то набор записей, которые он отображает, так перед отображением пройтись по этим записям и пофильтровать их моим условием. Можно такое сделать?

Вложение: 1581715.gif

Рубрики:  Програмист

Понравилось: 1 пользователю

my-blog   обратиться по имени Воскресенье, 06 Июля 2014 г. 20:48 (ссылка)
Детально item макрос
Ответить С цитатой В цитатник
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку