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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2008, 13:00   #41  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
coolibin, не будьте злюкой, может у человек облегченная форма аграфии - апунктия, какая-нибудь.
CRASH_505, вы ведь явно не ItemId имели в виду, так ведь? В любом случае используйте group by. И вот ещё, если начали обучение, постарайтесь, если есть возможность делать это постепенно, по системе, если надо, напишите в личку почту - вышлю пару книг в электронке для начинающих.

З.Ы Тема плавно переростает в CRASH_505_спаммер_блог)
__________________
Axapta has seduced me deadly!
Старый 11.09.2008, 13:07   #42  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
Цитата:
Сообщение от lev Посмотреть сообщение
Вообще не понял суть проблемы
Не все норм просто я ступил немного.Во смотрите что у меня получилось

PHP код:
{
    
ProdJournalTable ProdJournalTable;
    
ProdJournalRoute ProdJournalRoute;
    
ProdJournalRoute ProdJournalRoute_1;
    
ProdJournalRoute ProdJOurnalRoute_2;
    
TmpProdJournalRouteOutTime tmpTable;
    
ProdTable  ProdTable;
    
int nDay;
    
SysOperationProgress    sop;
    
int                     cntItems;
    
date fromDate 01\09\2008;
    
date toDate 31\09\2008;
    ;
    
delete_from tmpTable;
    
 
        
        
select count (Recid)from Prodjournaltable
    exists join ProdJournalRoute
    where ProdJournalRoute
.JournalId==ProdJournalTable.JournalId&&
          
ProdJournalTable.Createddate >= fromdate &&
         (
ProdJournalRoute.WrkCtrId == '113' ||
          
ProdJournalRoute.WrkCtrId == '135');

        
cntItems ProdJournalTable.RecId;

    
sop SysOperationProgress::newGeneral('','',cntItems); // преоброзование шкалы


    
while select  createddate,journalid,posted
    from ProdJournalTable
    exists join ProdJournalRoute
    where ProdJournalRoute
.JournalId==ProdJournalTable.JournalId&&
          
ProdJournalTable.Createddate >= fromdate &&
         (
ProdJournalRoute.WrkCtrId == '113' ||
          
ProdJournalRoute.WrkCtrId == '135')
    {
        
select ProdJournalRoute_1
        order by oprnum desc
        where
            ProdJournalRoute_1
.JournalId == ProdJournalTable.JournalId;

        
select ProdTable
        where
            ProdTable
.ProdId == ProdJournalRoute_1.ProdId;

        
select  ProdJournalRoute_2
        where
                ProdJournalRoute_2
.OprId like '045*' &&
                
ProdJournalRoute_2.JournalId == ProdJournalTable.JournalId;




       
sop.incCount();

                
info
        
(
            
strfmt("%1,%2,%3",
            
ProdJournalTable.createdDate,
            
ProdJournalTable.JournalId,
            
toDay() - ProdJournalTable.createdDate)
        );



        
tmpTable.clear();

        
tmpTable.ITEMID =ProdTable.ItemId;
        
tmpTable.WRKCTRID=ProdjournalRoute_1.WrkCtrId;
        
tmpTable.Qty=ProdJournalRoute_1.QtyGood+ProdJournalRoute_1.QtyError;
        
tmpTable.DaystoDay() - ProdJournalTable.createdDate;
        
tmpTable.Normal=noYes::No;


       if ( 
tmpTable.WRKCTRID == '135')
        {
            
nDay 1;
        }
        if ( 
tmpTable.WRKCTRID == '113')
        {
            if (
ProdJournalRoute_2 != NULL)
            {
                 
nDay=5;
            }
            else
            {
                
nDay 3;
            }
        }

        if (
tmpTable.Days nDay)
            
tmpTable.Normal=NoYes::No;
        else
            
tmpTable.Normal=NoYes::Yes ;

        
tmpTable.insert();
    }


Старый 11.09.2008, 13:11   #43  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Ого, прогресс на лицо, заюзан тег xpp!
__________________
Axapta has seduced me deadly!
Старый 11.09.2008, 13:17   #44  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
CRASH_505, вы ведь явно не ItemId имели в виду, так ведь? В любом случае используйте group by. И вот ещё, если начали обучение, постарайтесь, если есть возможность делать это постепенно, по системе, если надо, напишите в личку почту - вышлю пару книг в электронке для начинающих.

Я тока начинающий не судите строго ОК. А за книги если пришлете спасибо CRASH_505@mail.ru
Старый 11.09.2008, 13:24   #45  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Так я же не сужу ваши профессиональные какчества, я сам ламер, мне как-то и судить не полагается, обьектом шуток является ваш стиль изложения, вот и все) Книги пришлю.
__________________
Axapta has seduced me deadly!
Старый 11.09.2008, 13:27   #46  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
Цитата:
Сообщение от HorrR Посмотреть сообщение
Так я же не сужу ваши профессиональные какчества, я сам ламер, мне как-то и судить не полагается, обьектом шуток является ваш стиль изложения, вот и все) Книги пришлю.
Буду ждать спасибо
Старый 11.09.2008, 14:51   #47  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Апунктия - это хорошо.

