|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov AndreyДальнейшее нежелание обсуждать смысл приведенных формул показывает, что, по всей видимости, "тривиальный язык" не так уж тривиален. В формах использую любые выражения, допустимые в SQL, от тривиальных до довольно сложных. Но в любом случае это выражение вычисляется в уже готовом контексте, что хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 12:30 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andrey Кстати отмечу, что в первом классе школы две параллельные черточки означают отнюдь не присваивание, а равенство двeх выражений. А для присваивания такой значок используется в некоторых языках программирования, да и то не во всех. Это так к слову. Просто семантику даже простейших вещей надо зафиксировать и, собственно, набор таких семантических правил (вместе с лексическими и синтаксическими) языком (в программировании) и назыается. глубоко копаете и основательно. Давайте для начала с элементарными вещами разберемся, а потом уже расскажите про семантику. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 12:33 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
iscrafmвсе действительно очень сложно. Редактор поля для выбора товара вызывает справочник, в котором есть поле с ценой этого товара (PRICE). Эта цена присваивается значению поля обсуждаемой формы, как вы правильно заметили "при выборе товара в одном поле формы" То, что в формулах, описываемых в контексте одной формы можно обращаться к полям других форм кажется мне весьма странным. Каким же образом "универсальная форма" догадывается, что поле PRICE надо искать именно в форме справочника товаров? (кстати, откуда уверенность, что такое поле там есть?). Или предполагается, что имена всех полей глобально-уникальны? И поле PRICE может существовать только в одной-единственной форме? А если формы для справочника товаров нет и все то же самое должно происходить просто при ручном вводе кода товара? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 12:36 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov AndreyКаким же образом "универсальная форма" догадывается, что поле PRICE надо искать именно в форме справочника товаров? (кстати, откуда уверенность, что такое поле там есть?). если формула "привязана" к событию выбора из справочника товаров, то догадаться действительно тяжело. А при написании формулы посмотреть, что поле такое есть вообще неразрешимая задача. Bogdanov AndreyА если формы для справочника товаров нет и все то же самое должно происходить просто при ручном вводе кода товара? а если этого нет, то нет и ... Bogdanov Andreyпри выборе товара в одном поле формы... хотите и об этом поговорить? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 12:46 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
iscrafmесли формула "привязана" к событию выбора Так значит еще существует и "привязка к событиям"? То есть просто "декларативными формулами" уже не обойтись? Надо еще их и к событию привязывать? То есть отличий от разработки в любом другом IDE вообще не наблюдается. Я-то думал, что вам действительно удалось где-то что-то сделать более простым. Что ж вы сразу-то молчали. В рамках действительно "декларативного описания" не должно было бы быть никаких событий. Мы просто должны декларирировать то, что поле формы, показывающее цену равно цене. Я так надеялся, что у вас есть реальные мысли о том, как реализовать такое описание. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 12:58 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andrey, например, для поля формы в качестве редактора назначается справочник. При выборе значения из справочника выполняются соответствующие назначения. Самой форме не нужно ни о чем догадываться самостоятельно. Контент определен, есть левая часть формулы, которая содержит поле формы, есть правая часть формулы, которая содержит поле назначенного справочника. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 12:58 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andrey В рамках действительно "декларативного описания" не должно было бы быть никаких событий. Мы просто должны декларирировать то, что поле формы, показывающее цену равно цене. Я так надеялся, что у вас есть реальные мысли о том, как реализовать такое описание. есть не только реальные мысли, есть и реальная реализация. Мы просто декларируем, что "поле формы, показывающее цену равно цене" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 13:01 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
iscrafmесть не только реальные мысли, есть и реальная реализация. Мы просто декларируем, что "поле формы, показывающее цену равно цене"То есть про привязку к событию вы просто так ляпнули? И о том, что производится "присваивание" тоже? Из того, что написано в трех ваших предыдущих постах следует, что описание звучит следующим образом: при возникновении события "выбор товара" присвоить значению поля "ItemPrice" одной формы значение поля "Price" другой формы. Из этого совсем не следует, что указанное равенство будет выполняться всегда - существует куча других событий, которые могут изменить входящие в формулу компоненты. Ничего нового "декларативного" в вашей реализации я пока не наблюдаю. Примерно также работают куча других сред. Может быть что-то у вас сделано немного более удобно, что-то менее удобно. Самому мне с вашей средой работать не приходилось - точно судить не возьмусь. Кстати, еще немного про контекст идентификаторов. На вашей картинке есть замечательное равенство pqty=pqty. По всей видимости, оно означает, что из значения поля pqty одной формы надо переложить значение в поле pqty другой формы. А если там же написать присваивание xxx=pqty*yyy, то какое из двух полей pqty будет использоваться? И почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 13:16 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andreyiscrafmесть не только реальные мысли, есть и реальная реализация. Мы просто декларируем, что "поле формы, показывающее цену равно цене"То есть про привязку к событию вы просто так ляпнули? И о том, что производится "присваивание" тоже? Из того, что написано в трех ваших предыдущих постах следует, что описание звучит следующим образом: при возникновении события "выбор товара" присвоить значению поля "ItemPrice" одной формы значение поля "Price" другой формы. Из этого совсем не следует, что указанное равенство будет выполняться всегда - существует куча других событий, которые могут изменить входящие в формулу компоненты. Bogdanov Andreyпри выборе товара в одном поле формы... с кем я разговариваю. Флудо-робот не настроенный какой-то? Устал уже копировать в n-й раз условие задачи. Bogdanov AndreyКстати, еще немного про контекст идентификаторов. На вашей картинке есть замечательное равенство pqty=pqty. По всей видимости, оно означает, что из значения поля pqty одной формы надо переложить значение в поле pqty другой формы. А если там же написать присваивание xxx=pqty*yyy, то какое из двух полей pqty будет использоваться? И почему? в зависимости от контента. При выборе из справочника он один, при редактировании другими способами - другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 13:25 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
iscrafmBogdanov Andreyпри выборе товара в одном поле формы... с кем я разговариваю. Флудо-робот не настроенный какой-то? Устал уже копировать в n-й раз условие задачи.А вы кроме первого сообщения что-то пробовали читать? Для тупых могу еще раз повторить: Описание действий, выполняемых программой при наступлении тех или иных событий декларативным программированием не является, так как описывает не результат, а способ его достижения. Я не сомневаюсь в том, что задачу реакции на события в искре решить удалось. Но это не является ноу-хау и для меня интереса не представляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 14:00 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andrey, так быстро аргументы закончились? авторОписание действий, выполняемых программой при наступлении тех или иных событий декларативным программированием не является, так как описывает не результат, а способ его достижения это, пожалуй, в цитатник. Необычное определение декларативного программирования. WPF с его декларациями отдыхает. p.s. Искра то здесь причем? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 14:14 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
iscrafmтак быстро аргументы закончились?Аргументы чего? Я интересуюсь новинками. Сначала вы сказали, что язык вам не нужен. Мне очень интерсно, если удается описать что-то без языка. Но оказалось, что язык все-таки нужен. Интерес упал. Вы сказали, что используете декларативное описание. Меня декларативное описание заинтересовало. Но потом оказалось что вы используете "события", "присваивания" и т.п. Я не спорю - это все работает. Но это не более чем общепринятый и ставший уже традиционным подход к разработке. И это меня не интересует. iscrafmавторОписание действий, выполняемых программой при наступлении тех или иных событий декларативным программированием не является, так как описывает не результат, а способ его достижения это, пожалуй, в цитатник. Необычное определение декларативного программирования. WPF с его декларациями отдыхает.Да, в цитатник занесите. Только ссылку не на меня, а на википедию поставьте. Мне чужого не надо. Ну и, чтобы не соврать, вот точная цитата из википедии: программа «декларативна», если она описывает каково́ нечто, а не как его создать. Вы можете трактовать термин по другому - ради бога. Меня интересует не термин, а подоплека. iscrafmp.s. Искра то здесь причем?Ну вы утверждали, что у вас есть "реальная реализация". Я подумал, что речь об искре. Если нет, то извиняюсь - не прав. Можете вместо слова "искра" подставить нужное. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 14:27 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
В информатике, под декларативным программированием понимается парадигма программирования, которая выражает логику вычисления без описания его последовательности. Декларация описывает то, что программа должна выполнить, а не то, как достигается выполнение. Это контрастирует с императивным программированием, которое требует четко описанного алгоритма. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 14:28 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov AndreyМне очень интерсно, если удается описать что-то без языка . Но оказалось, что язык все-таки нужен. Интерес упал. понимаю. Описать без языка это нонсенс. Хотя-бы по-русски нужно уметь, а уж формулу написать - это не камильфо. Bogdanov AndreyВы сказали, что используете декларативное описание. Меня декларативное описание заинтересовало. Но потом оказалось что вы используете "события", "присваивания" и т.п. Я не спорю - это все работает. Но это не более чем общепринятый и ставший уже традиционным подход к разработке. прокол серьезный конечно. Присвоить значение без присваивания, конечно вершина инженерной мысли. Как то упустил. программа «декларативна», если она описывает каково́ нечто, а не как его создать. Вы так и не поняли, что действительно описывается "каково́ нечто, а не как его создать". Как "создать" знает то, что называется в этом топике "универсальная форма", которая интерпретирует декларативное описание и создает форму. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 14:42 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
iscrafmпонимаю. Описать без языка это нонсенс. Хотя-бы по-русски нужно уметь, а уж формулу написать - это не камильфо.Жаль, что вы не понимали этого раньше и грозились обойтись без языка. Не потратили бы трех страниц. iscrafmВы так и не поняли, что действительно описывается "каково́ нечто, а не как его создать". Как "создать" знает то, что называется в этом топике "универсальная форма", которая интерпретирует декларативное описание и создает форму.С моей точки зрения, в нашем утрированном примере описание "каково" означает, что описывается тот факт, что поле отображает цену. Без указания того, какими операциями это достигается. То есть поле такого, что отображает цену. В вашем же описании явное описание последовательности выполнения шагов - после выбора одного значения присвой другое. В вашем понимании любое программирование будет декларативным. Например, конструкция Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 15:13 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Bogdanov Andrey В вашем понимании любое программирование будет декларативным. Например, конструкция Код: plaintext
Тут что то выдраное из контекста. Не ясно, что вообще декларируется. Декларация скорее должна выглядеть так: Код: plaintext
Причём это не формула расчёта одного значения из другого (так при result=3 значение a может быть любым кроме 1). А скорее утверждение, что в результате расчёта значений a и result данный предикат должен быть истиным. Причём даже такая конструкция не является декларативной: Код: plaintext
поскольку тут мы в выражении определили порядок вычисления и применили алгоритмический оператор присваивания. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 15:43 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
mcureenabПричём даже такая конструкция не является декларативной: Код: plaintext
поскольку тут мы в выражении определили порядок вычисления и применили алгоритмический оператор присваивания.Именно об этом я и пишу Валерию. Он же считает, что оператор присиваивания декларативности не помеха. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 15:49 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Про автогенерируемые формы здесь еще что-нибудь будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 16:28 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
ddddddddddПро автогенерируемые формы здесь еще что-нибудь будет? таки да, много флуда не по теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 17:48 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
"универсальной формы" конечно же быть не может. тут Bogdanov Andrey прав. Надо описание, и тут все становится очень похожим на обычный дизайнер форм. Но есть еще плюс в генерации форм на лету - можно вносить изменения в создаваемую форму (добавлять, скрывать элементы). Например - есть тиражная система по учету ТМЦ, внедрена 100 раз. Но вот 101 клиенту нужно добавить к характеристикам ТМЦ что-то уникальное (пусть содержание спирта в косметике). Решение - создадим в таблице БД соответствующее поле, а в момент генерации формы выполним определенный скрипт и добавим его на форму. Все это - не меняя программы (которая логики не содержит, а только формы собирает), и не меняя тиражируемого описания нашей супертиражной :) системы. А для реализации построения экрана на ходу хорошо подходит библиотека QT: там используются менеджеры размещения - layout, которые сами размещают элементы управления в окне ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 20:48 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
vill_agerА для реализации построения экрана на ходу хорошо подходит библиотека QT: там используются менеджеры размещения - layout, которые сами размещают элементы управления в окне Лайот не панацея - он "расположением" не занимается. Может только тупо растянуть или сжать виджет уже размещенный в нужном месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 21:33 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
vill_ager"универсальной формы" конечно же быть не может. тут Bogdanov Andrey прав. Надо описание, и тут все становится очень похожим на обычный дизайнер форм. Но есть еще плюс в генерации форм на лету - можно вносить изменения в создаваемую форму (добавлять, скрывать элементы). А для реализации построения экрана на ходу хорошо подходит библиотека QT: там используются менеджеры размещения - layout, которые сами размещают элементы управления в окне XAML еще лучше. С ним никакие "универсальные формы" не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 22:36 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
trdm_Лайот не панацея - он "расположением" не занимается. Может только тупо растянуть или сжать виджет уже размещенный в нужном месте. это так. Но на форме можно разместить несколько разных layout, в т.ч. и вложенных. Нужно только в описании указать, то такие-то элементы должны находится в таком-то layout-е в таком-то порядке. И тогда экран приобретет вид "руками нарисованного" но и просто "тупо растянуть или сжать виджет" - уже полезно - можно хотя бы шрифты побольше установить 2 Не QT XAML - это же еще один язык описание форм? что там за магия? а то я никогда не сталкивался с ним ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 23:18 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
vill_agerXAML - это же еще один язык описание форм? что там за магия? а то я никогда не сталкивался с ним Да, язык описания форм в WPF. Сполошная декларативность, интерактивность, полная независимость данных от визуальной части и наоборот. Разработку можно вести даже без готовых форм ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2010, 23:44 |
|
Генераторы форм vs Runtime создание формы
|
|||
---|---|---|---|
#18+
Не QTполная независимость данных от визуальной части и наоборот а в чем смысл? форма (например, редактирования записи в таблице БД) предполагает знание структуры БД. а магия где? поможет мне XAML вставить в систему несколько справочников быстрее, чем в той же Искре? А потом (по мере развития системы) расширять. Или тюнинговать их у заказчика без перекомпиляции? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2010, 00:54 |
|
|
start [/forum/topic.php?fid=33&msg=36471412&tid=1548247]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 134ms |
0 / 0 |