AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.08.2004, 13:21   #1  
I don't understand is offline
I don't understand
Участник
 
14 / 10 (1) +
Регистрация: 24.08.2004
Адрес: Москва
? Как привязать две таблицы или как это наз-ся?
В общем я хочу чтобы строки одной таблицы расшифровывали строку другой таблицы. Только я хочу это сделать не через EDT и установку linktype, а с помощью кода. Помогите, расскажите или скиньте примерчик. СПАСИБО
Старый 24.08.2004, 13:25   #2  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
вопрос в общем-то непонятен
Старый 24.08.2004, 13:38   #3  
Sirius is offline
Sirius
Участник
 
151 / 10 (1) +
Регистрация: 10.01.2004
Адрес: Новосибирск
Вот посмотри.. В этом методе создается связь.
PHP код:
public void lookup()
{
    
SysTableLookup        sysTableLookup SysTableLookup::newParameters(tableNum(InventTable), this);
    
Query                 q;
    
QueryBuildDataSource  qbd1;
    
QueryBuildDataSource  qbd2;

    
QueryBuildRange       qbr;

    ;
    
= new Query();
    
qbd1 q.addDataSource(tableNum(InventTable));

    
qbd2 qbd1.addDataSource(tableNum(WMSOrderTrans));

    
qbr qbd2.addRange(fieldnum(WMSOrderTransrouteId));
    
    
qbd2.joinMode(JoinMode::ExistsJoin);
    
qbd2.addLink(fieldnum(InventTableitemId), fieldnum(WMSOrderTrans,itemId));

    
sysTableLookup.addLookupfield(fieldNum(InventTableitemId));
    
sysTableLookup.addLookupfield(fieldNum(InventTableitemName));
    
sysTableLookup.parmQuery(q);
    
sysTableLookup.performFormLookup();

Старый 24.08.2004, 14:03   #4  
I don't understand is offline
I don't understand
Участник
 
14 / 10 (1) +
Регистрация: 24.08.2004
Адрес: Москва
А где данная процедура должна быть повешена (прописана) для обработки ее программой
Старый 24.08.2004, 14:13   #5  
Sirius is offline
Sirius
Участник
 
151 / 10 (1) +
Регистрация: 10.01.2004
Адрес: Новосибирск
я думаю если вы именно этот метод куда-нибудь вставите и запустите, это вам не очень поможет.

здесь просто показано как создать query который будет брать данные из двух связанных таблиц.

возьмите две ваши таблицы и создайте query по этому примеру
Старый 24.08.2004, 14:26   #6  
I don't understand is offline
I don't understand
Участник
 
14 / 10 (1) +
Регистрация: 24.08.2004
Адрес: Москва
Я создам query по вашему примеру (жаль что без комментариев) а потом как сделать чтобы все подцепилось ?? Вот это мне не понятно, я программлю на Аксапте всего пол-месяца , так что извините , если вопрос поставлен странно (тупо, глупо и т.д.)
Старый 24.08.2004, 14:48   #7  
Sirius is offline
Sirius
Участник
 
151 / 10 (1) +
Регистрация: 10.01.2004
Адрес: Новосибирск
Хм. Что значит чтобы все подцепилось?

Ладно давайте по шагам.

Создаем две таблицы.

TestMain из одного поля: id
TestDetails из двух полей: id и details

вписываем туда данные и создаем вот такой job:

PHP код:
static void DynamicJoin(Args _args)
{
    
Query                 q;
    
QueryRun              qr;
    
QueryBuildDataSource  qbd1;
    
QueryBuildDataSource  qbd2;
    
QueryBuildRange       qbr;

    
TestMain    tm;
    
TestDetails td;


    ;

    
= new Query();

     
//добавляем основной datasource
    
qbd1 q.addDataSource(tableNum(TestMain));

    
//добавляем datasource, который будем связывать с основным
    
qbd2 qbd1.addDataSource(tableNum(TestDetails));


    
//устанавливаем тип связи
    
qbd2.joinMode(JoinMode::InnerJoin);
    
//устанавливаем саму связь
    
qbd2.addLink(fieldnum(TestMainID), fieldnum(TestDetails,ID));

    
qr = new QueryRun(q);
    while(
qr.next())
    {
        
//получаем данные
        
tm qr.get(tablenum(TestMain));
        
td qr.get(tablenum(TestDetails));

        
//смотрим что получили
        
info(tm.ID+" "+td.Details);
    }



Вот. Может вам что другое надо. Но вы тогда объясните поподробнее, чтобы народ не гадал что же вы все таки хотите
Старый 24.08.2004, 14:48   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Ты опиши что именно хочешь увидеть в результате. Не в смысле кода, а какую картинку на форме.

Дело в том, что AXAPTA - это не есть язык программирования. В ней заложена возможность написания кода, но это не приветствуется! Общая идея AXAPTA - если что-то может быть сделано визуально именно так это и надо делать. Кодить надо только в том случае, если визуально поставленную задачу решить не удалось.
Старый 24.08.2004, 15:14   #9  
I don't understand is offline
I don't understand
Участник
 
14 / 10 (1) +
Регистрация: 24.08.2004
Адрес: Москва
Владимир Максимов - спасибо за совет, вот только где вы видели хороших программистов, которые не пишут не строчки кода ? Хотя конечно если есть уже что-то написанное и , что самое главное, отлаженное - зачем городить огород... Я же сейчас познаю азы.

Спасибо Sirius, только еще один маааленький question : мы создали job, а пользователь открывать будет форму с нашими 2-мя таблицами, и как этот job будет взаим-ть с ними ( таблицами )? или его нужно указать в качестве свойства одной из таблиц ???????
Старый 24.08.2004, 15:27   #10  
Sirius is offline
Sirius
Участник
 
151 / 10 (1) +
Регистрация: 10.01.2004
Адрес: Новосибирск
эээ нет..

если вы хотите чтобы это все работало в гриде на форме, то действовать нужно немного по другому.

смотрите в прикрепленном проекте.

вкратце. переопределяем метод executeQuery() основного датасорса, где меняем ему query.
Вложения
Тип файла: xpo testdynamicjoin.xpo (22.5 Кб, 555 просмотров)
Старый 24.08.2004, 15:42   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано I don't understand
Владимир Максимов - спасибо за совет, вот только где вы видели хороших программистов, которые не пишут не строчки кода ?
Где вы видели хороших программистов, которые смотрят в мануалы и туториалы?
Поглядите в формы, названия которых начинаютя с tutorial_ .
Вам, как хорошим программистам будет полезно.
Старый 24.08.2004, 16:18   #12  
I don't understand is offline
I don't understand
Участник
 
14 / 10 (1) +
Регистрация: 24.08.2004
Адрес: Москва
to mazzy Хорош подкалывать, написал же пол - месяца всего с Axapta связан, только курсы по программированию закончил, впереди еще по Финансам и Логистике...........

Sirius СПАСИБО я все понял !!!!! Скинь свой адрес, я тебе бандеролью пиво вышлю
Старый 24.08.2004, 16:38   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
хорошо. тогда только совет: посмотрите формы, названия которых начинаются с tutorial_. Там много полезного
Старый 25.08.2004, 07:46   #14  
Sirius is offline
Sirius
Участник
 
151 / 10 (1) +
Регистрация: 10.01.2004
Адрес: Новосибирск
Цитата:
Изначально опубликовано I don't understand
Sirius СПАСИБО я все понял !!!!!
да не за что мне здесь помогали (за что всем спасибо большое ) - теперь и я помогаю чем могу

Цитата:
Скинь свой адрес, я тебе бандеролью пиво вышлю
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Две таблицы в одном datasource Turetskiy DAX: Программирование 10 16.09.2008 16:35
две таблицы в двух разных вирт компаниях kitty DAX: Программирование 1 08.11.2005 18:18
Проблема - Две одинаковые таблицы в запросе NAST DAX: Программирование 0 13.10.2005 08:51
Один DataSource на две таблицы Lucky13 DAX: Программирование 14 26.09.2005 14:12
Две таблицы - один grid!? Kengo DAX: Программирование 3 01.11.2004 15:01

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:30.