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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2014, 13:45   #1  
Art_Tanis is offline
Art_Tanis
Участник
 
225 / 36 (2) +++
Регистрация: 04.02.2014
Импорт информации по спланированным заказа на производство из экселя в АХ
Добрый день!
В виду извращенности бизнес логики необходимо импортировать data из Эксель и преобразовать ее в виде спланированных заказов на производство.
В принципе ничего сложного. Формат таблицы импорта:
Столбец1 Столбец2 Столбец3
Код номенклатуры Маршрут Колличество

Вот джоб он это сделает:
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                          dlgRefType;
    DialogField                     dlgInventSiteId;
    Dialog                                   dialog;
    Filename                               filename;

    ItemId                                    ItemId;
    ItemGroupId                          ItemGroupId;
    ItemBomId                              ItemBomId;
    ItemRouteId                          itemRouteId;

    ReqPO                                      ReqPo;

    ReqPlanId                              ReqPlanId;
    ReqRefType                               RefType;
    InventSiteId                        inventSiteId;

    ReqDate                                                                 ReqDate;
    ReqDateOrder                                                       ReqDateOrder;
    Qty                                                                         Qty;
    //FormStringControl                   FormStringControl = new FormStringControl();
        ;


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

    dlgRefType   = dialog.addField(typeid(ReqRefType), "Ref Type");
    dlgReqPlanId = dialog.addField(typeid(ReqPlanId), "Plan Id");
    dialog.run();
    if (dialog.run())
    {
        filename = (dialogPath.value());
        ReqPlanId = dlgReqPlanId.value();
        RefType   = dlgRefType.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);

        while(RCell.value().bStr() != "")
        {
            ItemId                   = RCell.value().bStr();
            RCell                      = Cells.item(nRow,2);
            ItemRouteId                  = RCell.value().bStr();
            RCell                      = Cells.item(nRow,3);
            Qty                      = RCell.value().double();

            ReqDate                  = today();
            
            ttsbegin;
            
            ReqPo.initValue();
            ReqPo.ItemId                           = ItemId;
            ReqPo.ReqDate                         = ReqDate;
            ReqPo.ItemRouteId                     = ItemRouteId;
            ReqPo.ReqPlanId                                                      = ReqPlanId;
            ReqPo.ReqPOStatus                                        = ReqPOStatus::Approved;
            ReqPo.RefType                                                          = RefType;
            ReqPO.Qty                                                               =    Qty;
            ReqPo.CovInventDimId                                                     ="4799";

            ReqPo.insert();
            
            ttscommit;

            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 ");
    }

}
Но вот проблема - мне необходимо подтянуть действующую активную спецификацию.
И разумеется возник вопрос - А как это сделать??
Когда создается через форму то используется метод InventTable lookupBOMId одним из агрументов которого является FormStringControl. Но я планирую просто сделать класс для запуска импорта с точкой входа.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Импорт из Эксель через АДО и обновление ячеек Экселя 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, время: 11:42.