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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.03.2009, 17:28   #1  
Antoncheg is offline
Antoncheg
Участник
 
41 / 11 (1) +
Регистрация: 29.02.2008
То Gustav,
огромное спасибо, все работает за исключением последнего куска, выводится файл .xls, но данные остаются в ячейках A1 и A2

Последний раз редактировалось Antoncheg; 12.03.2009 в 17:32.
Старый 12.03.2009, 17:36   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Antoncheg Посмотреть сообщение
все работает за исключением последнего куска, выводится файл .xls, но данные остаются в ячейках A1 и A2
ммм... ну правильно всё, мы ж удалили 10 вспомогательных промежуточных колонок, и ячейки K1 и K2 "переехали" соответственно в A1 и A2.
Или вам нужны промежуточные "нарезанные" результаты? Ну, не удаляйте их тогда
Старый 12.03.2009, 17:56   #3  
Antoncheg is offline
Antoncheg
Участник
 
41 / 11 (1) +
Регистрация: 29.02.2008
Цитата:
Сообщение от Gustav Посмотреть сообщение
ммм... ну правильно всё, мы ж удалили 10 вспомогательных промежуточных колонок, и ячейки K1 и K2 "переехали" соответственно в A1 и A2.
Или вам нужны промежуточные "нарезанные" результаты? Ну, не удаляйте их тогда
Спасибо, разобрался, к вечеру сломан мозг, знаете ли с такими конструкциями
Старый 13.03.2009, 11:25   #4  
Antoncheg is offline
Antoncheg
Участник
 
41 / 11 (1) +
Регистрация: 29.02.2008
Сегодня попробовал применить результаты на практике, вот что у меня вышло

