Пункт меню "Отчеты пользователя"
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 589
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Воронеж ОАО Верофарм. Воронеж
Пункт меню "Отчеты пользователя"
Доброго времени суток!
Может кто поделится опытом как можно подключать отчеты пользователя через пункт меню "Отчеты пользователя" в модулях?
У меня на випе написан интерфейс, он считает что надо и кидает в отчет. Хочу подрубиться через этот пунктик меню. В доке по подключению написано как-то непонятно, пробовал компилить пример, сразу ошибка вылетает на их примере (константа не найдена), заменил ее на другую, модуль не видит никаких отчетов пользователя.
Если у кого получилось, подскажите, желательно по шагам с простым примером, буду очень благодарен.
P.S.
В стандартной поставке у меня есть файлы sample1-3.vip, userreport.vip, userreport.vih
Компилил их и ничего не вышло
Может кто поделится опытом как можно подключать отчеты пользователя через пункт меню "Отчеты пользователя" в модулях?
У меня на випе написан интерфейс, он считает что надо и кидает в отчет. Хочу подрубиться через этот пунктик меню. В доке по подключению написано как-то непонятно, пробовал компилить пример, сразу ошибка вылетает на их примере (константа не найдена), заменил ее на другую, модуль не видит никаких отчетов пользователя.
Если у кого получилось, подскажите, желательно по шагам с простым примером, буду очень благодарен.
P.S.
В стандартной поставке у меня есть файлы sample1-3.vip, userreport.vip, userreport.vih
Компилил их и ничего не вышло
Все чудно получается
Например
sample.vip
#include UserReport.vih
VipInterface UserReport_buhobor Implements IUserReport;
Interface UserReport_buhobor;
create view;
procedure Run;
begin
RunInterface(buhobor);
end;
function GetReportName: String;
begin
GetReportName := 'Оборотка';
end;
function GetGroupName (Level : Word) : String;
begin
GetGroupName := '';
end;
function GetPriority : Integer;
begin
GetPriority := 0;
end;
function VisibleInModule(Ind : Byte) : String;
begin
VisibleInModule := '';
case Ind of
1 : VisibleInModule := 'SKLAD';
2 : VisibleInModule := 'SKLAD2';
3 : VisibleInModule := 'MANUFACTURE';
4 : VisibleInModule := 'B_FINANS';
end;
end;
end.
buhobor - некий фейс содержащий мой отчет
Например
sample.vip
#include UserReport.vih
VipInterface UserReport_buhobor Implements IUserReport;
Interface UserReport_buhobor;
create view;
procedure Run;
begin
RunInterface(buhobor);
end;
function GetReportName: String;
begin
GetReportName := 'Оборотка';
end;
function GetGroupName (Level : Word) : String;
begin
GetGroupName := '';
end;
function GetPriority : Integer;
begin
GetPriority := 0;
end;
function VisibleInModule(Ind : Byte) : String;
begin
VisibleInModule := '';
case Ind of
1 : VisibleInModule := 'SKLAD';
2 : VisibleInModule := 'SKLAD2';
3 : VisibleInModule := 'MANUFACTURE';
4 : VisibleInModule := 'B_FINANS';
end;
end;
end.
buhobor - некий фейс содержащий мой отчет
Господа, помогите!!!
Есть отчет (т.е. vip-интерфейс с отчетом, гарантированно работающий), пытаюсь подключить через отчеты пользователя.
Сооружаю по примеру вызывающий интерфейс:
Вызываемый интерфейс:
В "отчетах пользователя" не вижу
После добавления строчки
#Component "F_UserReport" в вызываемый интерфейс при компиляции получила:
но при этом отчет в списке отчетов пользователя увидела.
Может, что репозитарием пошевелить? Компилирую все в debug.res
Извините за сумбур...
Есть отчет (т.е. vip-интерфейс с отчетом, гарантированно работающий), пытаюсь подключить через отчеты пользователя.
Сооружаю по примеру вызывающий интерфейс:
Код: Выделить всё
#include userreport.vih
VipInterface UserReport_State Implements IUserReport;
Interface UserReport_State;
create view;
!-------------------------------------------------------------------------------
// Запуск отчета на выполнение при выборе его из списка отчетов
procedure Run;
begin
RunInterface('StateChange')
end;
!-------------------------------------------------------------------------------
// Наименование отчета в списке
function GetReportName: String;
begin
GetReportName := '(с) Изменения в штатном расписании';
end;
!-------------------------------------------------------------------------------
// Наименования групп, в которые входит отчет
function GetGroupName (Level : Word) : String;
begin
GetGroupName := '';
end;
!-------------------------------------------------------------------------------
// Приоритет отчета - сортировка внутри группы выполняется сначала
// по приоритету, а затем по наименованию
function GetPriority : Integer;
begin
GetPriority := 0;
end;
!-------------------------------------------------------------------------------
// ModuleID модулей, в которых будет виден отчет
// '*' - отчет будет виден в любом модуле
function VisibleInModule(Ind : Byte) : String;
begin
VisibleInModule := '*';
end;
!-------------------------------------------------------------------------------
end.
Код: Выделить всё
Interface StateChange 'Изменения в штатном расписании' EscClose, Cyan;
show at (,,60,8);
view
...
end;
end.
После добавления строчки
#Component "F_UserReport" в вызываемый интерфейс при компиляции получила:
Код: Выделить всё
16:48:24 │ Предупреждение: Компонент F_USERREPORT не имеет ни одной таблицы в словаре, возможно ошибочно задано имя компонента (стр.2, поз.1 в SRC\StateChange.vip)
│ Interface StateChange 'Изменения в штатном расписании' EscClose, Cyan;
│ ^
16:48:30 │ Предупреждение: Не найден объект IVIPIFCIFC STATECHANGE, описывающий интерфейс вызова. Параметры вызова для STATECHANGE не проверены. (стр.23, поз.30 в SRC\STATE.VIP)
Может, что репозитарием пошевелить? Компилирую все в debug.res
Извините за сумбур...
А что за фейс 'StateChange'? Его в ресурсниках, видимо, нет (либо эти ресурсники не подключены). Первое предупреждение - фигня, так всегда при компиляции отчётов пользователя бывает. Только я обычно перед #include userreport.vih пишу
#define ComponentVersion
#ifdef ComponentVersion
#component "F_UserReport"
#endif
и, соответственно, в конце кода фейса
#undef ComponentVersion.
#define ComponentVersion
#ifdef ComponentVersion
#component "F_UserReport"
#endif
и, соответственно, в конце кода фейса
#undef ComponentVersion.
Вот ведь непонятки - вчера крутила-вертела - ничего не получалось, а сегодня решила расписать ситуацию более тщательно, перекомпилировала ресурс пару раз - и все заработало... Чудеса, да и только Спасибо всем, кто пытался понять мой сумбур!
П.с. а компилила я через проект, вот такой:
в state.vip и лежит userreport
П.с. а компилила я через проект, вот такой:
Код: Выделить всё
#make "src\*.frm"
#make "src\StateChange.vip"
#make "src\*.rtf"
#make "src\state.vip"
Вот пожалуйста
Код: Выделить всё
#include UserReport.vih
VipInterface UserReport_AnalizOst Implements IUserReport;
Interface UserReport_AnalizOst;
create view;
procedure Run;
begin
RunInterface(AnalizOst);
end;
function GetReportName: String;
begin
GetReportName := 'Анализ остатков ТМЦ';
end;
function GetGroupName (Level : Word) : String;
begin
GetGroupName := 'МатСек';
end;
function GetPriority : Integer;
begin
GetPriority := 0;
end;
function VisibleInModule(Ind : Byte) : String;
begin
VisibleInModule := '';
case Ind of
1 : VisibleInModule := 'SKLAD';
2 : VisibleInModule := 'MANUFACTURE';
end;
end;
end.
-
- Местный житель
- Сообщения: 209
- Зарегистрирован: 18 окт 2006, 17:03
- Откуда: Ростов на Дону Новочеркасск Новороссийск
- Контактная информация:
может поможет,
у меня так:
UserReport.vih
spravka.prj
у меня так:
Код: Выделить всё
#include UserReport.vih
VipInterface UserReport_spravka_otchvip1 Implements F_UserReport::IUserReport;
Interface UserReport_spravka_otchvip1;
create view;
procedure Run;
begin
runinterface('spravka_otchvip1');
end;
function GetReportName: String;
begin
GetReportName := 'Spravka ';
end;
function GetGroupName (Level : Word) : String;
begin
GetGroupName := '';
case Level of
1 : GetGroupName := 'ЋвзҐвл';
end;
end;
function GetPriority : Integer;
begin
GetPriority := 0;
end;
function VisibleInModule(Ind : Byte) : String;
begin
VisibleInModule := '';
case Ind of
1 : VisibleInModule := 'STAFFMAINMENU';
end;
end;
end.
Код: Выделить всё
#Component "F_UserReport"
#ifndef __UserReport_vih__
#define __UserReport_vih__
ObjInterface IUserReport;
procedure Run;
function GetReportName : String;
function GetGroupName (Level : Word) : String;
function GetPriority : Integer;
function VisibleInModule (Ind : Byte) : String;
end;
#end
Код: Выделить всё
#define ComponentVersion
#make "spravka_otchp.pro"
#make "doc1.rtf"
#make "podrmark.vip"
#make "spravka_otchVip.vip"
#make "vedom16_otchet.vip"