Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Microsoft Access - программирование и готовые решения


Выпуск 21. Access Rapid Start - конструктор приложений в Access

Подписка: "Access 2003/2010 - программирование и готовые решения"
Дата: 24.09.2012
Автор: Парусников Алексей
Сайт: http://www.accessoft.ru под редакцией с http://www.leadersoft.ru
Загрузка: ARS 2003 ARS 2007 ARS 2010
Получить ключ: Key_ARS

В данном цикле статей рассказывается о работе с конструктором приложений Access - Access Rapid Start. Дополнительные вопросы по этой теме Вы можете задать на форуме. Вы так же можете заказать персональную консультацию или перенос вашего проекта в ARS, связаться с автором для решения вопросов о создании программы на базе ARS - в последнем случае вы кроме готового продукта получите возможность самостоятельно его развивать.


    Данная статья ориентирована на начинающих разработчиков Access, желающих более углубленно изучить возможности программирования в Access и сделать свои приложения более профессиональными.
Как открыть поисковую со статическим фильтром

     Рассмотрим эту реализацию на примере программы Кадровое агентство. Есть несколько вариантов реализации, в зависимости от того, какую поисковую открываем: стандартный справочник или пользовательскую поисковую.

Стандартный справочник

  1. Сделать редактируемый запрос и назначить его источником поисковой. Используется для стандартных справочников. Самый простой способ, но к сожалению не всегда его можно применить, так как не всегда запрос можно сделать редактируемым. К тому же он не позволяет автоматически задавать значение по умолчанию для поля-фильтра. Пример таких запросов: qry_OrgFind_Cex, qry_OrgFind_Podr, qry_OrgFind_Post, qry_OrgFind_Zak, qry_RabFind_Sokr. Эти запросы используются при открытии сокращенных справочников при ДБ клике по спискам полей на формах стандартной командой:

Call funOpenSpraw("qry_OrgFind_Cex", Me!Org_ID)

  1. Если нужно не только отфильтровать список поисковой, но и сделать вставку значения по умолчанию для какого то поля, то используется специальный массив свойств, зарезервированный для поисковых. Рассмотрим на примере работы пары связанных справочников Желаемая должность и Комментарий к должности, запускаемых при ДБ клике и по кнопке соответствующих полей формы frm_Anketa  (раздел меню: Работа - Соискатели). Код для списка Желаемая должность запускает обычный справочник:

Call funOpenSpraw("tab_Dolgnosti", Me!Dolg_ID)

     А вот код кнопки рядом с полем Комментарий к должности более сложный

Private Sub cmd_CommentDolg_Click()
On Error GoTo Err_
     If Not IsNull(Me!Dolg_ID) Then
          ReDim sFiltrDef(0, 4)
          sFiltrDef(0, 0) = "Find_1"
          sFiltrDef(0, 1) = "=" & Me!Dolg_ID.Column(1)
          sFiltrDef(0, 2) = 0
          sFiltrDef(0, 3) = "Find_2"
          sFiltrDef(0, 4) = Me!Dolg_ID
     End If
     Call funOpenSpraw("tab_Dolgnost_Comment", Me!SH1_ID)
Exit Sub

Err_:
     Call ErrorBases(Err)
End Sub

     Здесь идет заполнение массива ARS для поисковых sFiltrDef, из которого потом система выберет параметры и назначит их стандартной поисковой при открытии.

  • sFiltrDef(0, 0) – здесь задается поле фильтра поисковой, в которое нужно вставить значение
  • sFiltrDef(0, 1) – здесь задается само вставляемое значение, причем с маской фильтра. По нему будет отфильтровано содержимое поисковой
  • sFiltrDef(0, 2) – этот параметр задает доступ к полю фильтра (0 – нет доступа, 1 - есть). То есть мы либо блокируем фильтр от изменений либо нет
  • sFiltrDef(0, 3) – здесь задается имя фильтра, на который надо поставить фокус при открытии
  • sFiltrDef(0, 4) – а тут задаем значение по умолчанию, которое будет вставляться в форму редактор поисковой.

     Так как эта пара справочников у нас связана по полю Dolg_ID, то заполнять их мы будем сразу оба, создав двухуровневый справочник. Напомню, что для этого нужно создать запись в скрытом разделе: Разработчик – Параметры вызова справочников. Как все это работает вживую, вы можете посмотреть на форме frm_Anketa.

Пользовательская поисковая форма

  1. Поместить на форму скрытый контрол и назначать ему при открытии значение. Это часто используется в поисковых, где надо установить фильтры по умолчанию. Например в форме frm_AnketaFind (раздел меню: Работа - Соискатели) три таких скрытых поля-фильтра. В них значение прописано в свойстве «Значение по умолчанию»

NachDate: Date()-Day(Date())+1
KonDate: Date()
Find_18: 2

     Затем в событии «Открытие» поисковой пишем такой код:

Me!Find_14 = Me!NachDate & "|" & Me!KonDate

     Find_14 – это фильтр Дата регистрации. В итоге в него вставляется диапазон дат по умолчанию: период с 1 числа текущего месяца по текущую дату. Этот фильтр можно сбросить кнопкой общей очистки фильтров. А вот третье поле очищать нельзя, так как это статический фильтр, отделяющий записи соискателей от работодателей в таблице tab_Anketa. Фильтр установлен по полю Ank_Type: 1 - организация, 2 – соискатель. И чтобы он не сбрасывался при общем сбросе нужно этому полю (проще в макете формы) установить доступ = Нет. Именно по значению этого свойства процедура сброса фильтров определяет, стирать его или нет.


Полезные ссылки

Интернет магазин от Leadersoft.ru
В этом магазине Вы можете купить не только готовое программное обеспечение для бизнеса, а также найти компактные решения для самостоятельного проектирования на Microsoft Access, SQL Server или ASP.NET

В избранное