"Буду ждать спасибо" сразу напомнило "Убить нельзя помиловать".
Старый 12.09.2008, 09:24   #48  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
Доброе утро. Как правильно дописать условие."Если товар не разнесен, то какое его время простоя по сегодняшний день"--???

PHP код:
    ProdJournalTable ProdJournalTable;
    
ProdJournalRoute ProdJournalRoute;
    
ProdJournalRoute ProdJournalRoute_1;
    
ProdJournalRoute ProdJOurnalRoute_2;
    
TmpProdJournalRouteOutTime tmpTable;
    
ProdTable  ProdTable;
    
int nDay;
    
SysOperationProgress    sop;
    
int                     cntItems;
    
date fromDate 01\09\2008;
    
date toDate 31\09\2008;
    ;
    
delete_from tmpTable;



        
select count (Recid)from Prodjournaltable
    exists join ProdJournalRoute
    where ProdJournalRoute
.JournalId==ProdJournalTable.JournalId&&
          
ProdJournalTable.Createddate >= fromDate &&
          
ProdJournalTable.createdDate <= toDate &&
         (
ProdJournalRoute.WrkCtrId == '113' ||
          
ProdJournalRoute.WrkCtrId == '135');

        
cntItems ProdJournalTable.RecId;

    
sop SysOperationProgress::newGeneral('','',cntItems); // преоброзование шкалы


    
while select  createddate,journalid,posted
    from ProdJournalTable
    exists join ProdJournalRoute
    where ProdJournalRoute
.JournalId==ProdJournalTable.JournalId&&
          
ProdJournalTable.Createddate >= fromDate &&
          
ProdJournalTable.createdDate <= toDate &&
         (
ProdJournalRoute.WrkCtrId == '113' ||
          
ProdJournalRoute.WrkCtrId == '135')
    {
        
select ProdJournalRoute_1
        order by oprnum desc
        where
            ProdJournalRoute_1
.JournalId == ProdJournalTable.JournalId;

        
select ProdTable
        where
            ProdTable
.ProdId == ProdJournalRoute_1.ProdId;

        
select  ProdJournalRoute_2
        where
                ProdJournalRoute_2
.OprId like '045*' &&
                
ProdJournalRoute_2.JournalId == ProdJournalTable.JournalId;




       
sop.incCount();

                
info
        
(
            
strfmt("%1,%2,%3",
            
ProdJournalTable.createdDate,
            
ProdJournalTable.JournalId,
            
toDay() - ProdJournalTable.createdDate)
        );



        
tmpTable.clear();

        
tmpTable.ITEMID =ProdTable.ItemId;
        
tmpTable.WRKCTRID=ProdjournalRoute_1.WrkCtrId;
        
tmpTable.Qty=ProdJournalRoute_1.QtyGood+ProdJournalRoute_1.QtyError;

        if(
ProdJournalTable.Posted==noyes::No)     ????
        {
            
tmpTable.Days=toDay() - ProdJournalTable.createdDate;?????
        }
        else
        {
          ?????
        }

        
tmpTable.Normal=noYes::No;


       if ( 
tmpTable.WRKCTRID == '135')
        {
            
nDay 1;
        }
        if ( 
tmpTable.WRKCTRID == '113')
        {
            if (
ProdJournalRoute_2 != NULL)
            {
                 
nDay=5;
            }
            else
            {
                
nDay 3;
            }
        }

        if (
tmpTable.Days nDay)
            
tmpTable.Normal=NoYes::No;
        else
            
tmpTable.Normal=NoYes::Yes ;

        
tmpTable.insert();
    } 
Старый 12.09.2008, 10:04   #49  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Доброе! Не совсем понял задачу.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.09.2008, 10:19   #50  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
Цитата:
Сообщение от lev Посмотреть сообщение
Доброе! Не совсем понял задачу.
Вот условие. Время, свыше которого ДСЕ не должны находиться в ЗГПТО. Для деталей ,обрабатываемых в цехе 135 норматив составляет 1 день;
Вопрос если деталь не успели разнести или забыли, сколько дней она там лежит не разнесенной (Время простоя детали ).Извиняюсь за некорректность своих вопросов.

PHP код:
  tmpTable.clear();

        
tmpTable.ITEMID =ProdTable.ItemId;
        
tmpTable.WRKCTRID=ProdjournalRoute_1.WrkCtrId;
        
