Можно записать динамические теги script (использующий Прототип ):
new Element("script", {src: "myBigCodeLibrary.js", type: "text/javascript"});
проблема здесь состоит в том, что мы не знаем , когда внешний файл сценария полностью загружается.
Мы часто хотим наш подчиненный код очень следующей строки и любим писать что-то как:
if (iNeedSomeMore) {
Script.load("myBigCodeLibrary.js"); // includes code for myFancyMethod();
myFancyMethod(); // cool, no need for callbacks!
}
существует умный способ ввести зависимости от сценария без потребности обратных вызовов. Просто необходимо вытянуть сценарий через синхронный запрос Ajax и оценка сценарий на глобальном уровне.
при использовании Прототипа метод Script.load похож на это:
var Script = {
_loadedScripts: [],
include: function(script) {
// include script only once
if (this._loadedScripts.include(script)) {
return false;
}
// request file synchronous
var code = new Ajax.Request(script, {
asynchronous: false,
method: "GET",
evalJS: false,
evalJSON: false
}).transport.responseText;
// eval code on global level
if (Prototype.Browser.IE) {
window.execScript(code);
} else if (Prototype.Browser.WebKit) {
$("head").first().insert(Object.extend(
new Element("script", {
type: "text/javascript"
}), {
text: code
}
));
} else {
window.eval(code);
}
// remember included script
this._loadedScripts.push(script);
}
};
Очевидно, JasperServer - это именно то, что вам нужно (см. "Перетаскивание специального отчета" - http://www.jaspersoft.com/jasperserver ). Но сам не пользовался.
Используйте Crystal Reports для страниц JSP . Это хороший инструмент.
(полное раскрытие информации: да, я работаю в i-net software)
Мне кажется, что наш собственный i-net Clear Reports (раньше это был i-net Crystal-Clear) может отлично работать.
Проверьте нашу Ad Hoc демо и скажите нам, что вы думаете.