PickButton
Модераторы: m0p3e, edward_K, Модераторы
PickButton
Подскажите, пожалуйста, как сделать, чтоб по нажатию на pickbutton для выбора был доступен список определенных значений?
Например, содержащий данные:
"Накладные на внутреннее перемещение
Акт на оказание услуг
Накладная на отпуск в производство.. "
А далее, уже после выбора, будет открываться конкретный интерфейс, содержащий данные накладные для выбора
Например, содержащий данные:
"Накладные на внутреннее перемещение
Акт на оказание услуг
Накладная на отпуск в производство.. "
А далее, уже после выбора, будет открываться конкретный интерфейс, содержащий данные накладные для выбора
Re: PickButton
По-моему, для выбора документов есть PickDoc.vih.
-
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: PickButton
Сделать диалог, а уже от выбранного параметра в диалоге вызывать нужный Вам интерфейс.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: PickButton
в событии cmPick прописываете вызов диалога или окна(я за окно) в модальном режиме со своим переключателем, а потом уже вызов соотв. документов.
ну можно и чаго готового поискать - тот же PickDoc - там вроде по маске можно задавать какие документы выбирать.
Код: Выделить всё
cmPick:
{ case curfield of
#им_поля:
{ RunWindowModal(wnTypeDoc)
case TypeDoc of
...
end;
}
end;
}
-
- Местный житель
- Сообщения: 554
- Зарегистрирован: 17 июл 2012, 11:56
- Откуда: Республика Беларусь, г.Могилев
Re: PickButton
Здравствуйте. Возможно Вам можно использовать следующее, попроще:
Ch_ ('выбор из вариантов', ,) : [LIST 1
'Вариант1',
'Вариант2',
'Вариант3'
] Protect;
Case Ch_ of
1: {…}
2: {…}
3: {…}
End
При анализе выбора делаете присвоение типа документа. А потом при вызове интерфейса выбора документов определенного типа в качестве параметра передавать полученный тип документа.
Ch_ ('выбор из вариантов', ,) : [LIST 1
'Вариант1',
'Вариант2',
'Вариант3'
] Protect;
Case Ch_ of
1: {…}
2: {…}
3: {…}
End
При анализе выбора делаете присвоение типа документа. А потом при вызове интерфейса выбора документов определенного типа в качестве параметра передавать полученный тип документа.
Re: PickButton
Я для таких целей тользуюсь объектом F_KATDOC::ObjPickDoc. Этим:
Сначала (в cmInit, например) нужно "накидать" нужных типов документов для выбора с помощью метода AddDoc (Procedure AddDoc ( TiDk : Word); Tidk - тип документа). Получится нужный набор.
Потом в cmPick - вызов методов: PickSingle для одиночного выбора, или PickMulti - для множественного.
Удобно, и ничего не нужно выдумывать...RAJAH писал(а):По-моему, для выбора документов есть PickDoc.vih.
Сначала (в cmInit, например) нужно "накидать" нужных типов документов для выбора с помощью метода AddDoc (Procedure AddDoc ( TiDk : Word); Tidk - тип документа). Получится нужный набор.
Потом в cmPick - вызов методов: PickSingle для одиночного выбора, или PickMulti - для множественного.
Re: PickButton
Не получается вызвать процедуру - AddDoc в интерфейсе VipInterface td Implements ObjPickDoc;
пишу td.adddoc(506) например.. пишет, что нет такой функции или неверный контекст использования:(
пишу td.adddoc(506) например.. пишет, что нет такой функции или неверный контекст использования:(
Re: PickButton
Marisha_P
В таких случаях старожилы форума обычно говорят
В таких случаях старожилы форума обычно говорят
Хотя, подозреваю, что должно быть примерно так:Код в студию!
Код: Выделить всё
...
VipInterface VipPickDoc implements ObjPickDoc
...
var
td: VipPickDoc;
...
Re: PickButton
Код: Выделить всё
VipInterface VipPickDoc Implements ObjPickDoc;
Interface td;
show at (,,200,10);
var td: VipPickDoc ;
Handleevent
cmInit:{
td.AddDoc(506);
td.AddDoc(501);
td.AddDoc(508);
}
end;
end.
Код: Выделить всё
LoadVipInterface(td);
Re: PickButton
Код: Выделить всё
#include PickDoc.vih
Код: Выделить всё
VipInterface VipPickDoc Implements ObjPickDoc;
Похоже, и #define ComponentVersion понадобится.
Код: Выделить всё
cmInit :
{
LoadVipInterface(td);
td.Clear;
td.AddDoc(506);
td.AddDoc(501);
td.AddDoc(508);
...
Последний раз редактировалось RAJAH 09 дек 2014, 10:40, всего редактировалось 1 раз.
Re: PickButton
это всё помещать в одном vip файле? или в разных?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: PickButton
1. Нехорошо юзать имена переменных равные имени интерфейса . Любого!. понятнее например добавить p слева к имени объекта типа pVipPickDoc:VipPickDoc;
2. LoadVipInterface во первых мало, а не совсем понятно как вы собираетесь дальше юзать.
А чего RunInterface не устраивает? Это слегка проще - не нужно объявлять objectinterface или public функции.
3.Если вам не нужно подгружать разные фейсы на одном описании гораздо проще объявить переменную с типом не ObjectInterface а Interface как вы сами это делаете - var td: VipPickDoc ;.
4. VipInterface VipPickDoc Implements ObjPickDoc; - не стоит так делать - только #include ??????.vih - вы думаете остальные 100 строк кода там зря написаны?
5. По стандарту описание объекта в vih, сам объект в vip - иначе вы не сможете его задействовать в нескольких #include в разных фейсах(и может быть не в этом проекте). Хотя конечно можно его включить в проект отдельной строкой, но все таки обычно там включают vih. Посмотрите как сделаны стандартные vih - там куча define - это нужно для уменьшения предупреждений компиляции при повторном использовании в другом фейсе.
6. И все таки RunInterface вам будет проще.
2. LoadVipInterface во первых мало, а не совсем понятно как вы собираетесь дальше юзать.
А чего RunInterface не устраивает? Это слегка проще - не нужно объявлять objectinterface или public функции.
3.Если вам не нужно подгружать разные фейсы на одном описании гораздо проще объявить переменную с типом не ObjectInterface а Interface как вы сами это делаете - var td: VipPickDoc ;.
4. VipInterface VipPickDoc Implements ObjPickDoc; - не стоит так делать - только #include ??????.vih - вы думаете остальные 100 строк кода там зря написаны?
5. По стандарту описание объекта в vih, сам объект в vip - иначе вы не сможете его задействовать в нескольких #include в разных фейсах(и может быть не в этом проекте). Хотя конечно можно его включить в проект отдельной строкой, но все таки обычно там включают vih. Посмотрите как сделаны стандартные vih - там куча define - это нужно для уменьшения предупреждений компиляции при повторном использовании в другом фейсе.
6. И все таки RunInterface вам будет проще.
Re: PickButton
я совсем запуталась. смотрите.. у меня есть код
что я делаю неправильно?
Код: Выделить всё
.....
#define ComponentVersion
#include PickDoc.vih
.....
create view vMain
var
objdocv : iObjDoc;
objinfov : iObjInfo;
typedoc : word;
podr : string;
......
pVipPickDoc: VipPickDoc;
select
.....
Cmpick:{
//Выбор типа документов
Case Curfield Of
#typedoc:
{ RunInterface(pVipPickDoc);
pVipPickDoc.Clear;
pVipPickDoc.AddDoc(506);
pVipPickDoc.AddDoc(501);
pVipPickDoc.AddDoc(508);
}
...
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: PickButton
Угу. у меня каша полная. Толи вы сделать свой фейс и его вызывать из разных мест, толи юзать PickDoc напрямую.
Использование объекта и RunInterface разные вещи - либо вы делаете так, либо так, но не вместе.
почитайте vipprogr.chm - разберитесь что такое объект в галактике.
Использование объекта и RunInterface разные вещи - либо вы делаете так, либо так, но не вместе.
почитайте vipprogr.chm - разберитесь что такое объект в галактике.
Код: Выделить всё
Cmpick:{
//Выбор типа документов
Case Curfield Of
#typedoc:
{ // RunInterface(pVipPickDoc); уж тогда RunInterface(VipPickDoc);
pVipPickDoc.Clear;
pVipPickDoc.AddDoc(506);
pVipPickDoc.AddDoc(501);
pVipPickDoc.AddDoc(508);
var wTiDk:word;
pVipPickDoc.PickSingle('Выберите документ',wTiDk)
message(string(wTiDk)
}
Re: PickButton
Для начала я бы перенёс объявление pVipPickDoc: VipPickDoc; в переменные интерфейса. RunInterface(pVipPickDoc); - это что вообще? что хотите вызвать? переменную?!