tmpTable.Qty=ProdJournalRoute_1.QtyGood+ProdJournalRoute_1.QtyError;

        if(
ProdJournalTable.Posted==noyes::No)
        {
            
tmpTable.Days=  //toDay() - ProdJournalTable.createdDate;;
        
}
        else
        {
            
tmpTable.Days=noyes::Yes;
        }

        
tmpTable.Normal=noYes::No;


       if ( 
tmpTable.WRKCTRID == '135')
        {
            
nDay 1;
        }
        if ( 
tmpTable.WRKCTRID == '113')
        {
            if (
ProdJournalRoute_2 != NULL)
            {
                 
nDay=5;
            }
            else
            {
                
nDay 3;
            }
        }

        if (
tmpTable.Days nDay)
            
tmpTable.Normal=NoYes::No;
        else
            
tmpTable.Normal=NoYes::Yes ;

        
tmpTable.insert();
    } 
Старый 12.09.2008, 10:22   #51  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от CRASH_505 Посмотреть сообщение
PHP код:
    date fromDate 01\09\2008;
    
date toDate 31\09\2008
СОВЕТ: Для оформления кода в сообщении лучше использовать тэг XPP:
X++:
date fromDate = 01\09\2008;
date toDate = 31\09\2008;
А то возникают визуальные недоразумения. Я даже полез проверять - думал, может уже изобрели такой способ задания дат - без разделителей
Старый 12.09.2008, 10:28   #52  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
X++:
        if(ProdJournalTable.Posted==noyes::No)
        {
            tmpTable.Days=  //toDay() - ProdJournalTable.createdDate;;
        }
        else
        {
            tmpTable.Days=noyes::Yes;
        }
...
        if (tmpTable.Days > nDay)
что то не понял, какого типа у вас поле Days в таблице tmpTable. и где выхотите увидеть результат проверки, сколько уже не разнесен товар (в виде какой то галочки, или указания где то даты).
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.09.2008, 10:29   #53  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
[/xpp]А то возникают визуальные недоразумения. Я даже полез проверять - думал, может уже изобрели такой способ задания дат - без разделителей [/quote]
Спасибо учту
Старый 12.09.2008, 10:39   #54  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
...
if (tmpTable.Days > nDay)
[/xpp]что то не понял, какого типа у вас поле Days в таблице tmpTable. и где выхотите увидеть результат проверки, сколько уже не разнесен товар (в виде какой то галочки, или указания где то даты).[/quote]

Days типа int.Результат должен быть в поле Days сколько дней детали простаивают
Старый 12.09.2008, 10:48   #55  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
тогда вопрос! почему этому поле присваевается енум NoYes::Yes??? конечно он присвоит единичку, но какая то странная логика. ну и по идее вот этот закаментированный код, делает то что вам надо:
X++:
tmpTable.Days=  //toDay() - ProdJournalTable.createdDate;;
только на мой взгляд было бы правильней:
X++:
tmpTable.Days=  toDay() - ProdjournalRoute_1.transDate;
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.09.2008, 10:51   #56  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
Цитата:
Сообщение от lev Посмотреть сообщение
тогда вопрос! почему этому поле присваевается енум NoYes::Yes??? конечно он присвоит единичку, но какая то странная логика. ну и по идее вот этот закаментированный код, делает то что вам надо:
Не то что вас смутило NoYes::Yes??? , это просто я экспериментировал с программой. Ща попробую сделать
Старый 12.09.2008, 13:08   #57  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
Большое спасибо за вашу помощь.Вот что получилось, все нормально работает
tmpTable.clear();

X++:
      tmpTable.ITEMID =ProdTable.ItemId;
        tmpTable.WRKCTRID=ProdjournalRoute_1.WrkCtrId;
        tmpTable.Qty=ProdJournalRoute_1.QtyGood+ProdJournalRoute_1.QtyError;

        if(ProdJournalTable.Posted==noyes::No)
        {
            tmpTable.Days= (toDay() - ProdJournalTable.createdDate)+1; //toDay() - ProdjournalRoute_1.transDate;
        }
        else
        {
            tmpTable.Days=(ProdJournalTable.PostedDate - ProdJournalTable.createdDate)+1 ;
        }

        tmpTable.Normal=noYes::No;


       if ( tmpTable.WRKCTRID == '135')
        {
            nDay = 1;
        }
        if ( tmpTable.WRKCTRID == '113')
        {
            if (ProdJournalRoute_2 != NULL)
            {
                 nDay=5;
            }
            else
            {
                nDay = 3;
            }
        }

        if (tmpTable.Days > nDay)
            tmpTable.Normal=NoYes::No;
        else
            tmpTable.Normal=NoYes::Yes ;

        tmpTable.insert();
    }
