Текущее время: Пн, сен 24 2018, 11:28

Часовой пояс: UTC + 4 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 125 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.
Автор Сообщение
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Чт, апр 20 2017, 13:47 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, июл 09 2008, 10:01
Сообщения: 19
Бородин Игорь написал(а):
Пока не планирую и даже не знаю, как это увязать с концепцией. Вот, например, Вы присвоили диапазону A1:A5 имя NAME, и поместили этот паттерн в цикл. В результирующей форме будет, предположим, 10 таких областей (строк) - и как все они должны называться? ведь имя-то должно быть уникальным. Можно, конечно, "растянуть" диапазон NAME, чтобы он охватывал все получившиеся строки... а если они идут не подряд, а чередуются с другими паттернами, тогда как ? Короче, это вопрос не технический, а концептуальный.


На вскидку, я думал, что такое можно реализовать через добавление нового элемента структуры формуляра, что-то типа Variable со свойством Диапазон ячеек или формула. И сохранять в том же виде, как в XML в тэге <NAME></NAME>. Могу ошибаться, но на первый взгляд, реализация этого не должна быть очень трудоемкой.

Бородин Игорь написал(а):
Если Вам не принципиально выполнение в фоне, то можете реализовать всё, что угодно посредством VBA (VBScript) пост-обработки .

К сожалению, как раз критично. У нас уже есть реализация через ZWWW с использованием макросов, теперь изучаем другие существующие инструменты.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Чт, апр 20 2017, 14:38 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 180
Ayda}{ar написал(а):
На вскидку, я думал, что такое можно реализовать через добавление нового элемента структуры формуляра
И всё-таки, если поместить эту переменную в цикл, будет дублирование имени диапазона -->> неконсистентность файла.
Я бы мог просто переносить эти именованные диапазоны "как есть"... В общем, я подумаю над этим, возможно реализую это в будущем.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Чт, апр 20 2017, 15:07 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, июл 09 2008, 10:01
Сообщения: 19
Бородин Игорь написал(а):
... В общем, я подумаю над этим, возможно реализую это в будущем.


Надеюсь, все получится)
В любом случае, спасибо за ответы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Ср, май 24 2017, 01:31 
Специалист
Специалист

Зарегистрирован:
Вт, мар 18 2008, 11:21
Сообщения: 136
Откуда: краснодар
Игорь, помогите пожалуйста, наделал кучу отчетов с использованием вашей разработки, всем все нравиться, спасибо.
Но вот настала пора прикрутить макросы, которые раскрасят цвет шрифта и строки.

Имеется рабочий макрос который раскрашивает строчки если его объявить и запустить в 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)


Еще подскажите, имеется ли возможность в формуляре сохранить макросы для целей их ручного запуска пользователями? Дело в том что в шаблоне у меня не получается его сохранить. Есть какие то нюансы?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Ср, май 24 2017, 13:03 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 180
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, но в данный момент он не поддерживается.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Ср, май 24 2017, 13:22 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 16:38
Сообщения: 1144
Бородин Игорь написал(а):
Для макросов существует другой формат файла - XLSM, но в данный момент он не поддерживается.

Хм. А разве не получится, если загрузить вручную шаблон с xlsm форматом, в котором самому набросать макросы и навесить их на событие в книге?
Просто в какой-то старой версии вашей тулзы я такое тестировал - вполне работало. Но было это до того, как вы внедрили поддержку макросов.

Вообще, для раскраски\оформления часто получается использовать условное форматирование+дополнительный скрытый столбец. В скрытом столбце указывается строка флагов форматирования, а в условном форматировании задается формула анализа для скрытого столбца.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Ср, май 24 2017, 13:34 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 180
Кодер написал(а):
Хм. А разве не получится, если загрузить вручную шаблон с xlsm форматом, в котором самому набросать макросы и навесить их на событие в книге?
Эта какая-то недокументированная возможность, о которой я сам не знал :oops: , спасибо что рассказали. Поддержка XLSM - это ещё одна всеми требуемая фича, которую я когда-нибудь реализую (как будет время).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Ср, май 24 2017, 14:32 
Специалист
Специалист

Зарегистрирован:
Вт, мар 18 2008, 11:21
Сообщения: 136
Откуда: краснодар
Игорь огромное спасибо за ответ, и в особенности за оперативность))

Присоединюсь к предыдущему автору с поддержкой VBA макросов.
Дело в том что большинство специалистов в виду инструментария ZWWW и прочих средств привыкли работать с макросами а не скриптами, изучение синтаксиса и особенностей VBScript требует времени и дополнительного изучения, да и их сложно отлаживать.
Кроме того встречаются такие выгрузки в которых конечные пользователи, не брезгуют запускать макросы самостоятельно по принципу: выгрузили отчет, запустили скрипт 1 для Марии Ивановны которая любит видеть все в розовых оттенках, запустили скрипт 2 для Иван Ивановича который предпочитает серые тона)) VBA макросы в этом отношение значительно все упрощают, было бы замечательно если бы их можно было сохранять в шаблоне.
Да и в целом отлаживать, поддерживать VBA макросы гораздо проще...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Чт, май 25 2017, 19:59 
Начинающий
Начинающий

Зарегистрирован:
Пн, мар 16 2015, 20:01
Сообщения: 11
Добрый день Игорь!

Подскажите пожалуйста возможно ли реализовать следущую структуру
Изображение

Пытаюсь в данный момент сделай простейший пример , но он почему все субстроки рисует после все впереди идущих, хотя должен выводить их в COL2
Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Чт, май 25 2017, 23:23 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 180
Добрый день!
Вы делаете через Циклы+Паттерны? Так тоже можно, но неоправданно сложно.
Но лучше для вывода таблицы использовать компонент Грид, который позволяет сделать это в несколько кликов. Он автоматически мерджит ячейки. Пример можете посмотреть здесь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пн, май 29 2017, 20:51 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 180
Готова новая версия 4.04:
- Поддержка формата .XLSM, содержащего VBA-макросы. Подробнее здесь.
- Возможность задания имени для диапазона ячеек (по просьбе Ayda}{ar ). Подробнее здесь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пн, дек 18 2017, 16:48 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 11:34
Сообщения: 704
Откуда: Tashkent -> Astana -> Moscow
Пол: Мужской
Добрый день, Игорь.
Впервые использовал вашу разработку, все очень удобно, так что отдельное Спасибо :pivo:
Столкнулся с небольшим багом: когда включен автободбор высоты, почему то активной становилась последняя ячейка страницы.
Покопавшись в коде нашел следующую ошибку :
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 для восстановления последней активной ячейки

С уважением,
Руслан

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Ср, дек 20 2017, 17:05 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 180
Руслан, добрый день. Спасибо Вам за обнаруженную ошибку! Я обновил версию. В ней, помимо других доработок, содержится и это исправление.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пт, дек 22 2017, 11:00 
Начинающий
Начинающий

Зарегистрирован:
Пн, окт 19 2009, 10:07
Сообщения: 14
Откуда: Запорожье
Пол: Мужской
Добрый день, Игорь. Начал использовать вашу разработку. Все удобно. У меня вопрос к Вам! Есть стандарный бланк в котором таблица с 5-строк и 10-cтолбцов и требуется занести данные в этот бланк ! Это возможно реализовать в Вашей разработке?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пт, дек 22 2017, 11:18 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 180
ksn написал:
Это возможно реализовать в Вашей разработке?
Добрый день! Конечно, возможно, для этого она и создана. Вот пример типичного бланка с таблицей. Спрашивайте, если что-то будет не понятно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 125 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB