powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
14 сообщений из 14, страница 1 из 1
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34911088
scaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

помогите пожалуйста разобраться, что делаю не так?
1. С помощью инструмента Мастер Activate. активировал класс Microsoft Excel 11.0 Object Library (v2.0)
2. строю CSP страницу:

<html>
<head>
<!-- Put your page Title here -->
<title> </title>
</head>
<body>
...
<input type="button" name="btnRep" value="Отчет" onclick="#server(..ExReport())#">
...
</body>
</html>
<script language="Cache" Method="ExReport" runat="Server">
...
set excApp = ##class("Activate.Excel.Application").%New()
...
</script>

и на строчке set excApp = ##class("Activate.Excel.Application").%New()
у меня вылетает ошибка "MS Excel вызвал не допустимую ошибку и будет закрыт и все в этом духе"

В чем проблема?
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34911217
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы делаете отчеты в Excel, то можно и без Activate обойтись.
Например, так :
http://tech.groups.yahoo.com/group/cache_ru/message/6595
--------
Cache for Windows (Intel) 5.2.3 (Build 710U) Tue Dec 12 2006 10:15:11 EST
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34911415
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прислушайтесь к мудрому Мампсу и Александру Коблову, запускать Excel на сервере не совсем хорошо. Встанет он там раком и иди смотри что ему не нравится, а это вполне реальная ситуация, например при совместном доступе двух процессов к одному файлу на редактирование, Excel встанет с вопросом (другой пользователь редактирует файл, открыть на чтение ...).
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34911981
scaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проделал, как тут написано

http://tech.groups.yahoo.com/group/cache_ru/message/6595

только что-то вместо русских букв знаки вопросов ("?") выходят в экселе

мне для чего объект эксель-то нужен был, некоторые отчеты будут сложными, т.е. в них будут присутствовать объекты, например чекбоксы, пользователь в них галочки будет расставлять а внизу формула должна быть выбранных человек столько-то (т.е. чекбоксов с галочками)

такой метод использовал при построении отчета:
XML XSL преобразование:

set objXMLDoc = ##class("Activate.MSXML2.DOMDocument60").%New()
set xslDoc = ##class("Activate.MSXML2.DOMDocument60").%New()

do objXMLDoc.loadXML(XMLCode)
do xslDoc.loadXML(XSLCode)

do xslDoc.setProperty( "SelectionNamespaces", "xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:fo='http://www.w3.org/1999/XSL/Format'" )
set s = objXMLDoc.transformNode(xslDoc)

... вот тут и проблема как содержимое переменной s открыть в экселе ...

do xslDoc.%Close()
do objXMLDoc.%Close()
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34912018
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, сам эксель держать у клиента полностью, общаться с сервером например через Vism?
А генерить экселевские файлы с чекбоксами на стороне сервера как-то кажется не очень правильным.
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34912511
scaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добавил в свою csp страницу код

<script language="Cache" method="OnPreHTTP" arguments="" returntype="%Boolean">
set %response.ContentType = "application/x-msexcel"
d %response.SetHeader("Content-Disposition","attachment;filename=excel.xls")
set %response.Expires = 30
quit 1
</script>

заработало, даже если выводить результат трансформации по шаблону

set s = objXMLDoc.transformNode(xslDoc)
w s

только таже проблема почему русские буквы в виде вопросов выходят??
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34912539
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В какой кодировке сервер отдает данные и в какой их принимает эксель?

Какая локаль стоит?
В экселе в меню "сервис - параметры - общие - параметры веб-документа" - что там?
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34912671
scaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
делаю XML XSL преобразование:

XML файл encoding="windows-1251"

шаблон XSL encoding="windows-1251"

результат s = objXMLDoc.transformNode(xslDoc) - не знаю, кажется там просто будет (<?xml version="1.0" ?> )

а здесь где указывать?
<script language="Cache" method="OnPreHTTP" arguments="" returntype="%Boolean">
set %response.ContentType = "application/x-msexcel"
d %response.SetHeader("Content-Disposition","attachment;filename=excel.xls")
set %response.Expires = 30
quit 1
</script>
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34912710
scaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в дополнении
в экслеле стоит кодировка Кирилица (Windows)
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34912781
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все таки файл, который отдает сервер, нужно посмотреть и определить, какая физическая кодировка используется и сравнить с декларируемой в xml. Кстати, в формате XML обязательно декларирование кодировки, разве нет?
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34912826
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scaroрусские буквы в виде вопросов выходят??
Попробуйте в классе добавить параметр
Код: plaintext
Parameter CHARSET = "utf-8";
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34912881
ATM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ATM
Гость
scaroделаю XML XSL преобразование:

XML файл encoding="windows-1251"

шаблон XSL encoding="windows-1251"

результат s = objXMLDoc.transformNode(xslDoc) - не знаю, кажется там просто будет (<?xml version="1.0" ?> )

а здесь где указывать?
<script language="Cache" method="OnPreHTTP" arguments="" returntype="%Boolean">
set %response.ContentType = "application/x-msexcel"
d %response.SetHeader("Content-Disposition","attachment;filename=excel.xls")
set %response.Expires = 30
quit 1
</script>

Вставте в метод s %response.CharSet="windows-1251"

А кто-нить знает что в ContentType для открытия в ОпенОфис?
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34912891
ATM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ATM
Гость
Пропустил "написать" в предыдущем посте.. :(
...
Рейтинг: 0 / 0
Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
    #34913064
scaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
установил параметр

Parameter CHARSET = "utf-8";

а также в xml-ках поменял на encoding=""utf-8"", сразу стал понимать русские буквы

ВСЕМ СПАСИБО!!!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Объявляю класс set excApp = ##class("Activate.Excel.Application").%New() - Ошибка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]