X++:
void Exec(str Path,SnQueryTableTmp SnQ)
{

   str strValue;
   str strFormula;
   COMVariant sep;

   #define.xlPasteValues(-4163)
   #define.xlListSeparator(5)
   ;


    xlApp = new COM('Excel.Application');
    xlApp.Visible(true);

    wbks = xlApp.Workbooks();
    wbk = wbks.Add();
    wkss = wbk.Worksheets();
    wks = wkss.Add();
    wks  = wkss.Item(1);
    wks.Name('Итог');
    rng = wks.Range('A1');

//==================================Первая вкладка=======================
    rstAxa = new COM('ADODB.Recordset');
    flds = rstAxa.Fields();

    flds.Append('Дата закрытия'                  ,this.adoTypeToExcel('date'));
    flds.Append('Отгрузочная накладная'          ,this.adoTypeToExcel('str'));
    flds.Append('Заказ'                          ,this.adoTypeToExcel('str'));
    flds.Append('Безналичная накладная'          ,this.adoTypeToExcel('str'));
    flds.Append('Менеджер'                       ,this.adoTypeToExcel('str'));
    flds.Append('Код клиента'                    ,this.adoTypeToExcel('str'));
    flds.Append('Дата отгрузочной накладной'     ,this.adoTypeToExcel('date'));
    flds.Append('Город'                          ,this.adoTypeToExcel('str'));
    flds.Append('Краткое наименование'           ,this.adoTypeToExcel('str'));
    flds.Append('Номенклатура'                   ,this.adoTypeToExcel('str'));
    flds.Append('Код дет. в спецификации'        ,this.adoTypeToExcel('str'));
    flds.Append('Название'                       ,this.adoTypeToExcel('str'));
    flds.Append('Склад'                          ,this.adoTypeToExcel('str'));
    flds.Append('Цена ед.'                       ,this.adoTypeToExcel('num'));
    flds.Append('Себестоимость'                  ,this.adoTypeToExcel('num'));
    flds.Append('Количество'                     ,this.adoTypeToExcel('num'));
    flds.Append('Сумма по позиции'               ,this.adoTypeToExcel('num'));
    flds.Append('Прибыль'                        ,this.adoTypeToExcel('num'));
    flds.Append('Каталожный номер'               ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера1'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера2'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера3'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера4'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера5'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера6'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера7'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера8'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера9'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера10'                ,this.adoTypeToExcel('str'));
    flds.Append('Серийные номера11'                ,this.adoTypeToExcel('str'));
    flds.Append('REF'                            ,this.adoTypeToExcel('str'));
    flds.Append('Квота'                          ,this.adoTypeToExcel('str'));
    flds.Append('Конечный клиент'                ,this.adoTypeToExcel('str'));
    flds.Append('Номер партии'                   ,this.adoTypeToExcel('str'));

    rstAxa.Open();

   // SnQ.setTmpData(SnQ);

    while select SnQ

    {


    sep = xlApp.International(#xlListSeparator);
    strFormula = strFmt('=CONCATENATE(RC[-30]%2RC[-29]%2RC[-28]%2RC[-27]%2RC[-26]%2RC[-25]%2RC[-24]%2RC[-23]%2RC[-22]%2RC[-21])',
                 sep.bStr());
    strValue = strRep(SnQ.findSerialNumbersFromWMS(SnQ), 60);

    rstAxa.AddNew();
     //   fld = flds.Item('Каталожный номер');            fld.Value(SelloutMsTable.A_PartNumber);
    fld = flds.Item('Дата закрытия');                   fld.Value(SnQ.DeliveryDate);
    fld = flds.Item('Отгрузочная накладная');           fld.Value(SnQ.PickingListId);
    fld = flds.Item('Заказ');                           fld.Value(SnQ.SalesId);
    fld = flds.Item('Безналичная накладная');           fld.Value(SnQ.InvoiceIdElect);
    fld = flds.Item('Менеджер');                        fld.Value(SnQ.SalesResponsible);
    fld = flds.Item('Код клиента');                     fld.Value(SnQ.CustAccount);
    fld = flds.Item('Дата отгрузочной накладной');      fld.Value(SnQ.PickingListDate);
    fld = flds.Item('Город');                           fld.Value(SnQ.City);
    fld = flds.Item('Краткое наименование');            fld.Value(SnQ.NameAlial);
    fld = flds.Item('Номенклатура');                    fld.value(SnQ.ItemId);
    fld = flds.Item('Код дет. в спецификации');         fld.Value(SnQ.ChosenPartNumber);
    fld = flds.Item('Название');                        fld.Value(SnQ.ItemName);
    fld = flds.Item('Склад');                           fld.Value(SnQ.InventLocationId);
    fld = flds.Item('Цена ед.');                        fld.Value(SnQ.A_SalesPrice);
    fld = flds.Item('Себестоимость');                   fld.Value(SnQ.SalesCostPrice);
    fld = flds.Item('Количество');                      fld.Value(SnQ.Qty);
    fld = flds.Item('Сумма по позиции');                fld.Value(SnQ.Amount);
    fld = flds.Item('Прибыль');                         fld.Value(SnQ.SalesProfit);
    fld = flds.Item('Каталожный номер');                fld.Value(SnQ.A_PartNumber);
    fld = flds.Item('Серийные номера1');                 fld.Value(strFormula);
    fld = flds.Item('Серийные номера2');                 fld.Value(strValue);
    fld = flds.Item('Серийные номера3');                 fld.Value(strValue);
    fld = flds.Item('Серийные номера4');                 fld.Value(strValue);
    fld = flds.Item('Серийные номера5');                 fld.Value(strValue);
    fld = flds.Item('Серийные номера6');                 fld.Value(strValue);
    fld = flds.Item('Серийные номера7');                 fld.Value(strValue);
    fld = flds.Item('Серийные номера8');                 fld.Value(strValue);
    fld = flds.Item('Серийные номера9');                 fld.Value(strValue);
    fld = flds.Item('Серийные номера10');                fld.Value(strValue);
    fld = flds.Item('Серийные номера11');                fld.Value(strValue);
    fld = flds.Item('REF');                             fld.Value(SnQ.REF);
    fld = flds.Item('Квота');                           fld.value(SnQ.InventQuotationId);
    fld = flds.Item('Конечный клиент');                 fld.Value(SnQ.EndPartnerCode);
    fld = flds.Item('Номер партии');                    fld.Value(SnQ.InventBatchId);

    rstAxa.Update();
    }


    cell = rng.Offset(1,0);
    cell.CopyFromRecordset(rstAxa);

    rng  = wks.Range('T2:T%');
    rng.FormulaR1C1( rng.Value() );
    rng.Copy();
    rng.PasteSpecial(#xlPasteValues);
    xlApp.CutCopyMode(true);

    rng = wks.Columns();
    rng = COM::createFromVariant(rng.Item('U:AD'));
    rng.Delete();

    rstAxa.close();
    actWin = xlApp.ActiveWindow();
  //  actWin.FreezePanes(true);

}
выдает ошибку "Общий сбой"
Теги
ado, excel, экспорт

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Вызов Item() для коллекций Excel Владимир Максимов DAX: Программирование 15 17.08.2006 19:47
"Такая строка уже сущ." при переносе из Excel! Zelenhof DAX: Программирование 2 13.01.2003 13:41

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

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

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