Кнопка печати
Модераторы: m0p3e, edward_K, Модераторы
Кнопка печати
У меня сразу несколько вопросов по этому поводу, так как раньше с этим не сталкивался.
Как повесить кнопку печати в свой(не alter) интерфейс? Может какой-нибудь toolbar создать? И как потом с помощью кнопки вызвать списки отчётов?
Как повесить кнопку печати в свой(не alter) интерфейс? Может какой-нибудь toolbar создать? И как потом с помощью кнопки вызвать списки отчётов?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Кнопка печати
поиск рулит
например
http://www.tyumbit.ru/gal_forum/viewtop ... bar#p40639
там готовый пример с вопросами. Можете например посмотреть интерактивный отчет во ФРО - вам так надо? Или же вверху кнопку?
например
http://www.tyumbit.ru/gal_forum/viewtop ... bar#p40639
там готовый пример с вопросами. Можете например посмотреть интерактивный отчет во ФРО - вам так надо? Или же вверху кнопку?
Re: Кнопка печати
Пример по ссылке кривоват. Убрал лишнее. Скомпилил. И что в итоге? Фейс пуст. Даже окно не появилось. Как будто ничего не запускал
Почему нет toolbar'а?
Код: Выделить всё
#commands start at 7800
const
cmGoToForm = 7701;
cmGoToFilter = 7702;
cmGoToReport = 7703;
end;
bmp1 bitmap "Заявки.bmp"
bmp2 bitmap "Фильтры.bmp"
bmp3 bitmap "Отчеты.bmp"
toolBar ZyavkaToolBar {
button1 = cmGoToForm, bmp1,"ЗАЯВКИ";
button2 = cmGoToFilter, bmp2, "ФИЛЬТРЫ";
button3 = cmGoToReport, bmp3, "ОТЧЕТЫ";
};
interface toolbars 'Заявки' (,,sci3InsPMcIns), cyan;
show at (,,100,30);
toolbar ZyavkaToolBar;
var ZyavkaToolBar : longInt;
create view;
HandleEvent
cmInit : {
ZyavkaToolBar := LoadToolBarEx ('ZyavkaToolBar');
}
cmGoToFilter : {
message('1');
}
cmGoToForm : {
message('2');
}
cmGoToReport : {
message('3');
}
end;
end.
Re: Кнопка печати
Сделал так
Появился toolbar с 3 кнопками "Fx". Откуда можно выдрать стандартную бмпэшку кнопки печати, и, как или куда кидать свои бмпэшки?
Код: Выделить всё
const
cmGoToForm = 7701;
cmGoToFilter = 7702;
cmGoToReport = 7703;
end;
bmp1 bitmap "Заявки.bmp"
bmp2 bitmap "Фильтры.bmp"
bmp3 bitmap "Отчеты.bmp"
toolBar ZyavkaToolBar {
button1 = cmGoToForm, bmp1,"ЗАЯВКИ";
button2 = cmGoToFilter, bmp2, "ФИЛЬТРЫ";
button3 = cmGoToReport, bmp3, "ОТЧЕТЫ";
};
interface toolbars 'Заявки'; //(,,sci3InsPMcIns), cyan;
show at (,,,);
toolbar ZyavkaToolBar;
screen scTB;
show at (,,40,15);
noTableNavigation;
<<
Тест инструментальной панели_c_тюмбит
>>
end;
//var ZyavkaToolBar : longInt;
create view;
HandleEvent
cmInit : {
// ZyavkaToolBar := LoadToolBarEx ('ZyavkaToolBar');
}
cmGoToFilter : {
message('1!');
}
cmGoToForm : {
message('2!');
}
cmGoToReport : {
message('3');
}
end;
end.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Кнопка печати
Например так
но нужно знать какое событие кто подымает
или так
BMP собираете тем же vip, свой не делал - до сих пор обходился стандартными.
Код: Выделить всё
ToolBar
// F_Common::tbPlansNo ,
F_BuhRep::tbChangePeriod
, F_BuhRep::tbRefresh
, F_Common::tbBuhCalc
// , F_BuhRep::tbRunReport
, F_BuhRep::tbRunHierAn
, F_Common::tbPrintDoc
;
или так
Код: Выделить всё
ToolBar tbSearch {
btSearch =
{
Command=cmSearch;
BitMap=bmpSearch;
Help='Поиск позиции';
BroadCast=False;
};};
-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Кнопка печати
Заходите в конфигуратор интерфейса, помещаете курсор на кнопку, например, ищете свойство Icon и в выпадающем списке ищете нужный битмап. Потом просто берете его имя и используете в своих наработках.Откуда можно выдрать стандартную бмпэшку кнопки печати
Re: Кнопка печати
Сделал так
edward_K, сделал так, всё равно ничего не меняется, всё время эти буквы Fx. Что я не так делаю?
Не нашёл ничего связанного с toolbar в конфиге.Vik писал(а):Заходите в конфигуратор интерфейса, помещаете курсор на кнопку, например, ищете свойство Icon и в выпадающем списке ищете нужный битмап. Потом просто берете его имя и используете в своих наработках.Откуда можно выдрать стандартную бмпэшку кнопки печати
edward_K, сделал так, всё равно ничего не меняется, всё время эти буквы Fx. Что я не так делаю?
Код: Выделить всё
const
cmBt01 = 7704;
cmSearch =7707;
end;
toolBar tbC0 {
button1 = cmBt01, F_Common::tbPrintDoc, 'Кнопка 1 компонента C_C0',false;
};
ToolBar tbSearch {
btSearch =
{
Command=cmSearch;
BitMap=bmpSearch;
Help='Поиск позиции';
BroadCast=False;
};};
interface ToolBarTest;
toolbar tbC0, tbSearch;
screen scTB;
show at (,,40,15);
noTableNavigation;
<<
Тест инструментальной панели
>>
end;
HandleEvent
cmBt01: {
Message ('1');
}
cmSearch:
{
message('2');
}
end;
end.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Кнопка печати
я писал
, F_Common::tbPrintDoc
событие cmPrintDoc
, F_Common::tbPrintDoc
событие cmPrintDoc
Re: Кнопка печати
Если заменить cmBt01 на cmPrintDoc, меняется название константы, на которое срабатывает событие при нажатие на кнопку toolbar'a
А сделал так - ошибка.
Вылазит ошибка: Нельзя использовать интрументальную панель "tbPrintDoc" вне интерфейса.
Может чего-нибудь нужно подключить, может компонент F_Common?
А сделал так - ошибка.
Код: Выделить всё
#include galnet.ccm;
#include galnet.csc;
end;
const
cmBt01 = 7704;
cmSearch =7707;
end;
toolbar
F_Common::tbPrintDoc;
interface ToolBarTest(,,Sci178Esc);
toolbar;
screen scTB;
show at (,,40,15);
noTableNavigation;
<<
Тест инструментальной панели
>>
end;
HandleEvent
cmPrintDoc:
{
message('print');
}
end;
end.
Вылазит ошибка: Нельзя использовать интрументальную панель "tbPrintDoc" вне интерфейса.
Может чего-нибудь нужно подключить, может компонент F_Common?
-
- Местный житель
- Сообщения: 370
- Зарегистрирован: 28 сен 2006, 15:43
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Кнопка печати
Так зачем вы тулбар указали за пределами интерфейса? Вроде ошибка говорит сама за себя)
Код: Выделить всё
interface ToolBarTest(,,Sci178Esc);
toolbar F_Common::tbPrintDoc;
.......
Re: Кнопка печати
Спс, Vik,помогло
Re: Кнопка печати
Кстати да, при компиляции своих бмп и сборке тулбара получаются значки с FxBlazeBio писал(а): Появился toolbar с 3 кнопками "Fx".
если не находит объявленные BitMap
т.е. при компиляции BitMap желательно так же указывать компонентную принадлежность, тогда все будет нормально
Re: Кнопка печати
Добавляю кнопку печати в интерфейс, не реагирует на событие cmPrintDoc. Сперва ругалась на него, потом добавил в константы и ничего не происходит при нажатии.
Код: Выделить всё
!#include %src%\make\vipInterface.h;
!#include %src%\src\GetKau.vih
interface Normzapas 'Нормы страхового запаса';
!#include %src%\src\GetKau.var
show at (,,92,25);
const
cmPrintDoc = 20000;
end;
var
nr,mcnrec,katednrec,katpodrnrec,linenrec,formatnrec,katstannrec,ctitle,titlenrec,specnrec: comp;
pptitlenrec,unitm:comp;
// titlenrec:comp;
wkl,grant_s, check_del, checkspecif,check_screen:boolean;
res,check_i : word;
nmc:string;
pdate, pbdate, pedate : date;
statusnnrec:comp;
UnMea,plancopy:string;
somewindow:longint;
n:longint;
begindate,enddate:date;
sort1,teh_poteri,dek1,dek2,dek3,summ_plan,poludek1,poludek2,poludek3,summ_polu:double;
sum_gresbordur,gresbordur1,gresbordur2,gresbordur3:double;
sum_vstavka,vstavka1,vstavka2,vstavka3:double;
maxi,maxs:word;
butpick:longInt;
nomer_plana,formatname:string;
linia_name,podrasd,titlenpp:string;
status_plana,old_status,old_linia :comp;
create view normz
var status,linia_filter,grup_filter,format_filter, nomer_plana: word;
x:integer;
fldselect:longint;
linia,gruppa,etalon,format,titlenrec,specifnrec,specifnrec2,specifnrec3, pmc:comp;
(Vsego,meash)
as select katpodr.name,normzapas.npp, *
from normzapas, katpodr,katmc, x$users, katpodr katpodr_2, katmc katmc_2
where(( normzapas.cpodrazd==katpodr.nrec
and normzapas.cmc==katmc.nrec
and normzapas.atl_owner==x$users.atl_nrec
and katpodrnrec == katpodr_2.nrec
and pmc == katmc_2.nrec));
window NormCorrect 'Редактирование норм';
show at(,,,28);
toolbar F_Common::tbPrintDoc;
screen sCornormzapas(,,SciAqaSwitchItemName);
show at (,,,10);
table katpodr;
//table pptitle;
bevel be1 {1,0,110,10,bsRaised, bsFrame};
fields
normzapas.pdate :noprotect;
normzapas.pbdate:noprotect;
normzapas.pedate:noprotect;
normzapas.npp:noprotect,noPickButton; //:noprotect; //(,,sciAQACancel1)
katpodr.name :pickButton, protect;
<<
Дата Начало действия Конец действия
.@@@@@@@@@ .@@@@@@@@@ .@@@@@@@@@
Номер Структурное подразделение
.@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>>
end;
browse bCornormzapas(,,Sci13478Esc )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
show at (,11,,22)
table katmc;
fields
katmc.name 'Наименование МЦ' : [20], pickButton;
normzapas.kol 'Количество':[5,'666.88'],noprotect,noPickButton;
end;
end;
handleEvent
cmInit:
{
! message('cminit2');
RescanPanel(Scornormzapas);
Rescanpanel(#normzapas);
}
cmPick:
{
Updatetable();
case CurField of
#katpodr.name:
{
katpodrnrec:=normzapas.cpodrazd;
res:=RunInterface('Z_KATPODR::GETANYPODR',katpodrnrec);
normzapas.cpodrazd:=katpodrnrec
update current normzapas;
if getfirst katpodr where((normzapas.cpodrazd==katpodr.nrec))=tsOk
{
}
RescanPanel(#normzapas);
}
#katmc.name:
{
cmc := normzapas.cmc;
res := runinterface('iGetKau.GetCodeKau', pmc);
normzapas.cmc := pmc;
! normzapas.kol := tmppick.kol;
update current normzapas;
if getfirst katmc where((normzapas.cmc==katmc.nrec))=tsOk
{
}
RescanPanel(#normzapas);
}
end;
}
cmCheckField : update current normzapas;
cmCancel:
{
}
cmPrintDoc:
{
message ('Печать!!!');
! titlenrec:=pptitle.atl_nrec;
UpdateTable();
res:=RunInterface('ireport',titlenrec);
}
cmClose:
{
CloseWindow(cmDefault);
}
cmDefault:
{
PutCommand(cmCheckField);
! message('cmdefault2');
runwindowmodal(NormCorrect);
Rescanpanel(#normzapas);
}
cmInsert:
{
! message('cminsert1');
! titlenrec:=normzapas.atl_nrec;
! maxs:=normzapas.npp;
!! specnrec:=normzapas.npp;
!! _loop normzapas where ((titlenrec==normzapas.atl_nrec))
!! {
! if (maxs<normzapas.npp) or (maxs=normzapas.npp)
! {
! message('cminsert2');
! normzapas.npp:=normzapas.npp+1;
! update current normzapas;
! }
!// maxs:=maxs+1;
!! }
! maxs:=maxs+1;
}
cmDelete:
{
}
cmDone:
{
! message('cmdone2');
rescanpanel(#normzapas);
}
end;
browse bnormzapas(,,Sci178EnEsc)
table normzapas;
fields
normzapas.pdate 'Дата' : [15] , protect, noAutoSize;
normzapas.npp 'Номер' : [25], protect, noAutoSize;
katpodr.name 'Подразделение' : [25] , protect, noAutoSize;
x$users.xu$fullname 'Создатель':[20],protect,noAutoSize;
end;
//end;
tableevent table normzapas
cmSetDefault: {
normzapas.pdate:=Cur_Date();
normzapas.cpodrazd:=0;
normzapas.npp := (normzapas.npp)+1;
SetModified(true);
UpDateTableWithInserted
PutCommand(cmDefault);
}
cmUpdateRecord :{ //if grant_s=false
//{
update current normzapas;
//}
}
cmInsertRecord :{
insert current normzapas;
UpDatePanels();
}
cmDeleteRecord :
{
if Message('Удалить нормы?', yesButton + noButton) = cmYes
{
Delete Current normzapas;
}
}
cmCheckRecord:
{
MakeValid(#normzapas);
if isvalid(#normzapas)
{
update current normzapas;
}
if isnew
{
Putcommand(cmInsertRecord);
}
}
cmCheckField:
{
! message('dfsdf');
updatetable;
SetModified(true);
case CurField of
#normzapas.pbdate:
{
update current normzapas;
RescanPanel(#normzapas);
}
#normzapas.pedate:
{
update current normzapas;
RescanPanel(#normzapas);
}
#normzapas.pdate:
{
update current normzapas;
RescanPanel(#normzapas);
}
#normzapas.npp:
{
update current normzapas;
RescanPanel(#normzapas);
}
end;
}
end;
end.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Кнопка печати
А с чего вы взяли что эта константа 20000? Надо искать в папке inc - если рас паковать все архивы в папке frm галактики то получите их 2 - установочная и по патчах
Re: Кнопка печати
Ну да, это константа 3440. Все равно ничего не происходит при нажатии:
Код: Выделить всё
!#include %src%\make\vipInterface.h;
!#include %src%\src\GetKau.vih
!#include %src%\src\Galnet.ccm;
interface Normzapas 'Нормы страхового запаса';
!#include %src%\src\GetKau.var
show at (,,92,25);
const
cmPrintDoc = 3440;
end;
var
nr,mcnrec,katednrec,katpodrnrec,linenrec,formatnrec,katstannrec,ctitle,titlenrec,specnrec: comp;
pptitlenrec,unitm:comp;
// titlenrec:comp;
wkl,grant_s, check_del, checkspecif,check_screen:boolean;
res,check_i : word;
nmc:string;
pdate, pbdate, pedate : date;
statusnnrec:comp;
UnMea,plancopy:string;
somewindow:longint;
n:longint;
begindate,enddate:date;
sort1,teh_poteri,dek1,dek2,dek3,summ_plan,poludek1,poludek2,poludek3,summ_polu:double;
sum_gresbordur,gresbordur1,gresbordur2,gresbordur3:double;
sum_vstavka,vstavka1,vstavka2,vstavka3:double;
maxi,maxs:word;
butpick:longInt;
nomer_plana,formatname:string;
linia_name,podrasd,titlenpp:string;
status_plana,old_status,old_linia :comp;
create view normz
var status,linia_filter,grup_filter,format_filter, nomer_plana: word;
x:integer;
fldselect:longint;
linia,gruppa,etalon,format,titlenrec,specifnrec,specifnrec2,specifnrec3, pmc:comp;
(Vsego,meash)
as select katpodr.name,normzapas.npp, *
from normzapas, katpodr,katmc, x$users, katpodr katpodr_2, katmc katmc_2
where(( normzapas.cpodrazd==katpodr.nrec
and normzapas.cmc==katmc.nrec
and normzapas.atl_owner==x$users.atl_nrec
and katpodrnrec == katpodr_2.nrec
and pmc == katmc_2.nrec));
window NormCorrect 'Редактирование норм';
show at(,,,28);
toolbar F_Common::tbPrintDoc;
screen sCornormzapas(,,SciAqaSwitchItemName);
show at (,,,10);
table katpodr;
//table pptitle;
bevel be1 {1,0,110,10,bsRaised, bsFrame};
fields
normzapas.pdate :noprotect;
normzapas.pbdate:noprotect;
normzapas.pedate:noprotect;
normzapas.npp:noprotect,noPickButton; //:noprotect; //(,,sciAQACancel1)
katpodr.name :pickButton, protect;
<<
Дата Начало действия Конец действия
.@@@@@@@@@ .@@@@@@@@@ .@@@@@@@@@
Номер Структурное подразделение
.@@@@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>>
end;
browse bCornormzapas(,,Sci13478Esc )//F1,F4,F7,F8,Esc//(,,sci178EnEsc)
show at (,11,,22)
table katmc;
fields
katmc.name 'Наименование МЦ' : [20], pickButton;
normzapas.kol 'Количество':[5,'666.88'],noprotect,noPickButton;
end;
end;
handleEvent
cmInit:
{
! message('cminit2');
RescanPanel(Scornormzapas);
Rescanpanel(#normzapas);
}
cmPick:
{
Updatetable();
case CurField of
#katpodr.name:
{
katpodrnrec:=normzapas.cpodrazd;
res:=RunInterface('Z_KATPODR::GETANYPODR',katpodrnrec);
normzapas.cpodrazd:=katpodrnrec
update current normzapas;
if getfirst katpodr where((normzapas.cpodrazd==katpodr.nrec))=tsOk
{
}
RescanPanel(#normzapas);
}
#katmc.name:
{
cmc := normzapas.cmc;
res := runinterface('iGetKau.GetCodeKau', pmc);
normzapas.cmc := pmc;
! normzapas.kol := tmppick.kol;
update current normzapas;
if getfirst katmc where((normzapas.cmc==katmc.nrec))=tsOk
{
}
RescanPanel(#normzapas);
}
end;
}
cmCheckField : update current normzapas;
cmCancel:
{
}
cmPrintDoc:
{
message ('Печать!!!');
! titlenrec:=pptitle.atl_nrec;
UpdateTable();
res:=RunInterface('ireport',titlenrec);
}
cmClose:
{
CloseWindow(cmDefault);
}
cmDefault:
{
PutCommand(cmCheckField);
! message('cmdefault2');
runwindowmodal(NormCorrect);
Rescanpanel(#normzapas);
}
cmInsert:
{
! message('cminsert1');
! titlenrec:=normzapas.atl_nrec;
! maxs:=normzapas.npp;
!! specnrec:=normzapas.npp;
!! _loop normzapas where ((titlenrec==normzapas.atl_nrec))
!! {
! if (maxs<normzapas.npp) or (maxs=normzapas.npp)
! {
! message('cminsert2');
! normzapas.npp:=normzapas.npp+1;
! update current normzapas;
! }
!// maxs:=maxs+1;
!! }
! maxs:=maxs+1;
}
cmDelete:
{
}
cmDone:
{
! message('cmdone2');
rescanpanel(#normzapas);
}
end;
browse bnormzapas(,,Sci178EnEsc)
table normzapas;
fields
normzapas.pdate 'Дата' : [15] , protect, noAutoSize;
normzapas.npp 'Номер' : [25], protect, noAutoSize;
katpodr.name 'Подразделение' : [25] , protect, noAutoSize;
x$users.xu$fullname 'Создатель':[20],protect,noAutoSize;
end;
//end;
tableevent table normzapas
cmSetDefault: {
normzapas.pdate:=Cur_Date();
normzapas.cpodrazd:=0;
normzapas.npp := (normzapas.npp)+1;
SetModified(true);
UpDateTableWithInserted
PutCommand(cmDefault);
}
cmUpdateRecord :{ //if grant_s=false
//{
update current normzapas;
//}
}
cmInsertRecord :{
insert current normzapas;
UpDatePanels();
}
cmDeleteRecord :
{
if Message('Удалить нормы?', yesButton + noButton) = cmYes
{
Delete Current normzapas;
}
}
cmCheckRecord:
{
MakeValid(#normzapas);
if isvalid(#normzapas)
{
update current normzapas;
}
if isnew
{
Putcommand(cmInsertRecord);
}
}
cmCheckField:
{
! message('dfsdf');
updatetable;
SetModified(true);
case CurField of
#normzapas.pbdate:
{
update current normzapas;
RescanPanel(#normzapas);
}
#normzapas.pedate:
{
update current normzapas;
RescanPanel(#normzapas);
}
#normzapas.pdate:
{
update current normzapas;
RescanPanel(#normzapas);
}
#normzapas.npp:
{
update current normzapas;
RescanPanel(#normzapas);
}
end;
}
end;
end.