AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 24.08.2004, 13:21   #1  
I don't understand is offline
I don't understand
Участник
 
14 / 10 (1) +
Join Date: 24.08.2004
Location: Москва
? Как привязать две таблицы или как это наз-ся?
В общем я хочу чтобы строки одной таблицы расшифровывали строку другой таблицы. Только я хочу это сделать не через EDT и установку linktype, а с помощью кода. Помогите, расскажите или скиньте примерчик. СПАСИБО
Old 24.08.2004, 13:25   #2  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Join Date: 18.10.2002
Location: Москва
вопрос в общем-то непонятен
Old 24.08.2004, 13:38   #3  
Sirius is offline
Sirius
Участник
 
151 / 10 (1) +
Join Date: 10.01.2004
Location: Новосибирск
Вот посмотри.. В этом методе создается связь.
PHP Code:
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();

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

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

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

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

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

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

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

PHP Code:
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);
    }



Вот. Может вам что другое надо. Но вы тогда объясните поподробнее, чтобы народ не гадал что же вы все таки хотите
Old 24.08.2004, 14:48   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,726 / 1208 (44) ++++++++
Join Date: 13.01.2004
Blog Entries: 3
Ты опиши что именно хочешь увидеть в результате. Не в смысле кода, а какую картинку на форме.

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

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

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

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

вкратце. переопределяем метод executeQuery() основного датасорса, где меняем ему query.
Attached Files
File Type: xpo testdynamicjoin.xpo (22.5 KB, 573 views)
Old 24.08.2004, 15:42   #11  
mazzy is offline
mazzy
Участник
mazzy's Avatar
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Join Date: 29.11.2001
Location: Москва
Blog Entries: 10
Quote:
Изначально опубликовано I don't understand
Владимир Максимов - спасибо за совет, вот только где вы видели хороших программистов, которые не пишут не строчки кода ?
Где вы видели хороших программистов, которые смотрят в мануалы и туториалы?
Поглядите в формы, названия которых начинаютя с tutorial_ .
Вам, как хорошим программистам будет полезно.
Old 24.08.2004, 16:18   #12  
I don't understand is offline
I don't understand
Участник
 
14 / 10 (1) +
Join Date: 24.08.2004
Location: Москва
to mazzy Хорош подкалывать, написал же пол - месяца всего с Axapta связан, только курсы по программированию закончил, впереди еще по Финансам и Логистике...........

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Две таблицы в одном 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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 07:31.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.