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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.01.2004, 11:27   #1  
Александр_1975 is offline
Александр_1975
Участник
 
13 / 10 (1) +
Регистрация: 05.11.2003
Адрес: Москва
Вопрос по запросу (query)
Ни как не могу создать запрос. Есть две таблицы OS и Main, связаны 1 (OS) ко многим. Резутате хочу получить выборку:
ОС.ИнвентарныйНомер1, Main.ИнвентарныйНомер1, Main.Сотрудник1
ОС.ИнвентарныйНомер1, Main.ИнвентарныйНомер1, Main.Сотрудник2
ОС.ИнвентарныйНомер1, Main.ИнвентарныйНомер1, Main.Сотрудник3

А у меня выбирается только первая запись из таблицы Main. То ли выбираю не так, то ли запрос не тот

PHP код:
void run()
{
    
Args                        args;
    
ReportRun                   report;
    
TmpOSReportTable            _TmpOSReportTable;
    
OS                          _OS;
    
Main                        _Main;

    
QueryRun qr;
    
Query NewQuery;
    
QueryBuildDataSource bb;
    
QueryBuildRange br;

    
int                         i;
;

    
ttsbegin;
    
delete_from _TmpOSReportTable;
    
ttscommit;

    
NewQuery = new Query ();
    
bb NewQuery.AddDataSource (TableNum(OS));

    if ((
dialogOSGroup.value()) != "")
    {
     
br bb.AddRange (fieldNum(OSOSGroup));
     
br.value (dialogOSGroup.value());
    }

    if ((
dialogOSNumber.value()) != 0)
    {
     
br bb.AddRange (fieldNum(OSNumber));
     
br.value(int2str(dialogOSNumber.value()));
    }

    if (( 
dialogStartDate.value()) != datenull())
    {
     
br bb.AddRange (fieldNum(OSStartDate));
     
br.value(Date2Str(dialogStartDate.value(),123,2,2,2,2,2));
    }


    
bb bb.AddDataSource (TableNum(Main));

    
bb.joinMode(joinMode::InnerJoin);
//    bb.relations(true);
//    bb.fetchMode(0);
    
bb.addLink(fieldNum(OSNumber), fieldNum(MainNumber));

    
qr = new QueryRun (NewQuery);


//if (qr.prompt())
//{
ttsbegin;
while (
qr.next())
{
_OS     qr.get(tableNum(OS));
_Main   qr.get(tableNum(Main));
        
_TmpOSReportTable.Number             _OS.Number;
        
_TmpOSReportTable.OsName             _OS.OsName;
        
_TmpOSReportTable.StartDate          _OS.StartDate;
        
_TmpOSReportTable.OSGroup            _OS.OSGroup;
        
_TmpOSReportTable.DAmort             _OS.DAmort;
        
_TmpOSReportTable.Cost               _OS.Cost;
        
_TmpOSReportTable.RealCost           _OS.RealCost;
        
_TmpOSReportTable.Person             _Main.Person;
        
_TmpOSReportTable.insert();
        
next _OS;
//        next _Main;
print _OS.OsName;
print 
_Main.Person;
}
ttscommit;
    
args = New Args(reportstr(OSReport));
    
args.caller(this);
    
args.record(_TmpOSReportTable);
    
report classFactory.reportRunClass(args);
    
report.run();

Старый 23.01.2004, 14:57   #2  
Ser is offline
Ser
NavAx
 
99 / 14 (1) ++
Регистрация: 04.03.2002
Адрес: Москва
Привет.

Смущает только одно:
next _OS - зачем, интересно? QueryRun.next() этим занимается.

И еще, используй queryRun.changed(tableNum[OS]),1 если хочешь отслеживать изменен ли курсор в первом DS.

насчет дат: лучше использовать ф-цию из Global::date2StrXpp().
__________________
Чудес не бывает (c), истина где-то рядом (c)...
Старый 23.01.2004, 17:35   #3  
Александр_1975 is offline
Александр_1975
Участник
 
13 / 10 (1) +
Регистрация: 05.11.2003
Адрес: Москва
Спасибо, Ser! Поправил работает!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Очередной вопрос про Query rkrivov DAX: Программирование 45 16.10.2013 19:16
Вопрос по query и join tischenko DAX: Программирование 2 20.07.2005 13:05
Вопрос по Query tischenko DAX: Программирование 6 15.04.2005 13:09
Вопрос по Запросу отчета ravil DAX: Программирование 0 18.12.2003 17:06
Вопрос знатокам QBE и Query в AXAPTA Maxim Gorbunov DAX: Программирование 6 27.12.2002 13:19

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

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

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