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

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


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

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

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


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

     Часто возникает необходимость вставлять текстовые заготовки в примечания документов. Логическим решением будет создание справочника шаблонов текстов. Однако документов может быть много, и текстовые заготовки для них могут сильно отличаться. Держать все шаблоны в общем списке становится неудобно, поэтому следующим логическим шагом становится создание уникальных списков для каждого документа, что и реализовано в ARS.

     Пример реализации такого интерфейса можно посмотреть в демонстрационной форме Заказы, где используется вставка текстовых заготовок в поле примечание. Для открытия поисковой шаблонов текстов, используется стандартная команда ARS в коде кнопки справа от поля Примечание.

Call FormOpen("frm_TextShablonFind", , , , , , "SH_ID|" & Me.Name, True)

     Поисковая открывается с фильтром, показывая только те записи, что были созданы при ее открытии с формы-редактора. Фильтром служит имя формы, поэтому в команду открытия и передается параметр Me.Name, чтобы его сохранить в качестве идентификатора группы записей. SH_ID – имя скрытого контрола, в который вставляется код записи поисковой. По этому коду нужно будет извлечь текст из служебной таблицы tab_A_Schablon_Text.

     Для этого используется дополнительный код в событии контрола SH_ID После обновления. Эта процедура обязательно должна быть объявлена как Public, иначе она не сработает после вставки код в контрол SH_ID.

Public Sub SH_ID_AfterUpdate()
On Error GoTo Err_
Call funInsertText(Me!SH_ID, Me!Comment, "SText", sPrefixTabA & "Schablon_Text")
Exit Sub

Err_:
Call ErrorBases(Err)
End Sub

     Функция funInsertText() перед вставкой текстовой заготовки в поле Comment проверяет, не была ли она вставлена прежде и выдает соответствующее сообщение:

Уже есть такая вставка в данном поле!

     Рассмотрим подробно параметры функции.

  • Me!SH_ID – ссылка на контрол, куда вставлять код записи справочника шаблонов текстов.
  • Me!Comment – ссылка на контрол, куда вставлять текстовую заготовку по коду выбранной в поисковой записи
  • "SText" – имя поля таблицы tab_A_Schablon_Text в котором хранится текстовая заготовка
  • sPrefixTabA & "Schablon_Text" – имя таблицы, где хранятся текстовые заготовки. В данном случае это таблица tab_A_Schablon_Text, но имя ее задано при помощи переменной префикса sPrefixTabA, которая указывается в настройках.

     При помощи функции funInsertText() можно вставлять текстовые заготовки из обычных справочников. Дело в том, что бывают такие ситуации: в поле нужно вставлять заготовки из справочника, при этом хранить в справочнике все допускаемые для вставки значения не нужно, так же как и обеспечивать целостность данных. Кроме того, в поле нужно вставлять несколько значений, например через запятую. В системе ARS это можно реализовать двумя способами:

  • Используя функцию открытия стандартного справочника funOpenSpraw(), указав среди параметров имя второго контрола для вставки текста справочника и номер столбца поисковой. Пример такой реализации можно посмотреть в демонстрационной форме frm_Zakaz_sub, где таким образом вставляются в нужные поля код товара и цена.
  •   Используя функцию funInsertText(). В этом случае нужно указать дополнительные параметры функции:

Call funInsertText(Me!SH_ID, Me! Comment, "fldName", "tab_Spraw1",True , "SP_ID")

     Здесь добавились два параметра:

  • True – флаг, согласно которому (если True) можно нумеровать текстовые вставки, то есть результат будет таким: 1. Текст_1, 2. Текст_2 и т. д.
  • "SP_ID" – имя ключевого поля таблицы, откуда выбираются тексты.

     Оба эти параметра не обязательны в функции, поэтому когда в первом случае их опускали, по умолчанию флаг устанавливался в False, а имя ключа таблицы бралось как имя ключа tab_A_Schablon_Text.

     Оба варианта допускают мультивставку, то есть выбрав из поисковой (стандартного справочника или пользовательской) несколько записей можно их все вставить в одно поле.

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

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

В избранное