Apico Soft / АПИКО Софт



Спонсором блога ScalaHelp.RU является компания АПИКО Софт.

Мы предоставляем:
- Качественный ERP консалтинг.
- Внедрение и сопровождение системы.
- Российские формы первичных документов, бухгалтерская и налоговая отчетность.

- Разработка корпоративной отчетности.

Наш телефон 8 (495) 961 98 48
Сайт http://www.apicosoft.ru/

Позвоните нам, мы сделаем все, чтобы помочь Вам.

пятница, июня 29, 2007

Запуск внешней программы из меню (Часть 1)

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

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

Второй способ - подключаем программу в меню, выбирая тип "Выполняемый модуль Windows"/"Windows executable" и указываем путь к программе. Все у нас теперь запускается, осталось определить нужные параметры. Если эту программу пишете вы сами, то есть способ определить все что нужно. Вот как это будет выглядеть на примере Visual Basic 6:

  1. Создаем новый проект
  2. В References добавляем ссылку на SfwIII
     
  3. Кидаем на форму черыре Label, обзываем их llCompanyCode, llScalaYear, llScalaDate, llConnectionString
  4. Добавляем следующий код
    Private Sub Form_Load()
    llCompanyCode.Caption = SfwIII.ActiveProcess.UserContext.CompanyCode
    llScalaYear.Caption = Right(CStr(SfwIII.ActiveProcess.UserContext.FinYear), 2)
    llScalaDate.Caption = SfwIII.ActiveProcess.ScalaDateStr
    llConnectionString.Caption = SfwIII.ActiveProcess.UserContext.GetConnectionString(2)
    End Sub
  5. Настраиваем новый пунт меню
     
  6. Запускаем
     

Программа получила все нужные параметры и дальше уже нужно заставить ее делать то, что надо.

Исходник примера можно взять здесь.

Не обошлось у этого способа без недостатков. Неприятности начинаются когда пользователь запускает несколько копий Скалы. В этом случае программа всегда будет получать параметры из программы запущенной первой. Правда, если открыть второе окно с помощью пункта меню "Изменить Компанию/Год" с галочкой "Запуск новой сессии", то все будет работать нормально.

О способе запуска, правильно определяющем сессии, расскажу в следующий раз.

Комментариев нет:

Отправить комментарий