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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2014, 18:39   #1  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Потому как взорвать еще надо:
ReqPlannedOrder::construct().insertFromForm()
Цитата:
reqCalcExplodePo = this.getReqCalcExplode(reqTransPo);
reqCalcExplodePo.parmRecalculateBomLevels(_recalculateBomLevels);
reqCalcExplodePo.run();
Старый 15.12.2014, 21:05   #2  
Art_Tanis is offline
Art_Tanis
Участник
 
225 / 36 (2) +++
Регистрация: 04.02.2014
Итог! Будет все так::
X++:
static void _HTC_EXCELIMPORT_DataImportToAXFromExcel(Args _args)
{
    SysExcelApplication              xlsApplication;
    SysExcelWorkBooks         xlsWorkBookCollection;
    SysExcelWorkBook                    xlsWorkBook;
    SysExcelWorksheets       xlsWorkSheetCollection;
    SysExcelWorksheet                  xlsWorkSheet;
    SysExcelRange                          xlsRange;
    SysExcelCells                             Cells;
    SysExcelCell                              RCell;
    CommaIO                                  inFile;
    int                                      nRow,i;
    DialogField                          dialogPath;
    DialogField                         dlgFilepath;
    DialogField                        dlgReqPlanId;
   
    DialogField                     dlgInventSiteId;
   

    Dialog                                   dialog;
    Filename                               filename;

    ItemId                                    ItemId;
    ItemGroupId                          ItemGroupId;
    ItemBomId                              ItemBomId;
    ItemRouteId                          itemRouteId;
    InventSiteId                        inventSiteId;

    ReqPO                                      ReqPo;
    ReqTrans                                   ReqTrans;

    ReqPlanId                                    ReqPlanId;
    ReqCalcExplodePo                                   reqCalcExplodePo;
    


    ReqDate                                                                 ReqDate;
    ReqDateOrder                                                       ReqDateOrder;
    Qty                                                                         Qty;
    
    InventDim   InventDim;

        ;


    dialog = new Dialog("Import");
    dialogPath = dialog.addField(typeid(Filenameopen), "File Name");

    dlgReqPlanId = dialog.addField(typeid(ReqPlanId), "Plan Id");
    dlgInventSiteId = dialog.addField(typeid(InventSiteId), "Site");
    dialog.run();
    if (dialog.run())
    {
        filename = (dialogPath.value());
        ReqPlanId = dlgReqPlanId.value();
       
        InventSiteId = dlgInventSiteId.value();
    }
    inFile = new CommaIO (filename, 'R');

    if (!inFile || infile.status() != IO_Status::Ok )
    {
        throw error (strfmt("@SYS19312",filename));
    }
     try
    {
        xlsApplication          = SysExcelApplication::construct();
        xlsWorkBookCollection   = xlsApplication.workbooks();
        xlsWorkBookCollection.open(filename);
        xlsWorkSheetCollection  = xlsApplication.worksheets();
        xlsWorkSheet            = xlsWorkSheetCollection.itemFromNum(1);
        Cells                   = xlsWorkSheet.Cells();
        nRow = 2;
        RCell = Cells.Item(nRow, 1);
       
        InventDim.InventSiteId = InventSiteId;
        while(RCell.value().bStr() != "")
        {
            ItemId                   = RCell.value().bStr();
            RCell                      = Cells.item(nRow,2);
            Qty                      = RCell.value().double();

            ttsbegin;
            ReqPO.ReqPlanId     = ReqPlanId;
            ReqPO.RefType       = ReqRefType::BOMPlannedOrder;

            ReqPO.initFromItemId(ItemId);

            ReqPo.setBOMCreated(true);
            ReqPo.setRouteCreated(true);




            ReqPO.Qty   = Qty;
            ReqPo.BOMRouteCreated                                         = ReqBOMRouteCreated::BOMRoute;
            Reqpo.CovInventDimId =                        InventDim::findOrCreate(inventDim).inventDimId;
            ReqPO.PurchUnit      = inventTableModule::find(ItemId,moduleInventPurchSales::Invent).UnitId;
            ReqPo.ReqTime                                                                    = timenow();
            ReqPo.ReqDateDlv     = today();
            ReqPo.ReqDateOrder   = today();

             ReqPo.insert();

            ReqTrans.insertFromReqPo(ReqPo,True);
          
            ttscommit;

            reqCalcExplodePo = ReqCalcExplode::newReqTrans(ReqTrans, null);
            ReqCalcExplodePo.run();

            nRow++;
            RCell = Cells.Item(nRow, 1);
        }
        xlsApplication.quit();

        xlsApplication.finalize();
        info("Imported completed");
    }
    catch( Exception::Error)
    {
        //Close Excel.
        xlsApplication.quit ();
        xlsApplication.finalize ();
        ttsabort;
        info("Unable to process the excel import ");
    }

}
Для 2009 это работает. Вопрос. А вот теперь я хочу разумеется сделать кнопку все дела чтобы пользователь выбирал и грузил. А как лучше сделать? Вот я сделаю класс, надо ли наследовать RunBase класс? Выполнять Batch Job мне ненадо - это редкие загрузки будут ... что мне даст Runbase? Только сохранение параметров на параметров на вызываемой форме диалога?
Старый 15.12.2014, 22:49   #3  
Art_Tanis is offline
Art_Tanis
Участник
 
225 / 36 (2) +++
Регистрация: 04.02.2014
Class_DryRuImportPOFromExcel.xpo
Сделал на базе RunBaseBatch.
За это сообщение автора поблагодарили: AlGol (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Импорт из Эксель через АДО и обновление ячеек Экселя Sada DAX: Программирование 0 23.07.2014 15:43
Финансовый квит производственного заказа. Ах 2009 Rimantas DAX: Программирование 1 07.10.2013 19:58
Импорт КЛАДР Ах 3.0 СП2 HouseNumber Sada DAX: Программирование 5 17.10.2012 16:26
Импорт в АХ через ODBC AXbeginer DAX: Программирование 14 02.10.2009 08:12
Производство: проблема при обработке производственного заказа Asp DAX: Функционал 2 15.04.2004 15:48

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:59.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.