|
|
#1 |
|
Участник
|
Получение значений из диалога
Здравствуйте!
Мне нужно получить значение из одного из полей диалога после окончания его работы. Перебором всех полей диалога я нахожу это поле, но значение его всегда равно NULL. Для ясности ситуации привожу джоб. PHP код:
__________________
И почему никто меня не любит? ![]() Да, я надоедливый |
|
|
|
|
#2 |
|
Модератор
|
Без паники!
Все работает: X++: static void Job10(Args _args) { Dialog dialog; DialogField dialogFieldName; DialogField dialogFieldSex; Name name; boolean isWoman; ; dialog = new Dialog("Input your name"); dialogFieldName = dialog.addField(typeId(Name), "Введите Ваше имя"); //dialogFieldName.helpText('tst'); dialogFieldSex = dialog.addField(typeId(NoYes), "Вы женщина?"); //dialogField.helpText('tst'); if (dialog.run()) { name = dialogFieldName.value(); isWoman = dialogFieldSex.value(); } else throw error("Прервано пользователем"); info(strfmt("%1, %2",name, isWoman)); } Георгий. ПОЧЕМУ внутренняя переменная начинается с "_" ???? Изучайтк BP. Смотрите tutorials. |
|
|
|
|
#3 |
|
Участник
|
В том то и проблема, что я не могу использовать DialogField... я не знаю изначально сколько у меня будет полей. Я создаю поля динамически.
Но спасибо за участие. Насчет внутренних переменных... если я не ошибаюсь, следуя BP нужно '_' ставить только перед переменными, передаваемыми в функцию... Постараюсь в следующий раз делать правильно, в соотвтетсвии с BP.
__________________
И почему никто меня не любит? ![]() Да, я надоедливый |
|
|
|
|
#4 |
|
Участник
|
Вообще Диалог в трехровневой конфигурации состоит из клиентской и серверной части, и надеятся на то что у него есть контролы нельзя...
|
|
|
|
|
#5 |
|
Модератор
|
Цитата:
Сообщение от belugin
Вообще Диалог в трехровневой конфигурации состоит из клиентской и серверной части, и надеятся на то что у него есть контролы нельзя...
|
|
|
|
|
#6 |
|
Участник
|
Я уверен, что есть простое решение моей проблемы.
Но пока не осенило.
__________________
И почему никто меня не любит? ![]() Да, я надоедливый |
|
|
|
|
#7 |
|
Участник
|
Записывайте создаваемые объекты DialogField в массив. Потом ищите нужный в вашем массиве и смотрите его значение
|
|
|
|
| За это сообщение автора поблагодарили: Antant (1). | |
|
|
#8 |
|
Участник
|
Цитата:
Сообщение от Hezl
Записывайте создаваемые объекты DialogField в массив. Потом ищите нужный в вашем массиве и смотрите его значение
__________________
И почему никто меня не любит? ![]() Да, я надоедливый |
|
|
|
|
#9 |
|
Участник
|
Вот что у меня получилось, вариант работающий.
PHP код:
__________________
И почему никто меня не любит? ![]() Да, я надоедливый |
|
|
|
|
#10 |
|
Участник
|
Ну как-нибудь так:
Код: static void testDialog(Args _args)
{
Dialog cDialog;
DialogField dialogField;
Array arrDialogField = new Array(types::Class);
void showFields(object o,str name)
{
int i;
DialogField dField;
;
for (i=1;i<=arrDialogField.lastIndex(); i++)
{
dField = arrDialogField.value(i);
info(dField.value());
}
}
;
cDialog = new Dialog ('тестовый диалог');
dialogField = cDialog.addField(typeId(NoYes), 'тестовое поле диалога');
dialogField.helpText('tst');
arrDialogField.value(1, dialogField);
dialogField = cDialog.addField(typeId(Num), 'тестовое поле диалога');
dialogField.helpText('tst2');
arrDialogField.value(2, dialogField);
cDialog.run();
showFields(cDialog.formBuildDesign(), 'Test');
if (!cDialog.closedOk())
return;
cDialog.finalize();
}
|
|
|
|
|
#11 |
|
Участник
|
лучше List - он как раз для этого предназначен - для упорядоченных списков или Set если порядок не волнует.
|
|
|