12.07.2019, 11:49 | #1 |
Участник
|
Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
Смотрю я в код и думку гадаю...
Либо я чего-то не понимаю, либо одно из двух. Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе? Я понимаю, что так программистам ядра удобнее. Но Dynalink существует давно, еще с домайкрософтовских времен. Тогда вроде старались делать для разработчиков бизнес-логики. Зачем создатели Аксапты сделали два набора методов для работы с линками и с диналинками? |
|
12.07.2019, 12:33 | #2 |
Участник
|
Легко.
Сам такое использовал. Был пример, кажется с адресами. Формочка DS1 inner join DS2 При открытии формы анализировался args.Record() и вешался dynalink между args.Record() и DS2. Link был изначально между DS2 и DS1 из-за inner join |
|
12.07.2019, 12:56 | #3 |
Участник
|
Господи...
обратите внимание, в вопросе нет "можно ли сделать?", в вопросе нет "как сделать". В вопросе нет даже "делали ли вы сами". Можно я повторю вопрос? Цитата:
Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
|
|
12.07.2019, 13:13 | #4 |
Участник
|
А вы с какой целью интересуетесь ?
Я думаю можно много разных задачек напридумать. Это же просто инструмент. |
|
12.07.2019, 14:22 | #5 |
Участник
|
Цитата:
Почему два набора методов? Тут два ответа, во-первых линк и дайналинк это разные сущности - линк связывает два источника данных внутри запроса, дайналинк, связывает источник данных с буфером записи не обязательно входящим в запрос. Во-вторых, наверное, было проще приделать методов к существу классу на C++ чем сделать коллекции links и dynalinks с одинаковым набором методом кроме добавления - там все так. |
|
13.07.2019, 07:13 | #6 |
Участник
|
Чтобы понять. Как всегда.
ну, хоть одну? Цитата:
Сообщение от belugin
Чтобы динамически связать форму с формой в которой квери содержит джоин. Например открываешь форму номенклатуры из нее видишь спецформу где сроки инвойсов вместе с информацией из самих инвойсов. Перемещаясь по номенклатуре меняем фильтр по ней по строкам. У строк линк на инвойсы и дайналинк на буфер айтема номенклатуры.
связь датасорса с датасорсом на этой форме с типом Delay - dynalink связь датасорса с датасорсом на этой форме с остальными типами - link одновременно на одном датасорсе то когда они требуются? |
|
13.07.2019, 08:25 | #7 |
Участник
|
|
|
13.07.2019, 08:38 | #8 |
Участник
|
Нет там примера где dynalink и link требуются ОДНОВРЕМЕННО на одном датасорсе.
Цитата:
Код: внешняя форма └датасорс: номенклатура спецформа └датасорс: строки инвойсов (dynalink: номенклатура) └датасорс: шапки инвойсов (link: строки инвойсов) Если я чего не понимаю, раскрой свою мысль подробнее. или просто приведи скриншот с запросом напомню свой вопрос полностью: Цитата:
Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
|
|
13.07.2019, 09:02 | #9 |
Участник
|
Код: спецформа └датасорс: строки инвойсов (dynalink: номенклатура) └датасорс: шапки инвойсов (link: строки инвойсов) Ок. Пусть так. Теперь нам надо использовать эту удобную форму но вызывать ее из формы поставщиков. Мы в init добавляем addDynalink на шапки инвойсов и шапки линкуются к строкам через линк а к поставщикам через дайналинк. |
|
13.07.2019, 09:19 | #10 |
Участник
|
в этом случае запрос будет выглядеть так:
Код: внешняя форма └датасорс: поставщики спецформа └датасорс: шапки инвойсов (dynalink: поставщики) └датасорс: строки инвойсов (link: шапки инвойсов) повторяю исходный вопрос: Цитата:
Для решения каких задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе?
Последний раз редактировалось mazzy; 13.07.2019 в 09:26. |
|
13.07.2019, 09:35 | #11 |
Участник
|
Цитата:
Цитата:
и я плохо выделил слово ОДНОВРЕМЕННО?
|
|
13.07.2019, 10:22 | #12 |
Участник
|
Цитата:
Цитата:
Я накидал макетик на ax2012 и ax2009. получается, что диналинк можно добавить вручную в коде на внутреннюю таблицу. и он даже будет работать. см. приложенный проект и скриншоты с одновременным существованием ветки dynalink и relation. получается, что одновременно эти линки нужны только для решения технических задач в ходе расширения функционала? когда вместо рисования нормальной формы нужно подлезть в существующую? но такой способ решения, насколько я понимаю, совершенно не подходит в современных условиях закрытого кода. акс8 даже открывать не хочу, потому что слишком долго открывается и слишком медленно работает. И тоже не знаю как это будет работать. ок, согласен, что исходный вопрос нужно уточнить: Для решения каких бизнес-задач могут потребоваться ОДНОВРЕМЕННО и dynalink, и link на одном датасорсе? Последний раз редактировалось mazzy; 13.07.2019 в 10:25. |
|
13.07.2019, 10:46 | #13 |
Участник
|
Уточнил макетик.
Раньше я лихо использовал innnerJoin между датасорсами спец-формы. Одумался и сделал вариант с DelayedJoin. Конечно же в варианте в delayed join нет одновременного dynalink и link. Конечно же в варианте в delayed join работает совсем не так как ожидает пользователь - фильтрует только внутреннюю таблицу, а шапки оставляет нетронутыми. В общем, очень спорный прием разработки. Мне кажется, что на проекте такой способ приведет к большим проблемам, нежели сделать еще одну форму. |
|
13.07.2019, 11:27 | #14 |
Участник
|
Цитата:
Кстати, интересно, что получится если сделать exists join и на второй датасурс навесить дайналинк. ( Мы хотим например увидеть не в одном гриде а в двух, но чтобы шапки фильтровались но наличию строк с текущей номенклатурой) Цитата:
В общем, очень спорный прием разработки. Мне кажется, что на проекте такой способ приведет к большим проблемам, нежели сделать еще одну форму. Кстати, не факт что кто-то вообще думал о таких сценариях -просто есть две концептуально ортогональных возможности и их одновременное применение не запретили. Как в paint можно залить холст черным и рисовать по нему черным карандашом. |
|
13.07.2019, 11:52 | #15 |
Участник
|
Цитата:
Цитата:
ни разу не видал пользователя, который ставил бы задачу именно так "в одном гриде". такое вспоминается только в связи со всякими InventDim или безумными фин.аналитиками 2012, когда программисты ради своих технических целей "нормализовали" на разные таблицы, а пользователи постоянно напоминают - "уберите вашу нормализацию, верните в одну строку". Цитата:
Цитата:
Собственно вопрос то отсюда и сформулировался - есть ли какие-нибудь признаки у хотелок пользователя, которые однозначно указывают что необходим и dynalink, и link. из этих признаков наверное можно получить понимание что такое dynalink и link. и чем они отличаются. из этого понимания наверное можно получить понимание чем аксапта отличается от других систем. выйти на приемы применения аксапты. и на понимание как решают задачу другие системы. пока не вижу ничего, кроме технического - dynalink это delayed link. но такое проще было бы реализовать параметрами линка, а не отдельным механизмом. возможно еще что-то есть, чего я в упор не понимаю. поэтому вопрос: Для решения каких бизнес-задач могут потребоваться ОДНОВРЕМЕННО и dynalink (=delayed link), и обычный link на одном датасорсе? Последний раз редактировалось mazzy; 13.07.2019 в 11:54. |
|
13.07.2019, 12:39 | #16 |
Участник
|
Я какие-то такие формы делал. Наверное пользователи говорят что-то типа "мы хотим видеть тут вот это и вот это и мы не хотим каждый раз тыкать чтобы увидеть поля связанные с другой строкой, а ещё мы хотим Эксель и фильтр по тому, что видим".
|
|
13.07.2019, 14:56 | #17 |
Участник
|
Не думаю, что тут какая-то серьёзная задумка архитекторов.
Понятно, что связь между датасорсами разных форм (dynalink) и inner (и аналогичными) связями между датасорсами одной формы несколько разные и тут различие между dynalink и link есть. Но внутри формы со связями типа delayed (и аналогичными) большой разницы между двумя линками не особенно важна. На мой взгляд, внутренности для этих случаев внутри формы одинаковые, поэтому реализовано одним кодом, соответственно и программный интерфейс общий и использование того или иного способа просто разделяется концептуально, а не как-то жестко по правилам. |
|
13.07.2019, 15:13 | #18 |
Участник
|
думаю, что все делали какие-то такие формы.
могу даже предположить что это формы, связанные с DirParty или с сопоставлением (custVendSettlement). это не ответ и не критерий. поэтому вопрос сформулирован так как сформулирован Цитата:
возможно. можно зайти с другой стороны - есть ли аналог Dynalink в других системах/фреймворках? Если нет, то как обходятся без него? |
|
13.07.2019, 22:10 | #19 |
Administrator
|
Dynalink в том виде, в котором он был задуман в ещё домикрософтовской Аксапте - по определению не может работать в D365FO, т.к. в D365FO нельзя в одном окне браузера открыть две формы.
Но (!!!) Механизм Dynalink преобразовался в механизм автообновления Form Part, которых на форме может быть много. Поэтому отвечая на вопрос - есть ли аналог механизма Dynalink, который остался в D365FO в других системах / фреймворках - можно ответить - да, конечно есть. Как минимум в тех случаях, когда есть что-то аналогичное Form Part. К примеру, если включить в Word-е область навигации, то перемещаясь по страницам - можно увидеть, как перемещается выделение по области навигации. В некотором смысле - это аналог Form Part-ов в D365FO
__________________
Возможно сделать все. Вопрос времени |
|
14.07.2019, 13:22 | #20 |
Участник
|
Цитата:
В Дельфи тоже можно было так делать ближе к тому как источники данных в аксапте связаны - у дитейла (насколько я могу помню, там как раз линков не было, одни дайналинки. Хочешь сложный квери - пиши sql ) http://delphiru.ru/databese/312-master-detail-tquery |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|