Как подключить свой Dialog в присоединенной форме

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
solkalin
Постоянный гость
Сообщения: 60
Зарегистрирован: 23 ноя 2011, 11:59

Как подключить свой Dialog в присоединенной форме

Сообщение solkalin »

Во-первых, спрошу какую группу прописать, чтобы отчет вызывался, если в Сбыте в отчете реализации продукции в настройках стоит Отчеты пользователя, пока вызывается так:

Код: Выделить всё

.LinkForm 'test' Prototype is 'Rep_BS'
.Group 'S0'
.NameInList 'отчет выгрузится в Excel'

.var
 Prog, Subj, Subj2 : string;
 xlRes  : Boolean;
 NR, NC, j : integer;
.endvar

.create view vwMain as select *
          from mtmyTemMC order by mtmyTemMc.NameMC;

.create view vwMc as select katmc.nrec,
              katmc.name, 
  .....            
Во-вторых, про свой диалог. Нужно, чтобы перед выгрузкой в Excel пользователь указал группировку. И в отчете вызовется соответствующий макрос для Excel. Компилирует без ошибок, но в процессе выдает, что не найден C_Partner::_My_D.

Код: Выделить всё

....
_MY_D DIALOG
Fields
 aGrBy : byte;
 Buttons
 cmOk,Default;
 cmCancel;

<<

 Группировка:

 (.) категории`
 (.) группы`

 <. ~В~вод .> <. ~О~тмена .>

>>

.begin
//выгружаются данные на первую закладку Excel
 var  colRecord : integer;
 var p1: byte;

    runDialog('_MY_D',p1);

   xlRes:=True;
	 xlRes:=xlCreateExcelWithTemplate((translatepath('%StartPath%Asu\XlTempl\')+'ProGr.xlt'),True);
         xlRes:=xlOpenExcel(true);
....
end.

.endform 
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Как подключить свой Dialog в присоединенной форме

Сообщение RAJAH »

Чтобы отчёт появился в "Отчётах пользователя" надо интерфейс написать, скомпилировать и подключить к "Галактике":

Код: Выделить всё

/------------------------------------------------------------------------------
//                                                (c) Корпорация ГАЛАКТИКА, 2004
//                                                    (c) Галактика - Киев, 2004
//------------------------------------------------------------------------------
// Система       : ГАЛАКТИКА
// Версия        : 5.8x - 7.1x
// Назначение    : Методика подключения отчетов в "Отчеты пользователя"
//------------------------------------------------------------------------------

   Во всех модулях системы в пункте меню модуля "Отчеты" добавлен
   пункт меню "Отчеты пользователя".

   Для того, чтобы разработанный кем либо отчет, стал доступен пользователю
   при выборе данного пункта меню в конкретном модуле, необходимо разработать
   интерфейс, реализующий объектный интерфейс IUserReport (см. UserReport.vih).

   Имя интерфейса обязательно должно начинаться с префикса 'UserReport_'.

   Прилагаются 3 примера (Sample1.vip, Sample2.vip, Sample3.vip)
   Для их подключения необходимо убрать в каждом из файлов комментарий
   возле строки
     VipInterface ... Implements IUserReport;
   и скомпилировать интерфейсы в собственный ресурс, который необходимо затем
   подключить к системе (например с помощью параметра конфигурационного файла
   System.OpenResources).

   В результате в модулях "ФРО", "Касса", "Заработная плата" после выбора
   пунктов меню "Отчеты пользователя" появятся списки отчетов как и в
   прилагаемом файле Sample1-3.jpg.

   При выходе нового релиза (версии) системы Галактика необходимо только
   перекомпилировать ваши собственные интерфейсы реализующие объектный
   интерфейс IUserReport.
   В случае, если данный объектный интерфейс будет изменяться (например,
   будут появляться новые методы интерфейса), необходимо будет внести
   соответствующие изменения в Ваши интерфейсы.

   Также прилагается файл UserReport.vip, реализующий сам механизм подключения
   сторонних отчетов, но вносить в него изменения не рекомендуется.

//------------------------------------------------------------------------------

   По всем вопросам, возникающим по использованию данной функциональности,
   обращайтесь в Вашу службу Технической Поддержки

//------------------------------------------------------------------------------

   Существуют также другие методы подключения разработанных отчетов к системе.

   У указанного метода есть следующие преимущества:

   1) Информация о названии пункта меню и для построения иерархической
      структуры пунктов меню для вызова доработок хранится в ресурсном
      файле вместе с доработкой. Таким образом, при отгрузке доработки
      пользователю необходимо просто передать ему ресурсный файл.

   2) При необходимости отгрузки разным клиентам разных наборов доработок
      можно просто собирать эти наборы из готовых ресурсных файлов - меню
      для их вызова построится автоматически с учетом всех подключенных
      ресурсных файлов.

   3) При отключении ресурсного файла автоматически убираются и пункты меню
      для вызова интерфейсов, содержащихся в нем.

   4) Минимальные затраты на техническую поддержку доработок: при замене
      версии (релиза) Галактики требуется просто перекомпилировать отчеты,
      в большинстве случаев не внося никаких изменений в исходные тексты.

   5) Более эргономичный интерфейс вызова доработок - при запуске отчета
      интерфейс вызова не закрывается, и, соответственно, пользователю для
      повторного запуска отчета или для запуска другого отчета нет
      необходимости заново выбирать пункты меню (например, в модуле
      "Заработная плата" многие стандартные отчеты находятся на 4-м уровне
      вложенности меню).

   К недостаткам данного метода можно отнести:

      Невозможно разграничение прав доступа на отдельные отчеты
      стандартными средствами (Protect), можно только запретить вызов
      пункта меню "Отчеты пользователя"

//------------------------------------------------------------------------------
Попробуйте код диалога в файле *.vip подключать к проекту отдельно, т.е. создать и компилировать файл *.prj с примерно таким текстом:

Код: Выделить всё

#make <ваш_диалог>.vip
#make <ваша_форма>.frm
solkalin
Постоянный гость
Сообщения: 60
Зарегистрирован: 23 ноя 2011, 11:59

Re: Как подключить свой Dialog в присоединенной форме

Сообщение solkalin »

Простите за фамильярность, но Вы прелесть, RAJAH. Все заработало, диалог появляется!!!
А еще вопрос, пыталась вместо RadioButton сделать List, но выходили ошибки (в форме описано одно поле, а используется 3). Нашла, что выпадающий список все используют в Panel, а в диалоге использовать нельзя?
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Как подключить свой Dialog в присоединенной форме

Сообщение RAJAH »

solkalin писал(а):в диалоге использовать нельзя?
Нет, для этого существуют интерфейсы.
solkalin
Постоянный гость
Сообщения: 60
Зарегистрирован: 23 ноя 2011, 11:59

Re: Как подключить свой Dialog в присоединенной форме

Сообщение solkalin »

Спасибо!
Ответить