Текущее время: Чт, мар 28 2024, 21:46

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


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


ВНИМАНИЕ!

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



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

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


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

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

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


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

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


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

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


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


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

Зарегистрирован:
Вт, мар 18 2008, 10: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, 12:03 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
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, 12:22 
Почетный гуру
Почетный гуру
Аватара пользователя

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

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

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

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


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

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


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

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

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


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

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

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

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


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

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


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

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


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

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: 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, 16:05 
Почетный гуру
Почетный гуру

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


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

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


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

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


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

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


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

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


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

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