Страница 1 из 2

Пункт меню "Отчеты пользователя"

Добавлено: 25 апр 2006, 12:27
savov
Доброго времени суток!
Может кто поделится опытом как можно подключать отчеты пользователя через пункт меню "Отчеты пользователя" в модулях?
У меня на випе написан интерфейс, он считает что надо и кидает в отчет. Хочу подрубиться через этот пунктик меню. В доке по подключению написано как-то непонятно, пробовал компилить пример, сразу ошибка вылетает на их примере (константа не найдена), заменил ее на другую, модуль не видит никаких отчетов пользователя.
Если у кого получилось, подскажите, желательно по шагам с простым примером, буду очень благодарен.
P.S.
В стандартной поставке у меня есть файлы sample1-3.vip, userreport.vip, userreport.vih
Компилил их и ничего не вышло :(

Добавлено: 25 апр 2006, 12:30
Алексей
Альтернативный способ - Рабочее меню пользователя.

Правда по времени идёт проигрышь, частые окошечки вроде "блокировки лицензионной информации" и т.п.

Добавлено: 25 апр 2006, 12:47
oiko
Все чудно получается
Например

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 - некий фейс содержащий мой отчет

Добавлено: 25 апр 2006, 13:18
savov
Спасибо огромное! Заработало :cool:
Заковыка была с наименованием фейса и описанием

Добавлено: 20 май 2008, 19:00
Sheinina
Господа, помогите!!!
Есть отчет (т.е. 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.
В "отчетах пользователя" не вижу :cry:
После добавления строчки
#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

Извините за сумбур...

Добавлено: 21 май 2008, 10:42
RAJAH
А что за фейс 'StateChange'? Его в ресурсниках, видимо, нет (либо эти ресурсники не подключены). Первое предупреждение - фигня, так всегда при компиляции отчётов пользователя бывает. Только я обычно перед #include userreport.vih пишу
#define ComponentVersion
#ifdef ComponentVersion
#component "F_UserReport"
#endif
и, соответственно, в конце кода фейса
#undef ComponentVersion.

Добавлено: 21 май 2008, 12:33
Алексей
Sheinina вопрос то в чем? В том что параметры интерфейса не првоерены? так это потому что юзерреп компилится первыйм и в ресурсе вашего отчета ещё нет...

Добавлено: 21 май 2008, 13:06
Sheinina
Вот ведь непонятки - вчера крутила-вертела - ничего не получалось, а сегодня решила расписать ситуацию более тщательно, перекомпилировала ресурс пару раз - и все заработало... Чудеса, да и только :grin: Спасибо всем, кто пытался понять мой сумбур!
П.с. а компилила я через проект, вот такой:

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

#make "src\*.frm"
#make "src\StateChange.vip"
#make "src\*.rtf"
#make "src\state.vip"
в state.vip и лежит userreport :)

Добавлено: 24 ноя 2008, 12:57
Pasynkova
oiko сделала все по вашему примеру, компиляция прошла успешно, но в списке "Отчеты пользователя" свой отчет не вижу, а в утилитах вижу все работает.
Версия Галактики 810.

Добавлено: 24 ноя 2008, 13:28
edward_K
поищите фейс для вызова через запуск внешного интерфейса ( не забудьте только перед стартом задать vip.visibleallinterface=on). Он должен называться F_userreport::UserReport_...... Если его нет , значит скомплили неправильно. Если есть то перемудрили с VisibleInModule.

Добавлено: 24 ноя 2008, 13:52
Pasynkova
F_userreport::UserReport/...... во внешних интерфейсах есть.
Что значит перемудрили с VisibleInModule. :eek:

Добавлено: 24 ноя 2008, 14:51
edward_K
текст в студию 8)

Добавлено: 24 ноя 2008, 15:10
Pasynkova
Вот пожалуйста :smile:

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

#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. 

Добавлено: 24 ноя 2008, 15:49
edward_K
в этом бы фейсе я бы указал первой строкой
#component "F_USERREPORT"
vih иногда меняют компонентную принадлежность.
и в складе нет? ни в производстве?
и тянется из нужного ресурса?
* попробуйте.

Добавлено: 24 ноя 2008, 17:24
Gameus_
может поможет,
у меня так:

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

#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.
UserReport.vih

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

#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
spravka.prj

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

#define ComponentVersion
#make "spravka_otchp.pro"
#make "doc1.rtf"
#make "podrmark.vip"
#make "spravka_otchVip.vip"
#make "vedom16_otchet.vip"