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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.05.2014, 19:44   #1  
sashanka is offline
sashanka
Участник
 
28 / 10 (1) +
Регистрация: 07.02.2013
SpreadSheet for dummies
Доброго времени суток.
На форме имеется SpreadSheet 11.0, с установленным в Yes свойством AutoDeclaration. При загрузке формы в SpreadSheet подгружается и наполняется данными шаблон :
X++:
    COM         worksheets,
                sheet,
                newsheet,
                range,
                rows,
                newRows,
                cell;

    TextBuffer  tb;

    Table1      table1;
    Table2      table2;

    int         curRow,
                numRows;

    ;
    //загрузка шаблона
    GridExcel.XMLURL("S:\\testSpreadSheet.xml");

    worksheets  = GridExcel.Worksheets();

    //выделем нужную строчку на шаблоне
    sheet       = worksheets.Item(1);
    range       = sheet.Range("A9:F9");
    curRow      = 9;

    //подсчитываем кол-во необходимых для вставки строк
    select count(recid) from table1;
    numRows = table1.RecId;

    //вставляем строки
    rows    = sheet.Rows();
    newRows = rows.Item( strfmt("%1:%2", curRow + 1,NumRows + curRow) ); //вставляем после выделенной строки
    newRows.Insert();

    //копируем нужный формат
    newRows = rows.Item( strfmt("10:%1", NumRows + curRow) ); //куда будем копировать форматирование
    rows = range.EntireRow(); //откуда будем копировать форматирование
    rows.copy( newRows );

    //заполняем подготовленные строки данными
    tb = new TextBuffer();
    while select table1
    {
        tb.setText( strfmt( "%1\t%2\t%3\t%4\t%5\t%6",
                        table1.ItemName,
                        table1.Qty,
                        table1.PurchPrice,
                        table1.PurchPriceAmount,
                        table1.VendName,
                        table1.Invoice)
                    );

        tb.toClipboard();
        range.paste();

        curRow++;
        range = sheet.range("A" + int2str(curRow ) + ":F" + int2str(curRow ) ); //переход на следующую строчку
    }

    tb.setText("");

    //добавляем строчку Итого
    cell = range.item(1,1); cell.value2("Итого");
    cell = range.item(1,4); cell.value2(strfmt( '=SUM(R[-%1]C:R[-1]C)', numRows));

    //делаем шрифт строки жирным
    cell = range.Font();
    cell.bold(true);
И вроде все работает.
НО стоит только захотеть проделать все те же операции в другом листе книги, скопированном с первого:
X++:
    sheet.copy( sheet );
    newsheet    = worksheets.Item(1); //так как вставка нового листа происходит перед существующим
    range       = newsheet.Range("A9:F9");
Далее пытаемся абсолютно также вставить новые строки и копировать форматирование и вылезает ошибка:
Цитата:
Метод "copy" в COM-объекте класса "_Range" возвратил код ошибки 0x800A03EC (<неизвестно>), который означает: <неизвестно>.
При этом:
- необходимое кол-во строк на новый лист добавляется, они выделяются и их можно заполнить каким-либо значением из кода;

На данный момент проблема "решена" копированием всех строк из шаблона в новый лист, а там уже аналогично вставляем новые строки и форматируем их.
Новый лист добавляется с помощью
X++:
newsheet    = worksheets.add();
Объясните что-то я делаю не так? Шаблон прилагается
Вложения
Тип файла: zip testSpreadSheet.zip (2.6 Кб, 102 просмотров)

Последний раз редактировалось sashanka; 19.05.2014 в 19:47.
Теги
errors, spreadsheet

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
palleagermark: Easy reusable method to load postal codes (zipcodes) or how to save a spreadsheet as XML Blog bot DAX Blogs 0 11.10.2013 19:11
palleagermark: XML transformation from Excel spreadsheet Blog bot DAX Blogs 0 22.11.2012 14:11
Медленное копирование данных из Spreadsheet в PivotTable PSerg DAX: Программирование 0 12.08.2009 10:19
SpreadSheet if_maks DAX: База знаний и проекты 8 22.12.2005 12:42
Использование OWC.Spreadsheet для ускорения экспорта/импорта в/из Excel. storer DAX: Программирование 24 28.03.2005 19:10

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

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

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