Создание нового интерфейса
Модераторы: m0p3e, edward_K, Модераторы
Создание нового интерфейса
Доброго дня. учусь работать с интерфейсами( создание, подключение), и интерфейсами выбора периода дат или вызов каталога МЦ( RunInterface('GetMC', mc01)), я вроде разобрался как работать, а вот как создать свой, не могу понять где его создавать? я так понимаю, вместо 'GetMC' мне нужно свой интерфейс вызвать? в справке, вроде бы ничего такого не нашел...
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Re: Создание нового интерфейса
Напишите поподробнее, что вам нужно?
Re: Создание нового интерфейса
Делаю отчёт один, нужно что бы появилось окно в которое вносится стоимость тары, и дальше это введенное число используется в расчетах. как я себе это представляю: при формировании отчёта появляется интерфейс, на котором будет поле ввода, кнопка ок, ну и всё в общем. после нажатия на ок, введенное число записывается в переменную, и дальше уже используется. не знаю как сделать часть с появлением окна и записью числа в переменнуюBuddy писал(а):Напишите поподробнее, что вам нужно?
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Re: Создание нового интерфейса
Нужно описать свое окно диалога:Espada писал(а):Делаю отчёт один, нужно что бы появилось окно в которое вносится стоимость тары, и дальше это введенное число используется в расчетах. как я себе это представляю: при формировании отчёта появляется интерфейс, на котором будет поле ввода, кнопка ок, ну и всё в общем. после нажатия на ок, введенное число записывается в переменную, и дальше уже используется. не знаю как сделать часть с появлением окна и записью числа в переменнуюBuddy писал(а):Напишите поподробнее, что вам нужно?
Код: Выделить всё
pricetara dialog
fields
price :double;
buttons
cmOk,default,,'OK';
<< 'Запрос'
Введите стоимость тары
`Стоимость:` .@@@@@@@@@@@@
<. OK .>
>>
Код: Выделить всё
var taraprice:double
if RunDialog(pricetara, taraprice) = 10
{
message(taraprice)
}
Re: Создание нового интерфейса
а в *.frm отчёте работает такая функция??? не получается чётspark писал(а): Нужно описать свое окно диалога:
А потом его вызывать:
Код: Выделить всё
var taraprice:double if RunDialog(pricetara, taraprice) = 10 { message(taraprice) }
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Re: Создание нового интерфейса
Она везде работает. Что именно не получается? Пришлите текст ошибки или текст всего вашего отчета.Espada писал(а): а в *.frm отчёте работает такая функция??? не получается чёт
Re: Создание нового интерфейса
Buddy писал(а): Она везде работает. Что именно не получается? Пришлите текст ошибки или текст всего вашего отчета.
Код: Выделить всё
.function STXOGETEXTATTRIBUT(wtbl:word; attr_name:string; n_rec:comp):string;
begin
ext_attr.wtbl:=wtbl;
ext_attr.name_attr:=attr_name;
ext_attr.n_rec:=n_rec;
if (ext_attr.getfirst attrnam = tsOK and
ext_attr.getfirst attrval = tsOK
// and ext_attr.getfirst spkau = tsOk
)
// sTXOGetExtAttribut:=ext_attr.spkau.name
sTXOGetExtAttribut:=ext_attr.attrval.vstring
else sTXOGetExtAttribut:='';
end.
.fields
price
.endfields
pricetara dialog
buttons
cmOk,default,,'OK';
<< 'Запрос'
Введите стоимость тары
`Стоимость:` .@@@@@@@@@@@@
<. OK .>
>>
.begin
RunInterface('L_MCU::GetMC', Double_mc);
end.
.begin
if(Dmc.getfirst katmc = tsOk)
{
DmcName := Dmc.katmc.name + ' (н/н ' + Dmc.katmc.barkod + ')';
};
end.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Re: Создание нового интерфейса
У вас блок с диалогом должен выглядеть так:
Код: Выделить всё
pricetara dialog
fields
Price: double;
buttons
cmOk,default,,'OK';
<< 'Запрос'
Введите стоимость тары
`Стоимость:` .@@@@@@@@@@@@
<. OK .>
>>
Re: Создание нового интерфейса
Вот на примере ard-отчета:
Создаем файл dlg.vip с диалогом:
Создаем файл ard.frm с отчетом:
В проекте для сборки указываем:
Должно работать. У меня работает.
Создаем файл dlg.vip с диалогом:
Код: Выделить всё
pricetara dialog
fields
Price: double;
buttons
cmOk,default,,'OK';
<< 'Запрос'
Введите стоимость тары
`Стоимость:` .@@@@@@@@@@@@
<. OK .>
>>
Код: Выделить всё
.autoform 'TARA'
.ard
.NameInList "TARA"
.Table blank
.var
price:double
.endvar
.begin
if RunDialog(pricetara, price) = 10
{
message(price)
}
end.
.endform
Код: Выделить всё
#make "dlg.vip"
#make "ard.frm"
Должно работать. У меня работает.
Re: Создание нового интерфейса
Спасибо большое, всё заработало, не создал отдельный файлик с интерфейсом) сейчас, вроде схему понял, буду разбираться) спасибо ещё раз)spark писал(а): Должно работать. У меня работает.
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Re: Создание нового интерфейса
ещё один вопрос появился, при добавлении Create view ругается на ошибку: Ошибка: Ожидался идентификатор или ключевое словоspark писал(а): Должно работать. У меня работает.
Код: Выделить всё
pricetara dialog
create view
var
NrecMC:Comp
from katmc
where
((
NrecMC == katmc.nrec
));
fields
Price: double;
buttons
cmOk,default,,'OK';
<< 'Запрос'
Введите стоимость тары
`Стоимость:` .@@@@@@@@@@@@
<. OK .>
>>
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Re: Создание нового интерфейса
Потому что у вас перемешался код диалога и самого отчета.
Вы блок с диалогом лучше вообще в отдельный файл выделите.
В вашем случае - как-то так:
Файл pricetara.dlg
Отчет:
Вы блок с диалогом лучше вообще в отдельный файл выделите.
В вашем случае - как-то так:
Файл pricetara.dlg
Код: Выделить всё
pricetara dialog
fields
Price: double;
buttons
cmOk,default,,'OK';
<< 'Запрос'
Введите стоимость тары
`Стоимость:` .@@@@@@@@@@@@
<. OK .>
>>
Код: Выделить всё
#include pricetara.dlg
create view
var
NrecMC:Comp
from katmc
where
((
NrecMC == katmc.nrec
));
и т.д.
Re: Создание нового интерфейса
Это уже попытка использовать магию вне Хогвартса. Я конечно не могу утверждать со 100% достоверностью, но в диалогах нельзя использовать вьюхи.Espada писал(а):ещё один вопрос появился, при добавлении Create view ругается на ошибку: Ошибка: Ожидался идентификатор или ключевое словоspark писал(а): Должно работать. У меня работает.
Может подскажете, в чём может быть проблемка?)Код: Выделить всё
pricetara dialog create view var NrecMC:Comp from katmc where (( NrecMC == katmc.nrec )); fields Price: double; buttons cmOk,default,,'OK'; << 'Запрос' Введите стоимость тары `Стоимость:` .@@@@@@@@@@@@ <. OK .> >>
А зачем вам это надо? Диалоги нужны только для получения данных от пользователя. Всю логику дальнейшую нужно обрабатывать в самом интерфейсе или отчете, из которого вызывается диалог.
Если нужно что-то более сложное, то нужно использовать не диалог, а полноценный интерфейс.
Re: Создание нового интерфейса
я просто хочу сделать, что бы в этом окне было ещё поле выбора МЦ из каталога. смотрел примеры пробовал делать по образцу по образцу:Buddy писал(а):Потому что у вас перемешался код диалога и самого отчета.
Вы блок с диалогом лучше вообще в отдельный файл выделите.
В вашем случае - как-то так:
Код: Выделить всё
pricetara dialog
create view
var
NrecMC:Comp
from katmc
where
((
NrecMC == katmc.nrec
));
fields
Price: double;
katmc.name : Protect, PickButton;
buttons
cmOk,default,,'OK';
<< 'Ввод данных'
`Стоимость Тары:`.@@@@@@@@@@@@@@@@@@@@
Выберите МЦ: .@@@@@@@@@@@@@@@@@@@@
<. OK .>
>>
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!
Re: Создание нового интерфейса
я вот тоже начал думать об этом, полноценный интерфейс, это уже на подобии этого???spark писал(а): Это уже попытка использовать магию вне Хогвартса. Я конечно не могу утверждать со 100% достоверностью, но в диалогах нельзя использовать вьюхи.
А зачем вам это надо? Диалоги нужны только для получения данных от пользователя. Всю логику дальнейшую нужно обрабатывать в самом интерфейсе или отчете, из которого вызывается диалог.
Если нужно что-то более сложное, то нужно использовать не диалог, а полноценный интерфейс.
Код: Выделить всё
interface DialogTest 'Dialog Test';
show at (0,3,50,10);
create view
var
wGame : word;
wSound: word;
i : longInt;
;
screen scrButtonTest;
noTableNavigation;
buttons
cmRunDialog;
<<
<.Run Dialog.>
>>
end;
под каждым красивым павлиньим хвостом, скрывается самая обычная куриная жопа!!! так что меньше пафоса господа!!!