05.03.2007, 15:52 | #1 |
Участник
|
Как связать датасорс с двумя другими на форме?
Народ помогите, есть форма, там 3 датасорса, надо один связать с каждым из остальных, с одним это не проблема, через свойства поставить связь, а как второй привязать?
|
|
05.03.2007, 16:20 | #2 |
Участник
|
Как вы это себе представляете?
Можете привести здесь по 2-3 записи с ключевыми полями для каждой таблицы. А затем написать строчки, которые должны получиться в результате такой связи. |
|
05.03.2007, 16:29 | #3 |
Участник
|
в датасорсе есть например поле1, во втром поле 2, а мне надо по третьему датасорсу вытащить на форму информацию, нужную строку можно получить только по двум полям, по полю1 в одном дата сорсе и по полю2 во втором
|
|
05.03.2007, 16:29 | #4 |
Участник
|
Например: InventTrans (содержит ItemId и InventDimId), InventDim связан с InventTrans (содержит InventSerialId), нужно привязать IventSerial к InventTrans+InventDim (по ItemId к InventTrans и по InventSerialId к InventDim).
__________________
--- WBR, Заикин Павел. |
|
05.03.2007, 16:39 | #5 |
Участник
|
По-моему тут только программировать Active.. Либо - если только показывать данные - сделайте вьюху из InventTrans + InventDim и цепляйте к ней InventSerial - но с вьхами поосторожней - глючат, с виртуальными компаниями не совместимы и проч..
Последний раз редактировалось MironovI; 05.03.2007 в 16:41. |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
05.03.2007, 16:48 | #6 |
Участник
|
можно еще попробовать добавить второй дайналинк ручками в QueryBuildDataSource.
|
|
|
За это сообщение автора поблагодарили: mazzy (5). |
05.03.2007, 16:48 | #7 |
Участник
|
Во втором не может быть только одно поле 2.
Во втором будет два поля 1 и 2. (по 1 устанавливается связь) Вам нужно связать третью таблицу со второй. В третьей таблице будет поля 2 и 3. |
|
05.03.2007, 16:53 | #8 |
Участник
|
Цитата:
Подумайте еще раз. Если вы привязываете к inventTrans, то видите только те Serial, которые привязаны к InventDim. Других вы видеть не можете (либо мы по разному понимаем слово "связь"). Поэтому я не понимаю зачем вас связка по ItemID. Ведь в этом случае вы допускаете, что среди Serial появлятся записи, никак не связанные с данным InventTrans. Можете сформулировать еще раз - чего же вы хотите? У вас в постановке логические дыры. Еще раз рекомендую взять и нарисовать на листочке три таблицы по 3-4-5 записей. И попробуйте на этом же листочке понять что означает слово "привязать". |
|
05.03.2007, 16:57 | #9 |
Участник
|
Народ, кончайте немедленно бросаться в программинг.
Вдумайтесь в то, что говорится. Человек хочет получить не связь, а union. В union он получит все Serial по одной номенклатуре. в том числе и те, которые участвуют в данной проводке. Дальше ему нужно будет изо всей этой кучи помечать галчками/цветом/бибиканьем участвующие в данной проводке. Это действие никоим образом нельзя назвать "связать с каждым из остальных". Либо я чего-то не понимаю. Еще раз: нарисуйте на бумажке что вы хотите получить. |
|
05.03.2007, 17:36 | #10 |
Участник
|
Засада тут кроется в том, что в InventSerial уникальный ключ идет не по InventSerialId как можно было бы подумать а по InventSerialId + ItemId - вот тут все зло - нельзя просто привязать табличку InventSerial к InventDim - нужно еще и по ItemId фильтровать.. (если я опять таки тоже правильно понял смысл примера)
Последний раз редактировалось MironovI; 05.03.2007 в 17:39. |
|
05.03.2007, 18:15 | #11 |
Участник
|
Цитата:
Сообщение от MironovI
Засада тут кроется в том, что в InventSerial уникальный ключ идет не по InventSerialId как можно было бы подумать а по InventSerialId + ItemId - вот тут все зло - нельзя просто привязать табличку InventSerial к InventDim - нужно еще и по ItemId фильтровать.. (если я опять таки тоже правильно понял смысл примера)
Придется самому рисовать. Таблица 1 (InventTrans) Лот1, Номенклатура1, Дим1, ... Лот2, Номенклатура1, Дим2, ... Лот3, Номенклатура2, Дим3, ... Лот4, Номенклатура3, Дим4, ... Таблица 2 (InventDim) Дим1, ..., Серийный1 Дим2, ..., Серийный1 Дим3, ..., Серийный2 Дим4, ..., Серийный2 Таблица 3 (InventSerial) Номенклатура1, Серийный1, ..., РекИд31 Номенклатура1, Серийный2, ..., РекИд32 Номенклатура2, Серийный1, ..., РекИд33 Номенклатура2, Серийный2, ..., РекИд34 Номенклатура2, Серийный3, ..., РекИд35 Номенклатура3, Серийный1, ..., РекИд36 Номенклатура3, Серийный2, ..., РекИд37 Номенклатура3, Серийный4, ..., РекИд38 Cерийники "случайно" совпали у разных номенклатур. Я правильно данные привел? Теперь нужно посмотреть серийники по проводке. Хотим увидеть Тбл1: Лот1,Номенклатура1, Дим1 Тбл2: Дим1, Серийный1 Тбл3: Номенклатура1, Серийный1, ..., РекИд31 А вместо этого стандартная аксапта показывает Тбл1: Лот1,Номенклатура1, Дим1 Тбл2: Дим1, Серийный1 Тбл3: Номенклатура1, Серийный1, ..., РекИд31 Тбл3: Номенклатура2, Серийный1, ..., РекИд33 Тбл3: Номенклатура3, Серийный1, ..., РекИд36 Так? И вы считаете, что это неправильно, так? Проблема в этом? Если да, то виноват. Я тормоз. MironovI и belugin похоже правильно написали - надо прогать active |
|
|
За это сообщение автора поблагодарили: zemlyn (2). |
05.03.2007, 18:43 | #12 |
Участник
|
Ну, в общем совершенно так - Номенклатура2 и 3 нам тут не нужны.. вобщем Active, фух
|
|
|
|