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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.05.2010, 14:54   #10  
Roman N. Krivov is offline
Roman N. Krivov
Участник
 
25 / 11 (1) +
Регистрация: 04.05.2010
Адрес: Мир, Россия, Московская область
Цитата:
Сообщение от Gustav Посмотреть сообщение
Роман, у меня два вопроса:
  1. Рекордсет создаете с учетом всех колонок, попадающих в область бланка? Т.е. у вас должно быть много фиктивных и немного содержательных - т.е. получается 16 содержательных где-то из 85 всего.
  2. Как вставляете новые строки? Сразу всё необходимое кол-во перед исходной 19-й строкой? Потом дополнительно еще формат этой исходной распространяете на добавленные?
  1. Рекордсет имеет поля под все столбцы, т.е. 16 значемых и 69 "резервных"
  2. Строки добавляются скопом с помощью следующей функции:
    X++:
    protected void insertRows(int _fromRow,
                    int _toRow,
                    int _fromWorkSheet = 1,
                    int _offset        = 1,
                    int _numOfCopies   = 1,
                    int _toWorkSheet   = 1)
    {
        COM         comRows,
                    comWorkSheet,
                    comRow, comRowTarget, selection;
        COMVariant  comRowVariant, selVariant;
        ;
    
        if (! _numOfCopies)
            return;
    
        if (! comDocument)
            throw error(strFmt("@DIS6401", "Excel.Application"));
    
        comRow = this.findRange(strFmt("%1:%2", _fromRow, _toRow));
        comRow.copy();
    
        comRowTarget = this.findRange(strFmt("%1:%2", _toRow+ _offset, _toRow+ _offset + _numOfCopies - 1));
        comRowTarget.select();
        comRowTarget.insert();
    
        comWorkSheet  = this.getWorkSheet(_toWorkSheet);
        comRows = comWorkSheet.cells();
        comRows = COM::createFromVariant(comRows.item(1));
        comRows.select();
        comExcelApplication.cutCopyMode(false);
    }
При копировании строк нарушается формат ячеек. Самое интересное, он нарушается только при копировании с помощью COM, так как написав тоже самое в VBA всё отлично

Последний раз редактировалось Roman N. Krivov; 06.05.2010 в 15:34.
Теги
ado, comvariant, excel, faq, odbc, sql, интеграция, прямой доступ, формат дат, экспорт, экспорт в excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вспомогательный класс для импорта из Excel через ADO gl00mie DAX: База знаний и проекты 80 10.04.2017 10:55
gl00mie: Read Excel table via ADO Blog bot DAX Blogs 2 09.04.2010 08:32
C# and AX Development: Using ADO for interfacing AX with an external database Blog bot DAX Blogs 0 05.08.2008 05:18
casperkamal: Using ADO to read from Excel in Microsoft Dynamics Ax Blog bot DAX Blogs 2 14.05.2007 11:59

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

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

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