экспорт Biff8

отредактировано 12:39 Раздел: FastReport 4.0
Что то не работает экспорт BIFF.
Ошибка "Переполнение целого", в frxCrypto модуль CryptoGetJenkinsHash
Wondows Vista, установлен Office 2003
Где бы почитать как с ним работать?
«1

Комментарии

  • отредактировано May 2011
    Исправил.
  • отредактировано 12:39
    Ошибка осталась
    FR 4.11.4

    Если в опциях проекта установть Overflow Checking=true, то появляется ошибка "Integer Overflow",
    если Overflow Checking=false, то ошибки нет
  • отредактировано 12:39
    Версия 4.11.5 все работает. Спасибо. Экспорт нравится.
  • Stalker4Stalker4 123
    отредактировано 12:39
    Погонял немного экспорт Biff8 в FR 4.11.6

    Нашел несколько недоработок:

    1) В русской локализации многие пункты диалога экспорта не помещаются на своих местах.

    2) Смотрим файл test_b8.xls или test_b8_2.xls (это экспорт отчета через Biff8)
    2.1) Высота первой строки меньше чем должна быть, в результате последняя строка текста видна только на половину.
    Справедливости надо сказать, что в ole-xls такая же беда (см. файл test_ole.xls)
    Очень хочется, что бы новый Biff8 экспорт в Excel, был более точен в размерах ячеек (высота, ширина), чем его предшественник (ole).
    2.2) В шаблоне отчета к ReportTitle прикреплен Child. Так вот в экспорте ole-xls (test_ole.xls), Biff8 (режим объединения данных: как в отчете, test_b8.xls) одна пустая строка сразу после заголовка есть. А в Biff8 (режим объединения данных: все в одну страницу, test_b8_2.xls) пустой строки сразу после заголовка почему то нет.
    2.3) Смотрим заголовок таблицы (Header) и видим, что почти все двух-строчные заголовки почему то показываются в виде одной строки с непечатным символов (квадратик) между словами, как раз на том месте, где должен был быть перенос на другу строку.
    В случае же с экспорта ole-xls (test_ole.xls) такой ошибки нет.

    3) Общее соображение: Будет ли работать режим объединения данных "как в отчете", если в отчете окажется несколько сотен (или даже тысяч страниц) ? Ведь наверняка на кол-во страниц в Excel есть какое то, относительно небольшое, ограничение.
    ИМНО по умолчанию лучше, что бы был установлен режим "все в одну страницу".


  • отредактировано 12:39
    1. Всё влезает. Мне сообщили об этой проблеме сразу после релиза: я немного передвинул флажки/кнопки чтобы всё влезало.

    2.1. Высота точно меньше? Я открыл отчёт в preview и xls файл в Excel и визуально сравнил по горизонтальным линиям - вроде совпадает. Другое дело, что Excel не позволяет установить высоту строки и любой многострочный текст в Excel получается выше чем в отчёте и в результате не влазит в ячейку.

    2.2. Режим "всё в одну страницу" (biff8) сливает все страницы в одну и удаляет пустые строки - так задумано. Насчёт других экспортов не знаю: не обращал внимание на такие особенности.

    2.3. Открыл файлы в архиве: Excel рисует тексты без квадратиков. Каким Excel-ем Вы открывали файлы?

    3. При выключенном кешировании (в FR4 оно всегда выключено, потому что его там просто нет) на большом отчёте любой табличный экспорт вылетит с EOutOfResources, а при включённом кешировании (FR5) длина отчёта может быть любой. Что до ограничений Excel BIFF8, то там номер столбца ячейки задаётся двухбайтным числом и потому этот номер ограничен примерно 65,000. Возможно в более новых версиях BIFF (BIFF12 например) этот номер 4-байтный и такой проблемы нет.
  • Stalker4Stalker4 123
    отредактировано 12:39
    Draeden написал: »
    1. Всё влезает. Мне сообщили об этой проблеме сразу после релиза: я немного передвинул флажки/кнопки чтобы всё влезало.
    В версии 4.11.6 не влазит. См dlg1.png и dlg2.png.
    Draeden написал: »
    2.1. Высота точно меньше? Я открыл отчёт в preview и xls файл в Excel и визуально сравнил по горизонтальным линиям - вроде совпадает. Другое дело, что Excel не позволяет установить высоту строки и любой многострочный текст в Excel получается выше чем в отчёте и в результате не влазит в ячейку.
    Точно меньше. См. test_b8.png. На картинки хорошо видно, что 4-ая строка многострочного заголовка отчета видна только на половину. И когда в отчете таких строк много, то править их все очень долго.
    Draeden написал: »
    Другое дело, что Excel не позволяет установить высоту строки
    Почему не позволяет ? Вот например макрос для задания высоты выделенной строки
    Selection.RowHeight = 68.25
    Draeden написал: »
    2.2. Режим "всё в одну страницу" (biff8) сливает все страницы в одну и удаляет пустые строки - так задумано. Насчёт других экспортов не знаю: не обращал внимание на такие особенности.
    Если так и задумано это плохо. Я специально сделал между заголовком отчета и заголовком таблицы небольшую пустую строку, что бы заголовок отчета и заголовок таблицы не сливались, а biff8 взял и проигнорировал мое форматирование.
    Предлагаю: Либо вообще не трогать пустые строки, особенно там где их специально сделали, либо добавить опцию которая бы регулировала такую работу.
    Draeden написал: »
    2.3. Открыл файлы в архиве: Excel рисует тексты без квадратиков.
    А у меня квадратики есть. См. test_b8.png. На рисунке хорошо видны квадратики в многострочных заголовках таблицы.
    Draeden написал: »
    Каким Excel-ем Вы открывали файлы?
    Русский Excel 2003 (11.8211.8202) SP3
    Draeden написал: »
    3. При выключенном кешировании (в FR4 оно всегда выключено, потому что его там просто нет) на большом отчёте любой табличный экспорт вылетит с EOutOfResources.
    Ради интереса решил попробовать. Взял реальный отчет. Формат A3, альбом. В FR-Preview получилась 471 страница.
    Сделал экспорт ole-xls. Получилось 15316 строк.
    Сделал экспорт biff8-xls (все в одну страницу). Получилось 13441 строк.
    Сделал экспорт biff8-xls (как в отчете). Получилось 470 страниц.

    При экспорте ole-xls и biff8-xls (как в отчете) во время всего процесса экспорта на экране было окно-ProgressBar с описанием процесса экспорта. И после пропадания этого окна сразу становилось доступно само окно FR-Preview с отчетом.
    А вот при экспорте biff8-xls (все в одну страницу) после пропадания окна-ProgressBar с отсчетом страниц, вместо отчета в окне FR-Preview, был серый фон и программа была чем то занята еще 5-10 минут и только после этого времени стало доступно само окно FR-Preview с текстом отчета.
    Draeden написал: »
    Что до ограничений Excel BIFF8, то там номер столбца ячейки задаётся двухбайтным числом и потому этот номер ограничен примерно 65,000. Возможно в более новых версиях BIFF (BIFF12 например) этот номер 4-байтный и такой проблемы нет.
    Вообще то в этом вопросе речь шла несколько о другом возможном ограничении.
    А именно о ограничении на кол-во листов в одном xls-файле.
  • отредактировано 12:39
    1. Сейчас есть 4.11.7 (с 16-го мая).
    2. Я вижу, что текст не поместился в ячейку. Я имел ввиду размер самой ячейки: он разве не совпадает с размером соответствующей ячейки в отчёте?
    3. Получается средствами Excel можно изменить междустрочный интервал так, чтобы текст в заголовке поместился в ячейку?
    4. 471 страница это маленький отчёт. Кеширование нужно для отчётов на 10-20 тысяч страниц.
    5. Правильное замечание по поводу "серое окно на 5-10 минут": biff8 не пользуется прогресс баром. Надо будет добавить эту фичу. За эти 5-10 минут он превращал отчёт в таблицу и делал biff файл.
    6. На кол-во листов тоже какое то ограничение должно быть - сейчас уже не вспомню. Но даже если оно ограничено тем же двухбайтным счётчиком (т.е. 65000 страниц), то время экспорта подобного отчёта будет огромным. Не актуальная проблема, на мой взгляд.
  • Stalker4Stalker4 123
    отредактировано May 2011
    Draeden написал: »
    Сейчас есть 4.11.7 (с 16-го мая).
    Я курсе. Но так как changes.txt не изменился, то что именно там поменялось не известно. Поэтому я и не стал качать эту версию.
    Draeden написал: »
    2. Я вижу, что текст не поместился в ячейку.
    Ну да, так и есть. В FR-Preview многострочный заголовок отображается нормально, а в excel кусок строки не виден. То есть визуально высота строки в Excel меньше, чем она должна быть для корректного отображения многострочного текста. Вот это я бы и хотел, что бы было улучшено в экспорте biff8-xls.
    Draeden написал: »
    Я имел ввиду размер самой ячейки: он разве не совпадает с размером соответствующей ячейки в отчёте?
    А как я это могу посмотреть ? В прочем это вы можете и сами увидеть, ведь не зря же я в первом своем сообщении в этой теме в атаче приложил пример отчета t1.fr3.
    Draeden написал: »
    3. Получается средствами Excel можно изменить междустрочный интервал так, чтобы текст в заголовке поместился в ячейку?
    Эээ, насчет межстрочного интервала я ничего не говорил. Я всего лишь сказал, что Excel с помощью своих макросов (Selection.RowHeight = 68.25) может задать точное значение высоты строки (Row). Следовательно и вы по идее при экспорте biff8 можете задать правильную высоту строки.
    То есть очень важно, что бы при экспорте отчета, визуальная высота строки в excel и высота строки отчета макисмально совпадали.
    Draeden написал: »
    5. Правильное замечание по поводу "серое окно на 5-10 минут": biff8 не пользуется прогресс баром. Надо будет добавить эту
    фичу. За эти 5-10 минут он превращал отчёт в таблицу и делал biff файл.
    Тут есть один непонятный момент: В варианте biff8-xls (как в отчете), почти сразу после пропадания окна-ProgressBar с отсчетом страниц, управление передается в FR-Preview. А в случае biff8-xls (все в одну страницу), после пропадания окна-ProgressBar с отсчетом страниц, проходит еще 5-10 минут преждне чем управление передается в FR-Preview.
    Но ведь объем данных в обоих случаях одинаковый, почему же тогда такая большая разница во времени для этих вариантов экспорта ?
    Draeden написал: »
    6. На кол-во листов тоже какое то ограничение должно быть - сейчас уже не вспомню. Но даже если оно ограничено тем же двухбайтным счётчиком (т.е. 65000 страниц), то время экспорта подобного отчёта будет огромным. Не актуальная проблема, на мой взгляд.
    Ну если ограничение на кол-во страниц в xls-файле 65000, то тогда по этому пункту вопросов нет.

    А что по поводу проблем, которые я описал в пункте 2.3 и в пункте 2.2 (и мое предложение по этому пункту, после ваших разъяснений) ?
  • отредактировано 12:39
    Несущественные изменения в changes.txt не попадают.

    Высота и ширина ячеек и так совпадают с размерами ячеек в отчёте, но из за того, что в Excel нельзя установить размер междустрочного интервала (или, как я его назвал, "высотой строки" - "line height"), получается, что многострочные тексты в Excel будут занимать больше места чем в FR и всё, что можно сделать это установить величину междустрочного интервала в FR такую, чтобы она совпадала с аналогичной величиной в Excel. Экспорт в Biff здесь ничего сделать не сможет.
    написал:
    Но ведь объем данных в обоих случаях одинаковый, почему же тогда такая большая разница во времени для этих вариантов экспорта ?
    Объём данных одинаковый, но сложность алгоритмов разная. В случае режима "как в отчёте" (это всё равно, что "каждая страница в отчёте в отдельный лист Excel") время экспорта линейно зависит от размера входных данных, т.е. T(n) = O(n). В случае режима "весь отчёт в один лист Excel" сложность алгоритмов которые соединияют страницы отчёта и делают другую работу уже квадратичная, т.е. T(n) = O(n^2). В FR5 с этим получше, там T(n) = O(n log(n)) для "все страницы в один лист", но всё равно на больших отчётах будет заметна разница между n и n log(n). Отсюда берутся дополнительные 10 минут.

    Подведу итог:
    1. Исправить "квадратики" в многострочных текстах при просмотре в Excel 2003 Rus.
    2. Добавить опцию DeleteEmptyLines, чтобы можно было в режиме "все листы в одну страницу" не удалять пустые строки. Кстати, удаление пустых строк задаётся на 455-й строчке в frxExportBIFF (там написано "EmptyLines := not FSingleSheet").
    3. Показывать прогресс-бар при экспорте.
  • Stalker4Stalker4 123
    отредактировано 12:39
    Draeden написал: »
    Высота и ширина ячеек и так совпадают с размерами ячеек в отчёте, но из за того, что в Excel нельзя установить размер междустрочного интервала (или, как я его назвал, "высотой строки" - "line height"), получается, что многострочные тексты в Excel будут занимать больше места чем в FR и всё
    То есть, если я вас правильно понял, высота в пикселях этой многострочной строки текста в FR (высота мемки) и Excel (высота строки) совпадают, но из за разного межстрочного интервала в FR (LineSpacing) и в Excel, визуально межстрочная строка в Excel становится частично не видна ?
    Draeden написал: »
    , что можно сделать это установить величину междустрочного интервала в FR такую, чтобы она совпадала с аналогичной величиной в Excel. Экспорт в Biff здесь ничего сделать не сможет.
    А может можно при экспорте в biff8 учитывать эту разницу в межстрочных интервалах между FR и Excel и на соответствующий коэффициент менять высоту строки в Excel ? Или дать возможность задать этот коэффициент в диалоге biff8 ?
    Еще один момент: похоже, что в основном визуальное несоответствие высоты строки с многострочным текстом в Excel бывает, если шрифт строки отличается от стандартного в Excel (а это Arial, 10). Следовательно можно попробовать создать расчетный коэффициент экспорта biff8 для каждого текста в зависимости от размера его шрифта.


    Подведу итог:
    Draeden написал: »
    1. Исправить "квадратики" в многострочных текстах при просмотре в Excel 2003 Rus.
    Так у вас это воспроизвелось или нет ?
    Draeden написал: »
    2. Добавить опцию DeleteEmptyLines, чтобы можно было в режиме "все листы в одну страницу" не удалять пустые строки. Кстати, удаление пустых строк задаётся на 455-й строчке в frxExportBIFF (там написано "EmptyLines := not FSingleSheet").
    Как временное решение до выхода обновленного biff8 годится.
  • отредактировано 12:39
    написал:
    То есть, если я вас правильно понял, высота в пикселях этой многострочной строки текста в FR (высота мемки) и Excel (высота строки) совпадают, но из за разного межстрочного интервала в FR (LineSpacing) и в Excel, визуально межстрочная строка в Excel становится частично не видна ?
    Да. Excel и FR по разному рисуют один и тот же текст.
    написал:
    А может можно при экспорте в biff8 учитывать эту разницу в межстрочных интервалах между FR и Excel и на соответствующий коэффициент менять высоту строки в Excel ?
    Нельзя. Во первых это сложно сделать (нужно учитывать особенности разных шрифтов), а во вторых это неправильно, потому что изменив высоту строки в Excel сразу же изменится высота всех ячеек на той же строке.
    написал:
    Так у вас это воспроизвелось или нет ?
    У меня сейчас нет Excel 2003 Rus.
  • отредактировано 12:39
    написал:
    Как временное решение до выхода обновленного biff8 годится.
    Я добавил свойство DeleteEmptyRows. Обратите внимание, что при экспорте через GUI (через диалоговое окно с настройками экспорта) BIFF будет вести себя также как и раньше: установка флажка "все страницы в один лист" автоматически сделает DeleteEmptyRows = True. Управлять свойствами SingleSheet и DeleteEmptyRows раздельно можно будет только программно. Обновление появится на днях.
  • xlaalaaxlaalaa Минск
    отредактировано May 2011
    Тоже давно хочу обсудить с вами проблему того, что междустрочный интервал внутри ячеек FR и Excel отличается.

    Например, если взять Word, то там есть возможность регулировать в свойствах абзаца междустрочный интервал, в Excel к сожалению такой возможности нет. В связи с чем есть два предложения:

    1) Решить вопрос на уровне алгоритма экспорта. Это получится, если добавить в алгоритм экспорта параметр "масштабный коэффициент". Который будет регулировать растяжение отчета по вертикали. Т.е при экспорте в Excel вертикальный размер и положение по оси Y для всех ячеек отчета увеличивать пропорционально этого коэффициента. Чтобы компенсировать междустрочный интервал.
    Если пользователю не важна точная геометрия отчета, но важно чтобы текст не обрезался он будет выставлять коэффициент (1.2- 1.3). Если нужны точные размеры квадратиков а многострочного текста в отчет нет то будет выставлять коэффициент 1 (единица) чтобы сохранить результат который есть сейчас. Этот коэффициент программист отчетов моет выставлять программно.

    2) Решить вопрос на уровне редактора шаблона и алгоритмов генерации отчета. Реализовать параметры на уровне шаблона отчета, или на уровне каждой ячейки в отдельности. По аналогии с параметрами абзаца в Microsoft Word, сделать регулируемым междустрочный интервал, чтобы его можно было подогнать под внешний вид Excel.
    Что бы FR еще на этапе генерации и дизайна отчета делал размеры и отступы текста такими как они потом должны будут получится в Excel.

    PS: Можно пойти дальше, об этом я говорил на конференции в прошлом году в Киеве. Ведь FR фактически сейчас имеет две модификации дизайнере и генератора. Можно выбрать стилистику и специфику отчетов "для матричного принтера", а "можно для графических принтеров". На мой взгляд имело бы смысл сделать третий стиль отчетов, ориентированный на выдачу информации приближенной к выдачи в электронные таблицы. Чтобы при дизайне этих отчетов сразу на этапе дизайна применялась матричная разметка отчетов, без возможности наслаивать ячейки друг на друга. Чтобы потом не бороться с последствиями наслоений ячеек и неаккуратной стыковки. Интересно, что FR5 в этом отношении предложит?
  • Stalker4Stalker4 123
    отредактировано May 2011
    Draeden написал: »
    Нельзя. Во первых это сложно сделать (нужно учитывать особенности разных шрифтов)
    Разных шрифтов действительно много, но для всех сразу делать и не надо. Для начала можно взять Arial, Times New Roman, Courier New
    и сделать подобный расчет коэффициента для них, а дальнейшем можно будет добавить поддержку расчета межстрочного коэффициента и для других шрифтов (про которые вас будут просить пользователи).
    Draeden написал: »
    а во вторых это неправильно, потому что изменив высоту строки в Excel сразу же изменится высота всех ячеек на той же строке.
    То, что сейчас в ряде случаев многострочный текст визуально не помещается по высоте в ячейку (строку) в Excel ИМНО более неправильно.
    Всегда можно сделать опцию на данную фичу и пользователь уже сам будет выбирать что ему важнее - сохранение размера отчета или что бы текст визуально помещался в отведенные для него высоты строк.
    Draeden написал: »
    Я добавил свойство DeleteEmptyRows. Обратите внимание, что при экспорте через GUI (через диалоговое окно с настройками экспорта) BIFF будет вести себя также как и раньше: установка флажка "все страницы в один лист" автоматически сделает DeleteEmptyRows = True. Управлять свойствами SingleSheet и DeleteEmptyRows раздельно можно будет только программно. Обновление появится на днях.
    То есть получается, что если я в Delphi-OI или перед ShowReport установлю в DeleteEmptyRows = False, а потом пользователь в диалоге biff8 выберет "все страницы в один лист", то моя установка DeleteEmptyRows пропадет ?
    Это плохо.
    В какой же тогда момент (через какое событие) я должен делать нужную мне установку DeleteEmptyRows ?
    Может все же стоит добавить эту опцию и в диалог biff8 тоже ?
  • отредактировано 12:39
    Идея масштабного коэффициента мне не нравится, потому что этот коэффициент искажает весь отчёт из за нескольких ячеек с многострочным текстом. Кроме того, после такого искажения испортится разбивка на страницы и растянутся картинки.

    Подгонять параметры текста автоматически, чтобы результат экспорта совпадал с выводом Excel - тоже не лучшая идея. Наверняка при разработке такой фичи выяснится, что разные версии Excel выводят текст немного по разному и придётся добавлять в FR вместо опции "подогнать под Excel" много опций вида "подогнать под Excel 2003", "...под Excel 2010" и т.п. А потом объявятся OpenOffice с LibreOffice; выяснится, что сборка Sun ОпенОфиса выводит текст не так как сборка Novell версии 3.2.1.223.43; что сборка xxx LibreOffice добавляет один лишний пиксель над каждой буквой "к" написанной жирным шрифтом и т.д.

    Я могу предложить два варианта. Первый я уже упоминал: изменить свойство LineHeight в дизайнере FR у нужных ячеек и надеяться, что результат экспорта совпадёт с ожиданиями. Второй: указать какие компоненты экспортировать в виде картинки. Минусы второго решения очевидны, но оно во первых легко реализуется для всех табличных экспортов разом, а во вторых позволяет экспортировать нужные ячейки один-в-один, правда с потерей возможности редактирования.

    По поводу матричной разметки в FR5 сказать ничего не могу: я не занимаюсь разработкой этой области FR. Здесь нам нужен den.

  • отредактировано 12:39
    написал:
    Может все же стоит добавить эту опцию и в диалог biff8 тоже
    Пожалуй я так и сделаю. Заодно вынесу все опции в 4-ую вкладку, а то их становится слишком много.
  • xlaalaaxlaalaa Минск
    отредактировано May 2011
    Draeden написал: »
    Первый я уже упоминал: изменить свойство LineHeight в дизайнере FR у нужных ячеек и надеяться, что результат экспорта совпадёт с ожиданиями

    Не совсем тогда понял о каком конкретно свойстве идет речь? Это что-то новое из FR5 или это уже есть в FR4?
    Функцию с именем "LineHeight" нашел только в объекте TfrxDrawText. Полагаю это немного не то что имелось в виду.

    Draeden написал: »
    . Второй: указать какие компоненты экспортировать в виде картинки. Минусы второго решения очевидны, но оно во первых легко реализуется для всех табличных экспортов разом, а во вторых позволяет экспортировать нужные ячейки один-в-один, правда с потерей возможности редактирования.

    Текст в экселе в виде картинки это кощунство :) Смысла в этом нету. В экселе данные нужны в их первоначальном виде текст как текст, числа как числа. Даже числа как текст пользователям не подходят.
  • xlaalaaxlaalaa Минск
    отредактировано 12:39
    Ага понял, на самом деле это свойство называется TfrxCustomMemoView.LineSpacing с помощью него управляется междустрочный интервал. Это как раз то, что нужно.

    Надо же я упустил его из виду и не подозревал о его существовании. Нужно будет все наши отчеты подровнять :)
  • отредактировано 12:39
    Да, я его имел ввиду. Извиняюсь за неточность.
  • Stalker4Stalker4 123
    отредактировано 12:39
    Draeden написал: »
    Идея масштабного коэффициента мне не нравится, потому что этот коэффициент искажает весь отчёт
    То что искажает это конечно не очень хорошо, но тут надо смотреть насколько сильно исказиться конкретный отчет.
    Вполне возможно для конкретных видов отчетов некоторое их искажение будет меньшей бедой, чем визуальное обрезание текста в ячейках Excel.
    Draeden написал: »
    из за нескольких ячеек с многострочным текстом. Кроме того, после такого искажения испортится разбивка на страницы и растянутся картинки.
    Это у кого как. Например у меня в большинстве отчетов как раз весьма много многострочных данных и почти нет картинок.
    Draeden написал: »
    Я могу предложить два варианта. Первый я уже упоминал: изменить свойство LineHeight в дизайнере FR у нужных ячеек и надеяться, что результат экспорта совпадёт с ожиданиями.
    Попробовал этот вариант. Взял свой тестовый отчет (t1.fr3) увеличил LineSpace у мемки с заголовком с 2 до 4.
    В этом случае в xls все экспортировалось хорошо и заголовок визуально поместился в высоту строки в Excel.
    НО тут есть один существенный минус: Ведь межстрочное расстояние визуально увеличивается и в самом FR, в том числе и при печати такого отчета. И это уже выглядит не красиво, да и размер отчета тоже становиться больше.
    ИМНО выход тут может быть такой: к TfrxCustomMemoView добавляем свойство LineSpaceExport. По умолчанию оно равно LineSpace. И если изменить LineSpace измениться и LineSpaceExport (но не наоборот). Соответственно свойство LineSpaceExport и будет использоваться для задания межстрочных интервалом при экспорте данных.
    Draeden написал: »
    Второй: указать какие компоненты экспортировать в виде картинки.
    Не, этот вариант мне категорически не нравится. Любой экспорт (кроме графических форматов) включая и xls, должен быть максимально живым (в смысле доступным для редактирования).

  • отредактировано 12:39
    Если в форматировании не указан разделитель дроби, а указан числовой формат например %2.2n,
    то печатается нормально 1 259 627,14
    а экспортируется 125 962 714. В OLE экспорте было все нормально.
    В форматировании по умолчанию разделитель дроби не устанавливается и все нормально печатается
    и экспортировалось, у меня куча отчетов без указания разделителя в формате.
    Если разделитель не указан я так думаю, что нужно установить системный.
    Сейчас срочно откатываю всех на старый экспорт.
  • отредактировано 12:39
    Алгоритм экспорта чисел такой:

    1. Взять десятичный разделитель из мемки. Если этот разделитель не установлен, то п. 2.
    2. Взять системный десятичный разделитель.

    Затем убрать из текста всё кроме цифр и найденного десятичного разделителя. Всё что останется - преобразовать в число.

    Если в отчёте есть мемка с текстом "123,456", а десятичный разделитель в её настройках не установлен и системный разделитель - точка, то экспорт никак не сможет догадаться, что "123,456" это 123.456
  • отредактировано 12:39
    Windows Vista
    Системный разделитель целой и дробной части ","
    Кидаю мемку, в мемке пишу 1234567,89
    Щелкаю правой кнопкой мыши, в Форматирование строка форматирования "%g", разделитель дроби отсутствует.
    На печать выводится 1234567,89
    Экспорт XLS OLE 1234567,89
    Экспорт BIFF 123456789

    Разделитель дроби по умолчанию не устанавливается, по крайней мере сейчас, в ранних версиях не помню, в некоторых отчетах есть,
    но во многих отсутствует.
    Тогда и при форматировании разделитель дроби по умолчанию нужно устанавливать, я на это внимания не обратил, ну а пользователям
    объяснить очень трудно: печатает с разделителями, а экспортирует в Excel без них.
  • Stalker4Stalker4 123
    отредактировано 12:39
    2Draeden:
    02.06.2011 вышло обновление FR 4.11.8.
    Были ли там какие либо изменения с biff8, которым мы обсуждали в этой теме ?

    И что по поводу ответа на мое последнее сообщение в этой теме, в частности про LineSpaceExport. ?
  • отредактировано 12:39
    Bali, приложите fp3 файл.

    Stalker4, я сделаю в biff8 растягивание ячеек. В обновлении 4.11.8 нету ничего из того, что здесь обсуждали.
  • PNPPNP
    отредактировано 12:39
    Да, с форматированием реально косяк.
    Попробуйте задать в ячейке формат %2.2f и разделитель дроби "-" и сделать экспорт.
    Допустим, в ячейке значение 311893,52
    в превью видим 311893-52
    в экспорте 3118-94 (хотя значение в ячейке нормальное)
  • отредактировано 12:39
    Draeden,
  • отредактировано 12:39
    То ли архив повреждён, то ли у меня WinRAR глючит - не открывается этот файл. Лучше приложите fp3 незаархивированный - всё равно размер небольшой.
  • отредактировано 12:39
    Не дает мне .fp3 загрузить. Выдается сообщение:
    Неудачная загрузка. Необходимо проверить настройки и права доступа. Пожалуйста, сообщите об этом администрации.
    Прикрепил zip
  • отредактировано 12:39
    Посмотрел файл. Результат экспорта ожидаемый. Сначала экспорт проверяет десятичный разделитель мемки - там пусто. Затем он берёт FormatSettings.DecimalSeparator - там точка. Получается, что в числе "123,456" запятая это просто ненужный символ с точки зрения экспорта, потому что десятичный разделитель это точка. Если в настройках мемки поставить запятую в качестве разделителя, то всё ок.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.