Старый 12.09.2008, 15:00   #58  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Совсем забыл спросить, нормально тех-литературу на англицком читаете?
__________________
Axapta has seduced me deadly!
Старый 12.09.2008, 15:07   #59  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
Цитата:
Сообщение от HorrR Посмотреть сообщение
Совсем забыл спросить, нормально тех-литературу на англицком читаете?
На английском не очень
Старый 15.09.2008, 09:16   #60  
CRASH_505 is offline
CRASH_505
Участник
Аватар для CRASH_505
 
74 / 10 (1) +
Регистрация: 09.09.2008
Доброе утро.Вот программа.Подскажите как прописать условие суммирования,
т.к есть одинаковые номенклатуры, забитые в один и тотже день, а суммы разные
как суммировать.
X++:
    ProdJournalTable ProdJournalTable;
    ProdJournalRoute ProdJournalRoute;
    ProdJournalRoute ProdJournalRoute_1;
    ProdJournalRoute ProdJOurnalRoute_2;
    TmpProdJournalRouteOutTime tmpTable;
    ProdTable  ProdTable;
    int nDay;
    SysOperationProgress    sop;
    int                     cntItems;
    date fromDate = 01\09\2008;
    date toDate = 31\09\2008;
    ;
    delete_from tmpTable;



        select count (Recid)from Prodjournaltable
    exists join ProdJournalRoute
    where ProdJournalRoute.JournalId==ProdJournalTable.JournalId&&
          ProdJournalTable.Createddate >= fromDate &&
          ProdJournalTable.createdDate <= toDate &&
         (ProdJournalRoute.WrkCtrId == '113' ||
          ProdJournalRoute.WrkCtrId == '135');

        cntItems = ProdJournalTable.RecId;

    sop = SysOperationProgress::newGeneral('','',cntItems); // преоброзование шкалы


    while select  createddate,journalid,posted,posteddate
    From ProdJournalTable
    exists join ProdJournalRoute
    where ProdJournalRoute.JournalId==ProdJournalTable.JournalId&&
          ProdJournalTable.Createddate >= fromDate &&
          ProdJournalTable.createdDate <= toDate &&
         (ProdJournalRoute.WrkCtrId == '113' ||
          ProdJournalRoute.WrkCtrId == '135')
    {
        select ProdJournalRoute_1
        order by oprnum desc
        where
            ProdJournalRoute_1.JournalId == ProdJournalTable.JournalId;

        select ProdTable
        where
            ProdTable.ProdId == ProdJournalRoute_1.ProdId;

        select  ProdJournalRoute_2
        where
                ProdJournalRoute_2.OprId like '045*' &&
                ProdJournalRoute_2.JournalId == ProdJournalTable.JournalId;




       sop.incCount();

     /*           info
        (
            strfmt("%1,%2,%3",
            ProdJournalTable.createdDate,
            ProdJournalTable.JournalId,
            toDay() - ProdJournalTable.createdDate)
        );*/



        tmpTable.clear();

        tmpTable.ITEMID =ProdTable.ItemId;
        tmpTable.WRKCTRID=ProdjournalRoute_1.WrkCtrId;
        tmpTable.Qty=ProdJournalRoute_1.QtyGood+ProdJournalRoute_1.QtyError;

        if(ProdJournalTable.Posted==noyes::No)
        {
            tmpTable.Days= (toDay() - ProdJournalTable.createdDate)+1; //toDay() - ProdjournalRoute_1.transDate;
        }
        else
        {
            tmpTable.Days=(ProdJournalTable.PostedDate - ProdJournalTable.createdDate)+1 ;
        }

        tmpTable.Normal=noYes::No;


       if ( tmpTable.WRKCTRID == '135')
        {
            nDay = 1;
        }
        if ( tmpTable.WRKCTRID == '113')
        {
            if (ProdJournalRoute_2 != NULL)
            {
                 nDay=5;
            }
            else
            {
                nDay = 3;
            }
        }

        if (tmpTable.Days > nDay)
            tmpTable.Normal=NoYes::No;
        else
            tmpTable.Normal=NoYes::Yes ;

        tmpTable.insert();
    }
Теги
progress bar, tutorial

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Еще вопрос про покрытие по аналитикам в Сводном планировании rt2 DAX: Функционал 3 24.03.2006 18:56
Функция поиска подстроки, чувствительная к регистру . Есть ли такая в аксапте? ATimTim DAX: Программирование 4 13.02.2006 15:37
Вопрос по фильтрации axaLearner DAX: Программирование 9 20.09.2005 18:59
Есть ли планирование движения денежных средств? dd DAX: Функционал 5 10.06.2004 15:57
Вопрос к пользователю при сохранении данных в таблице Anais DAX: Программирование 1 19.03.2004 10:28

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

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

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