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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.02.2011, 15:43   #21  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от Gustav Посмотреть сообщение
Так, а чего? Он же никому не мешает - ни сортировке, ни обратной выгрузке куда-либо, ни работе функции ДЛСТР и т.п...

Ну, конечно, если хочется себя занять, то займите - никто Вас отговаривать не будет. Но кончится тем, что Вы поменяете ComExcelDocument_RU на выгрузку с использованием ADO и CopyFromRecordset - там этой проблемы нет
Возможно он никому не мешает, но:
- не эстетично
- при обработке такого столбца (если по этим столбцам идет сравнение) придется избавляться от этого апострофа
Может быть написать макрос, который бы удалял это апострофы перед открытием ?
__________________
Александр
Старый 24.02.2011, 16:40   #22  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от tolstjak Посмотреть сообщение
Возможно он никому не мешает, но:
- не эстетично
Его не видно на рабочем листе. Видно только в строке редактирования текущей ячейки. Если это уж так раздражает, ну, сделайте активной какую-нибудь другую ячейку, не из этой колонки перед предъявлением таблицы пользователю. К слову сказать, младший брат Excel - OWC Spreadsheet всегда автоматически добавляет апостроф к строке, если она может быть интерпретирована как число - независимо от того, поставили ли вы его сами или отформатировали ячейку как текст.
Цитата:
Сообщение от tolstjak Посмотреть сообщение
- при обработке такого столбца (если по этим столбцам идет сравнение) придется избавляться от этого апострофа
При какой, например? Сравнение одинаковых (в остальном) значений двух ячеек, в одной из которых есть апостроф, а в другой нет, покажет полное совпадение!
Цитата:
Сообщение от tolstjak Посмотреть сообщение
Может быть написать макрос, который бы удалял это апострофы перед открытием ?
Вы попробуйте его сначала найдите макросом - свойство Value в коде будет возвращать значение без него!

P.S. Методом Range.PrefixCharacter можно найти, если таки соберетесь искать.

Последний раз редактировалось Gustav; 24.02.2011 в 16:56.
Старый 24.02.2011, 17:01   #23  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от Gustav Посмотреть сообщение
Его не видно на рабочем листе. ......Вы попробуйте его сначала найдите макросом - свойство Value в коде будет возвращать значение без него!
Возможно мы говорим о разных вещах:
апостроф в коде я проставляю следующим образом:

account1 = strfmt("`%1", bankGroup.BankCorrAccount_RU);

если Вы делаете по другому, пожалуйста напишите.

Может быть из-за того, что неправильно ставлю апостроф у меня в экселе все видно?
__________________
Александр
Старый 24.02.2011, 17:21   #24  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от tolstjak Посмотреть сообщение
account1 = strfmt("`%1", bankGroup.BankCorrAccount_RU);
Да-с, возник у нас терминологический казус Я назвал даму сэром, в смысле одинарную кавычку - апострофом и ввел Вас в заблуждение. Но с другой стороны ж в моем значении в самом начале указана именно одинарная кавычка. Ее и надо было попробовать...

В общем, ладно. У Вас не то, конечно. У Вас - символ с кодом 96, а надо тот, который 39.
Старый 24.02.2011, 19:10   #25  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от tolstjak Посмотреть сообщение
Может быть написать макрос, который бы удалял это апострофы перед открытием ?
Показалось занятным, соорудил джоб:
X++:
{
    ComExcelDocument_RU doc = new ComExcelDocument_RU();

    COM     xlApp;
    COM     wbook;
    COM     activeSheet;
    COM     range;

    COMEnum2Object  cellCollection;
    COM             cell;
    COMVariant      prefChar;
    ;

    doc.NewFile('',true);
    wbook = doc.getComDocument();

    xlApp = wbook.Parent();
    activeSheet = xlApp.ActiveSheet();

    range = activeSheet.Range('A1:A100');
    range.Value2("'30101810100000000859"); // 1. выводим значения с ведущим апострофом (одинарной кавычкой)

    print 'Загляните в окошко Excel';
    pause;

    range.NumberFormat('@'); // 2. форматируем заполненный диапазон как Текст

    cellCollection = new COMEnum2Object(range);

    // 3. перебирая ячейки диапазона, удаляем ведущий апостроф, если находим
    for (cell = cellCollection.getFirst(); cell; cell = cellCollection.getNext())
    {
        prefChar = cell.PrefixCharacter();
        if (prefChar.bStr() == "'")
        {
            cell.Value2(cell.Value2()); // "удаляем" = переписываем значение само на себя
        }
    }

    info('Еще раз загляните в окошко Excel');
}
НО! НО... Признаться, не очень понимаю, почему у Вас не сработало предварительное форматирование как текст:
Цитата:
Сообщение от tolstjak Посмотреть сообщение
столбец, в который выводится счет, делал текстовым- не помогает.
Вот, вроде всё работает:
X++:
{
    ComExcelDocument_RU doc = new ComExcelDocument_RU();

    COM     xlApp;
    COM     wbook;
    COM     activeSheet;
    COM     range;
    ;

    doc.NewFile('',true);
    wbook = doc.getComDocument();

    xlApp = wbook.Parent();
    activeSheet = xlApp.ActiveSheet();

    range = activeSheet.Range('A1:A100');

    range.NumberFormat('@'); // предварительное форматирование КАК ТЕКСТ ячеек вывода коррсчета
    range.Value2("30101810100000000859"); // выводим значения коррсчета БЕЗ апострофа
}
В общем, что имеем в сухом остатке? Поговорили об апострофе, короче
За это сообщение автора поблагодарили: tolstjak (1).
Старый 25.02.2011, 08:16   #26  
tolstjak is offline
tolstjak
Участник
 
440 / 16 (1) ++
Регистрация: 05.01.2003
Цитата:
Сообщение от Gustav Посмотреть сообщение
Показалось занятным, соорудил джоб:
[xpp]
В общем, что имеем в сухом остатке? Поговорили об апострофе, короче
Большое спасибо за очень развернутый ответ. Все понятно.
__________________
Александр
Старый 26.05.2011, 16:51   #27  
kair84 is offline
kair84
Участник
 
47 / 58 (2) ++++
Регистрация: 15.04.2010
Адрес: Belarus
Заработало
Забыл отписаться, все заработало через COM объект RecordSet, теперь для построения отчетов который выводятся в Excel, нет необходимости ставить сей продукт от MS, на каждую клиентскуб тачку.....

если интересно позже выложу подробности.
Теги
excel, pastespecial

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод всех меток из заданного уровня на заданных языках в Excel wojzeh DAX: Программирование 0 19.03.2010 23:45
Помогите сделать действие в Excel через COM kashperuk DAX: Программирование 25 10.09.2007 15:59
dynamicsusers: DL Tips And Tricks: ADO Database Reader (Jet way) - Excel Example Blog bot DAX Blogs 0 02.08.2007 03:50
Экспорт в Excel - поле формата "Дата" Ned DAX: Программирование 15 25.04.2003 10:01

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

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

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