SAPфорум.RU https://www.sapboard.ru/forum/ |
|
XLSX Workbench https://www.sapboard.ru/forum/viewtopic.php?f=13&t=86294 |
Страница 7 из 15 |
Автор: | Ayda}{ar [ Чт, апр 20 2017, 12:47 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Бородин Игорь написал(а): Пока не планирую и даже не знаю, как это увязать с концепцией. Вот, например, Вы присвоили диапазону A1:A5 имя NAME, и поместили этот паттерн в цикл. В результирующей форме будет, предположим, 10 таких областей (строк) - и как все они должны называться? ведь имя-то должно быть уникальным. Можно, конечно, "растянуть" диапазон NAME, чтобы он охватывал все получившиеся строки... а если они идут не подряд, а чередуются с другими паттернами, тогда как ? Короче, это вопрос не технический, а концептуальный. На вскидку, я думал, что такое можно реализовать через добавление нового элемента структуры формуляра, что-то типа Variable со свойством Диапазон ячеек или формула. И сохранять в том же виде, как в XML в тэге <NAME></NAME>. Могу ошибаться, но на первый взгляд, реализация этого не должна быть очень трудоемкой. Бородин Игорь написал(а): Если Вам не принципиально выполнение в фоне, то можете реализовать всё, что угодно посредством VBA (VBScript) пост-обработки . К сожалению, как раз критично. У нас уже есть реализация через ZWWW с использованием макросов, теперь изучаем другие существующие инструменты. |
Автор: | Бородин Игорь [ Чт, апр 20 2017, 13:38 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Ayda}{ar написал(а): На вскидку, я думал, что такое можно реализовать через добавление нового элемента структуры формуляра И всё-таки, если поместить эту переменную в цикл, будет дублирование имени диапазона -->> неконсистентность файла. Я бы мог просто переносить эти именованные диапазоны "как есть"... В общем, я подумаю над этим, возможно реализую это в будущем. |
Автор: | Ayda}{ar [ Чт, апр 20 2017, 14:07 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Бородин Игорь написал(а): ... В общем, я подумаю над этим, возможно реализую это в будущем. Надеюсь, все получится) В любом случае, спасибо за ответы. |
Автор: | aivengo [ Ср, май 24 2017, 00:31 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Игорь, помогите пожалуйста, наделал кучу отчетов с использованием вашей разработки, всем все нравиться, спасибо. Но вот настала пора прикрутить макросы, которые раскрасят цвет шрифта и строки. Имеется рабочий макрос который раскрашивает строчки если его объявить и запустить в excel Code: ' раскрашивание слова новая редакция в красный цвет With Worksheets("Sheet1").Cells Set c = .Find(What:="новая редакция", LookIn:=xlValues) If Not c Is Nothing Then FirstAddress = c.Address Do c.Characters(Start:=InStr(c.Text, "новая редакция"), Length:=Len("новая редакция")).Font.Color = -16776961 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> FirstAddress End If End With ' раскрашивание строки в красный цвет где есть слово исключено With Worksheets("Sheet1").Cells Set c = .Find(What:="исключено", LookIn:=xlValues) If Not c Is Nothing Then FirstAddress = c.Address Do Rows(c.Row).Select With Selection.Rows.Font .Color = -16776961 .TintAndShade = 0 End With ' c.Value = "исключено" Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> FirstAddress End If End With Помогите пожалуйста его интерпретировать в рабочий код, с этим просто беда какая то(( С более менее легкими макросами у меня получилось разобраться Code: Set MySheet = XLWB_ActiveWorkbook.ActiveSheet MySheet.Activate MySheet.Cells.Replace "$1", Chr(10) Еще подскажите, имеется ли возможность в формуляре сохранить макросы для целей их ручного запуска пользователями? Дело в том что в шаблоне у меня не получается его сохранить. Есть какие то нюансы? |
Автор: | Бородин Игорь [ Ср, май 24 2017, 12:03 ] |
Заголовок сообщения: | Re: XLSX Workbench |
aivengo написал(а): Имеется рабочий макрос который раскрашивает строчки если его объявить и запустить в excel Обратите внимание, что VBScript не поддерживает именованные параметры. По этому, вместо:Code: c.Characters(Start:=InStr(c.Text, "новая редакция"), Length:=Len("новая редакция")).Font.Color = -16776961 должно быть Code: c.Characters(InStr(c.Text, "новая редакция"), Len("новая редакция")).Font.Color = -16776961 Ещё один нюанс в том, чтобы вместо Worksheets("Sheet1").Cells должно быть XLWB_ActiveWorkbook.Worksheets("Sheet1").CellsОбо всем этом сказано здесь. А вот Ваш код, адаптированный к VBScript: Code: With XLWB_ActiveWorkbook.Worksheets("Sheet1").Cells ' раскрашивание слова новая редакция в красный цвет Set c = .Find("новая редакция") If Not c Is Nothing Then FirstAddress = c.Address Do c.Characters(InStr(c.Text, "новая редакция"), Len("новая редакция")).Font.Color = -16776961 Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> FirstAddress End If ' раскрашивание строки в красный цвет где есть слово исключено Set c = .Find("исключено") If Not c Is Nothing Then FirstAddress = c.Address Do With c.EntireRow.Interior '.Font .Color = -16776961 .TintAndShade = 0 End With Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> FirstAddress End If End With aivengo написал(а): имеется ли возможность в формуляре сохранить макросы для целей их ручного запуска пользователями? Нет, формат XLSX не поддерживает макросы. Для макросов существует другой формат файла - XLSM, но в данный момент он не поддерживается.
|
Автор: | Кодер [ Ср, май 24 2017, 12:22 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Бородин Игорь написал(а): Для макросов существует другой формат файла - XLSM, но в данный момент он не поддерживается. Хм. А разве не получится, если загрузить вручную шаблон с xlsm форматом, в котором самому набросать макросы и навесить их на событие в книге? Просто в какой-то старой версии вашей тулзы я такое тестировал - вполне работало. Но было это до того, как вы внедрили поддержку макросов. Вообще, для раскраски\оформления часто получается использовать условное форматирование+дополнительный скрытый столбец. В скрытом столбце указывается строка флагов форматирования, а в условном форматировании задается формула анализа для скрытого столбца. |
Автор: | Бородин Игорь [ Ср, май 24 2017, 12:34 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Кодер написал(а): Хм. А разве не получится, если загрузить вручную шаблон с xlsm форматом, в котором самому набросать макросы и навесить их на событие в книге? Эта какая-то недокументированная возможность, о которой я сам не знал , спасибо что рассказали. Поддержка XLSM - это ещё одна всеми требуемая фича, которую я когда-нибудь реализую (как будет время).
|
Автор: | aivengo [ Ср, май 24 2017, 13:32 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Игорь огромное спасибо за ответ, и в особенности за оперативность)) Присоединюсь к предыдущему автору с поддержкой VBA макросов. Дело в том что большинство специалистов в виду инструментария ZWWW и прочих средств привыкли работать с макросами а не скриптами, изучение синтаксиса и особенностей VBScript требует времени и дополнительного изучения, да и их сложно отлаживать. Кроме того встречаются такие выгрузки в которых конечные пользователи, не брезгуют запускать макросы самостоятельно по принципу: выгрузили отчет, запустили скрипт 1 для Марии Ивановны которая любит видеть все в розовых оттенках, запустили скрипт 2 для Иван Ивановича который предпочитает серые тона)) VBA макросы в этом отношение значительно все упрощают, было бы замечательно если бы их можно было сохранять в шаблоне. Да и в целом отлаживать, поддерживать VBA макросы гораздо проще... |
Автор: | Бородин Игорь [ Чт, май 25 2017, 22:23 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Добрый день! Вы делаете через Циклы+Паттерны? Так тоже можно, но неоправданно сложно. Но лучше для вывода таблицы использовать компонент Грид, который позволяет сделать это в несколько кликов. Он автоматически мерджит ячейки. Пример можете посмотреть здесь. |
Автор: | Бородин Игорь [ Пн, май 29 2017, 19:51 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Готова новая версия 4.04: - Поддержка формата .XLSM, содержащего VBA-макросы. Подробнее здесь. - Возможность задания имени для диапазона ячеек (по просьбе Ayda}{ar ). Подробнее здесь. |
Автор: | ghost [ Пн, дек 18 2017, 15:48 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Добрый день, Игорь. Впервые использовал вашу разработку, все очень удобно, так что отдельное Спасибо Столкнулся с небольшим багом: когда включен автободбор высоты, почему то активной становилась последняя ячейка страницы. Покопавшись в коде нашел следующую ошибку : Code: METHOD postpr_vbs_autofit . .... * restore cell selection r_ole->r_spreadsheet->[b]get_selection[/b]( IMPORTING top = lv_selection_top left = lv_selection_left rows = lv_selection_rows columns = lv_selection_columns ) . .... ENDMETHOD . "postpr_vbs_autofit вместо get_selection должен быть вызов метода set_selection для восстановления последней активной ячейки С уважением, Руслан |
Автор: | Бородин Игорь [ Ср, дек 20 2017, 16:05 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Руслан, добрый день. Спасибо Вам за обнаруженную ошибку! Я обновил версию. В ней, помимо других доработок, содержится и это исправление. |
Автор: | ksn [ Пт, дек 22 2017, 10:00 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Добрый день, Игорь. Начал использовать вашу разработку. Все удобно. У меня вопрос к Вам! Есть стандарный бланк в котором таблица с 5-строк и 10-cтолбцов и требуется занести данные в этот бланк ! Это возможно реализовать в Вашей разработке? |
Автор: | Бородин Игорь [ Пт, дек 22 2017, 10:18 ] |
Заголовок сообщения: | Re: XLSX Workbench |
ksn написал: Это возможно реализовать в Вашей разработке? Добрый день! Конечно, возможно, для этого она и создана. Вот пример типичного бланка с таблицей. Спрашивайте, если что-то будет не понятно.
|
Страница 7 из 15 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |