Добрый день.
Как обычно "каверзный вопрос":
В 3.3 имеется деталь "Веб страница", которая реализована на базе
ActiveX компонента Shell.Explorer.2. А точнее его метода Navigate
в 3.0 это также прекрасно работает, к примеру:
открывает пустое окошко браузера.
Имеется необходимость хранить и отображать HTML код (и не только) из базы, для этого в базе реализуем поле типа BLOB и положим туда HTML страницу.
Самый простой, однако абсолютно неэлегантный способ:
достать данные из BLOB, сохранить их на локальный диск,
и далее отобразить через Navigate и URL типа: "file://...."
Однако хочется красоты и удобства, а именно загрузка в экземпляр
браузера через стрим, и, как оказалось, это возможно на vb.net:
http://vbcity.com/forums/topic.asp?tid=111957&page=1
Технология такой возможности описана тут:
http://msdn.microsoft.com/en-us/library/aa752047(VS.85).aspx
Получить Document отвечающий за страницу удалось без проблем:
var clsDocument=ActiveXControl.ActiveXObject.Document;
(кстати в простейшем случае, можно воспользоваться методом
write, который работает: clsDocument.write("Мой текст");,
однако необходимо открывать не только html, но и другие
виды документов, которые MSIE показывает при открытии через
А далее в примере на vb.net идет преобразование типов, для
вызова методов другого интерфейса:
DirectCast(clsDocument, IPersistStreamInit).InitNew()
// тут идет подготовка данных в stream и затем:
//load the content into the browser..
DirectCast(clsDocument, IPersistStreamInit).Load(clsStream)
Может быть местные гуру или программеры TSCRM подскажут:
возможно ли это и если да, то как.
---
TSCRM 3.0.4.109 X25 100 лицензий.
Microsoft SQL Server Enterprise Edition (64-bit)
Version 9.00.3054.00
Нравится
Отлично!
Тогда подскажите, как это реализовать в 3.3 ибо в настоящий момент
у нас на тесте 3.3.0.42, которую нам любезно предоставила Ваша компания.
--
TSCRM 3.0.4.109 X25 100 лицензий.
Microsoft SQL Server Enterprise Edition (64-bit)
Version 9.00.3054.00
Добрый день, Сергей!
К сожалению объект Document не поддерживает интерфейс IPersistStreamInit как Dual, а значит скриптовые языки с ним работать не могут. На текущий момент единственное решение, которое я вижу для решения Вашей задачи, это именно работа с временными файлами. Можно попробовать поиграться с различными AJAX (DOM) фичами, типа innerHTML, но там скорее всего будет масса проблем с заголовками, скриптами, и кодировками.
Ок.
Спасибо, Сергей.
Будем сражаться ;-)
--
TSCRM 3.0.4.109 X25 100 лицензий.
Microsoft SQL Server Enterprise Edition (64-bit)
Version 9.00.3054.00
"Карло Сергей" написал:К сожалению объект Document не поддерживает интерфейс IPersistStreamInit как Dual, а значит скриптовые языки с ним работать не могут
А не как дуальный? Из сообщения я понял что поддерживают и из нескриптовых языков это сделать можно. Тогда создав очень простой COM можно решить задачу.
Да, конечно же, так сделать можно, но нужно будет создавать его в нескриптовом языке.