Текущее время: Пт, ноя 17 2017, 21:11

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 101 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7
Автор Сообщение
 Заголовок сообщения: 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
Сообщения: 167
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

Код:
' раскрашивание слова новая редакция в красный цвет
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


Помогите пожалуйста его интерпретировать в рабочий код, с этим просто беда какая то((
С более менее легкими макросами у меня получилось разобраться

Код:
  Set MySheet = XLWB_ActiveWorkbook.ActiveSheet
  MySheet.Activate
  MySheet.Cells.Replace "$1", Chr(10)


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


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

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 167
aivengo писал(а):
Имеется рабочий макрос который раскрашивает строчки если его объявить и запустить в excel
Обратите внимание, что VBScript не поддерживает именованные параметры. По этому, вместо:
Код:
c.Characters(Start:=InStr(c.Text, "новая редакция"), Length:=Len("новая редакция")).Font.Color = -16776961
должно быть
Код:
c.Characters(InStr(c.Text, "новая редакция"), Len("новая редакция")).Font.Color = -16776961
Ещё один нюанс в том, чтобы вместо Worksheets("Sheet1").Cells должно быть XLWB_ActiveWorkbook.Worksheets("Sheet1").Cells

Обо всем этом сказано здесь.
А вот Ваш код, адаптированный к VBScript:
Код:
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
Сообщения: 1092
Бородин Игорь писал(а):
Для макросов существует другой формат файла - XLSM, но в данный момент он не поддерживается.

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

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

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


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

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 167
Кодер писал(а):
Хм. А разве не получится, если загрузить вручную шаблон с 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
Сообщения: 167
Добрый день!
Вы делаете через Циклы+Паттерны? Так тоже можно, но неоправданно сложно.
Но лучше для вывода таблицы использовать компонент Грид, который позволяет сделать это в несколько кликов. Он автоматически мерджит ячейки. Пример можете посмотреть здесь.


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

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


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

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


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

Сейчас этот форум просматривают: BingBot, Google [Bot] и гости: 11


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

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