28.08.2008, 17:01 | #1 |
Участник
|
Связь VendInvoiceTrans и PurchLine
Как связать VendInvoiceTrans и PurchLine? По какому полю (полям)??
Задача: в репорте есть текущий vendInvoiceTrans - нужно вытащить его PurchLine, так как там дополнительная информация (ещё пара таблиц подключается). |
|
28.08.2008, 17:05 | #2 |
Участник
|
по полю InventTransId
|
|
|
За это сообщение автора поблагодарили: vadimiron (1). |
28.08.2008, 17:15 | #3 |
Участник
|
А связь n:1 (то есть много VendInvoiceTrans к одному PurchLine)?
|
|
28.08.2008, 17:21 | #4 |
MCT
|
он у вас найдет те строчки в которых есть этот лот, наверное, для надежности можно и еще и по ItemId добавить
__________________
Axapta book for developer |
|
28.08.2008, 17:27 | #5 |
Участник
|
По-моему, гораздо проще в вашем случае не тащить из VendInvoiceTrans PurchLine, а в методе VendInvoiceTrans.initFromPurchLine() скопировать в VendInvoiceTrans всю необходимую для построения будущих отчетов информацию и потом не париться связывая эти две таблицы.
Как они связаны ice уже ответил. |
|
28.08.2008, 17:28 | #6 |
MCT
|
Денормализация
__________________
Axapta book for developer |
|
28.08.2008, 17:30 | #7 |
Участник
|
С учетом удаления закупок - денормализации нет.
__________________
Ivanhoe as is.. |
|
28.08.2008, 17:35 | #8 |
MCT
|
Просто работал в одной конторе где весь модуль состял из четырех одинаковых по архитектуре таблиц. И для составления отчета или добаавления фукционала надо было писать жобики, обновляя все эти таблицы. Соответственно для постоения отчета нужна была только одна из них на выбор
__________________
Axapta book for developer |
|
28.08.2008, 17:41 | #9 |
Участник
|
У меня данная связь не проходит при создании View.
Создал datasource VendInvoiceTrans, в нём датасоурс PurchLine - соединил с помощью InventTransId - смотрю с помощью TableBrowser - нет ни одной записи, хотя таблицы по отдельности содержат много записей и многих InventTransId совпадает....не могу понять, почему View пустой |
|
28.08.2008, 17:51 | #10 |
Участник
|
А это по-вашему всегда минус?
Цитата:
Последний раз редактировалось petr; 28.08.2008 в 17:54. |
|
28.08.2008, 17:52 | #11 |
MCT
|
Axapta 3.0 SP4 все работает
__________________
Axapta book for developer |
|
28.08.2008, 17:54 | #12 |
MCT
|
отчего же ?
Да и по моему как то вы агресино начинаете... отчего же далек то?
__________________
Axapta book for developer |
|
28.08.2008, 17:59 | #13 |
Участник
|
Цитата:
Сообщение от vadimiron
У меня данная связь не проходит при создании View.
Создал datasource VendInvoiceTrans, в нём датасоурс PurchLine - соединил с помощью InventTransId - смотрю с помощью TableBrowser - нет ни одной записи, хотя таблицы по отдельности содержат много записей и многих InventTransId совпадает....не могу понять, почему View пустой update: Впрочем, если уж очень нужна подобная связь, то похоже: VendInvoiceTrans->InventTrans->PurchLine Последний раз редактировалось Lemming; 28.08.2008 в 18:04. Причина: ... |
|
28.08.2008, 18:13 | #14 |
Участник
|
Цитата:
Вообщем, вы привели пример действительно излишней денормализации, и в этом действительно нет ничего хорошего. Но ветка про две конкретные таблицы VendInvoiceTrans и PurchLine, в контексте которых некоторая денормализация вполне логична и совершенно некритична. |
|
28.08.2008, 18:16 | #15 |
Участник
|
А вот так, по-моему, опасно. В InventTrans для одной VendInvoiceTrans может быть много проводок, если к каждой из них подцепится PurchLine, то будет ошибка, так как реально связь VendInvoiceTrans PurchLine n:1
|
|
|
За это сообщение автора поблагодарили: vadimiron (1). |
28.08.2008, 18:24 | #16 |
Участник
|
Я нашёл проблему: во View есть опция Relations (YES | NO). Я ставил на YES и думал, что так будет использоваться связь, которая прописана во View, а оказалась, что берётся связь, определённая на таблице (там связь построена по другому, но там одни нули и я не соединишь там никак), а связь во View просто игнорируется!
Маразм! Когда поставил NO и прописал связь через InventTransId - всё заработало как и ожидалось |
|
28.08.2008, 18:27 | #17 |
Участник
|
Хмм...согласен, просто обычно связи в первую очередь проверяю создавая Query, в общем поторопился. В любом случае я противник смешивать данные из проводок и их источника. Не говоря о том, что в случае Аксапты, т.н. денормализация иногда неплохо выруливает производительность.
|
|
29.08.2008, 08:59 | #18 |
MCT
|
Цитата:
Цитата:
Сообщение от vadimiron
Маразм!
__________________
Axapta book for developer Последний раз редактировалось MikeR; 29.08.2008 в 09:03. |
|
|
За это сообщение автора поблагодарили: vadimiron (1). |
Теги |
join, нормализация бд |
|
Похожие темы | ||||
Тема | Ответов | |||
Импорт строк PurchLine (через функционал) | 8 | |||
Связь таблиц InventTrans и PurchLine | 2 | |||
Создние PurchLine с ед. измерения типа 'Склад' | 0 | |||
Создние PurchLine | 4 | |||
Связь двух таблиц | 10 |
|