Эксель, slk и картинки
Модераторы: m0p3e, edward_K, Модераторы
Эксель, slk и картинки
Всем добрый.
Известно, что в экселе (по крайней мере xls-файлах) можно вставлять изображение (в моем случае это логотип предприятия на бирке).
Но если ту же картинку вставить в slk-файл, сохранить, и не закрывая откомпилить, то саппорт выдает предупреждение на неожиданный символ (...встретили неожиданный символ...). Ресурсник то создается без проблем при этом...и если его подцепить в репозитарии, потом вывести из галки на экран готовую slk-форму, то естественно этой картинки на форме нет. Но опять же, если не закрывать исходный файл и подать с картинкой на печать, то она печатается...
Может как-то можно обойти эту проблему? Я имею ввиду вывод на экран slk-файла с картинкой внутри. По форуму рылся, ничего не нашел...
Известно, что в экселе (по крайней мере xls-файлах) можно вставлять изображение (в моем случае это логотип предприятия на бирке).
Но если ту же картинку вставить в slk-файл, сохранить, и не закрывая откомпилить, то саппорт выдает предупреждение на неожиданный символ (...встретили неожиданный символ...). Ресурсник то создается без проблем при этом...и если его подцепить в репозитарии, потом вывести из галки на экран готовую slk-форму, то естественно этой картинки на форме нет. Но опять же, если не закрывать исходный файл и подать с картинкой на печать, то она печатается...
Может как-то можно обойти эту проблему? Я имею ввиду вывод на экран slk-файла с картинкой внутри. По форуму рылся, ничего не нашел...
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
SLK-формат сам по себе не предусматривает хранение встроенных объектов, ибо это - расширенный вариант электронных таблиц. и только.
Как правильно сказал Морзе - для подобных вещей пробуйте прикрутить xl-функции Галактики...
Лучше даже вообще перехватить поток из формы и сформировать полностью отчет уже в нормальном xls-формате
Как правильно сказал Морзе - для подобных вещей пробуйте прикрутить xl-функции Галактики...
Лучше даже вообще перехватить поток из формы и сформировать полностью отчет уже в нормальном xls-формате
Ну я и так пользуюсь xl-функциями для запуска макроса. Попробую формировать отчет на базе шаблона...а шаблон в формате xlt насколько я понимаю? И не совсем ясно, как перехватывать поток из формы, если картинка не передастся...или картинка уже должна стоять в "нормальном xls-формате"? Но у мну цикл по табличке, т.е. сколько раз пробегаю по нему, столько бирочек с логотипом и должно быть...
Maverick
То 5.82 была, и по тем же prbdoc-ам однотипных отчетов штук 40 было. На один пару часов тратилось, а остальные за 5 минут почковались.
edd
Если их количество динамическое, то видимо придется:
1. с макросами заморачиваться
2. попробовать последовательность: xlCopyToBuff(....); xlPasteAllFromBuff(...);
3. Сделать все в rtf.
То 5.82 была, и по тем же prbdoc-ам однотипных отчетов штук 40 было. На один пару часов тратилось, а остальные за 5 минут почковались.
edd
Можно и xls, но в случае xlt не нужно лишнего кода для отслеживания наличия файла, подавления ненужных мессаг и т.д. Вообщем наш выбор - xlt.а шаблон в формате xlt насколько я понимаю
Предполагается, что она уже в шаблоне.или картинка уже должна стоять в "нормальном xls-формате"
Если их количество динамическое, то видимо придется:
1. с макросами заморачиваться
2. попробовать последовательность: xlCopyToBuff(....); xlPasteAllFromBuff(...);
3. Сделать все в rtf.
С него всё началось. Потом пришло письмецо с требованиями к бирке, в том числе и к штрих-коду. С примером. И в этом примере данные, попадающие в штрих-код, сначала посимвольно обрабатываются, потом считается контрольная сумма... и всё это дело есс-но в макросе забито. В экселе. В rtf макросом не воспользоваться, только ежели vip-обработку нарисовать... Но мне показалось сомнительным делом исправлять и переписывать всю эту "красоту" (вложенность if чего стОит ) на vip. Надоело, знаете ли, за кодерами-грамотеями переделывать... Работает? Ну и славненько. Мож я не прав, может по другому ну никак.... Лицо пошире, слегка подкорректированный макрос вгоняется в slk. Сначала для проверочки коротенький...И тут такое дело - банальный логотип. Нет, ежели кто с штрих-кодом в кодировке Code 128 работал - киньте пример обработки! Я его в rtf сделаю! А иначе только эксель...3. Сделать все в rtf.
Я тоже так думал. Но видимо заказчики формы думают по другому.
Исходные данные: 21010100102500_2500
На это дело навешан макрос, в результате выполнения брюки превращаются в элегантную строчку:
C1641649805849444<115503204=023506164380@
И уже потом спецшрифт. Возможно это перевод в язык сканера, я в свое время из акцесса делал перевод данных, подающихся на печать, в язык принтера Zebra, иначе он не понимал... Возможно тут такая же песня, поэтому подозрительным мне не показалось
Исходные данные: 21010100102500_2500
На это дело навешан макрос, в результате выполнения брюки превращаются в элегантную строчку:
C1641649805849444<115503204=023506164380@
И уже потом спецшрифт. Возможно это перевод в язык сканера, я в свое время из акцесса делал перевод данных, подающихся на печать, в язык принтера Zebra, иначе он не понимал... Возможно тут такая же песня, поэтому подозрительным мне не показалось
Да не особо сложный, просто так неинтересно. Не в смысле "я больше люблю геморрой", просто не хочется переписывать всю эту вложенность IF-ов на VIP, а переправлять макрос на более изящный...рука уже не подымается. Вот и хотел, раз это дело работает как надо, забить как есть в slk (ну или в xlt, раз уж к этому дело идет) и жить спокойно.
В смысле? Встать программно на ячейку, а там макрос сработает? Ну вообще идея...но можно и в конце цикла запускать через тот же xlRunMacro()... А как быть опять же с картинкой? Копировать каждый раз в буфер? Почему бы тогда не копировать в буфер-вставлять при формировании slk?и запускать его на нужной ячейке
помимо If-ов есть еще и Case. Медленнее, но часто читабельность кода улучшает.не хочется переписывать всю эту вложенность IF-ов на VIP
Я к макросам вообще устойчивую неприязнь испытываю и всегда пытаюсь обойтись без них.В смысле? Встать программно на ячейку, а там макрос сработает? Ну вообще идея...но можно и в конце цикла запускать через тот же xlRunMacro()... А как быть опять же с картинкой? Копировать каждый раз в буфер? Почему бы тогда не копировать в буфер-вставлять при формировании slk?
В данном случае в качестве параметра макросу передаем ячейку. Макрос обрабатывает математику по значению в ячейке и кладет в нее же нужное значение. Или исходное передаем макросу в качестве второго параметра.
А в отношении slk... Формат уже мертвый. Не удивлюсь, если в Атлантисе скажем так 3x его сломают случайно и заявят что починить нельзя, т.к. все кто что либо в нем понимал уже уволились.
ЗЫ Я бы не поленился и переVIPовал макрос. В результате получился бы однородный отчет на xl-шаблоне или rtf. В Rtf решается проблема с неизвестным количеством итераций по выводу картинки.