Das Notes Forum

Domino 9 und frühere Versionen => Administration & Userprobleme => Thema gestartet von: Tino am 15.06.04 - 15:57:13

Titel: Drucken im Web?
Beitrag von: Tino am 15.06.04 - 15:57:13
Hallo,

Ich hab eine Datenbank wo ich den Usern im Web ein Button "Drucken" zur Verfügung stellen soll. Wenn man dort drauf drückt soll der normale Druckdialog angezeigt werden.

In der Notes-Hilfe habe ich gelesen das Drucken im Web nicht unterstützt wird.

Kenn ihr ne Möglichkeit das doch hinzubekommen, ausser Datei/Drucken usw.....????

DANKE!!!

Titel: Re:Drucken im Web?
Beitrag von: Driri am 15.06.04 - 16:16:44
Ja, da gibt es einen Workaround über JavaScript, weiß aber nicht, ob das in jedem Browser funktioniert.

Bau Dir ein Feld (Text, bearbeitbar) in die Maske, als Vorgabewert
"[<A HREF=javascript:self.print()>Drucken</A>]".

Auf das Feld legst Du dann einen Aktions-Hotspot, Formel leerlassen.
Titel: Re:Drucken im Web?
Beitrag von: Tino am 15.06.04 - 16:46:58
Oh, das ist ja schon mal nicht schlecht. Vielen DANK!!!   ;D

ne Funktion / Befehl die mit einer Aktionsschalfläche zu bedienen ist, gibts dann wohl nicht?!?!?

Titel: Re:Drucken im Web?
Beitrag von: Driri am 15.06.04 - 16:49:42
Ich bin nicht besonders fit in Sachen Webentwicklung, das ist die einzig mir bekannte Möglichkeit, was allerdings vermutlich nichts heißt.  ;)
Titel: Re:Drucken im Web?
Beitrag von: Tino am 15.06.04 - 16:52:11
Ok, ich danke Dir trotzdem....   :D

Hast mir ja schon sehr weitergeholfen......



Titel: Re: Drucken im Web?
Beitrag von: Haage am 11.09.05 - 19:08:21
hi,
ich habe das ausprobiert. irgendwas ging schief. kannst du mir vielleicht helfen?
Titel: Re: Drucken im Web?
Beitrag von: flaite am 11.09.05 - 22:08:38
http://www.google.de/search?hl=de&q=print+javaScript&btnG=Google-Suche&meta=
Der 2. Treffer ist von Dynamic Drive. Die Scripte sind normalerweise ziemlich gut.
Titel: Re: Drucken im Web?
Beitrag von: Haage am 11.09.05 - 23:01:43
also wenn ich eine schaltfläche einbaue und das dort reinkopiere, müsste die seite gedruckt werden?
Titel: Re: Drucken im Web?
Beitrag von: flaite am 12.09.05 - 06:02:20
Ich würds wie folgt anfangen.
Du packst das in den JS-Header:
Code
function printit(){  
if (window.print) {
    window.print() ;  
} else {
    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
}
}
Dann erzeugst du mit Notes einen Button und nimmst für die Properties diese Werte:
Code
<input type=button value="Print this Page" name="Print" onClick="printit()">
Wichtig ist, dass im onClick event eben printit steht.

Oder (erstmal zum einfacheren Testen).
Du erzeugst einen html Link mit PassThru HTML in die Maske.
<a href="javaScript:printit()">drucken</a>
Titel: Re: Drucken im Web?
Beitrag von: flaite am 12.09.05 - 06:31:34
Oder so:
Gib mal in die Adress-Zeile des Browsers ein:
Code
javaScript:window.print()
Dann return drücken.

Müsste mit allen neueren Browsern funktionieren.

Also einfach als PassThru html:
Code
<a href="javaScript:window.print()">drucken</a>

oder window.print() im onClick-Event eines Buttons, den du mit Notes erzeugen kannst.
Titel: Re: Drucken im Web?
Beitrag von: Haage am 12.09.05 - 11:50:07
javaScript:window.print()

habe das ausprobiert und in eine Schaltfläche kopiert, aber nichts passierte, als ich dass dann unter notes getestet habe. Was ist der JS-Header? Wo finde ich den? Sorry für die vielen Fragen
Titel: Re: Drucken im Web?
Beitrag von: Haage am 12.09.05 - 17:18:58
<input type=button value="Print this Page" name="Print" onClick="printit()">

gutden header habe ich gefunden. aber wo wird oben genannte zeile eingetragen? dird dann nur der mainframe ausgedruckt?
Titel: Re: Drucken im Web?
Beitrag von: flaite am 12.09.05 - 17:33:15
dird dann nur der mainframe ausgedruckt?
Ich würd sagen ja. Probiers aus.

Zitat
<input type=button value="Print this Page" name="Print" onClick="printit()">

gutden header habe ich gefunden. aber wo wird oben genannte zeile eingetragen?

Einfach erstmal in die Maske kopieren, die Zeile Highlighten (mit der Maus) und dann im Notes Menü (ganz oben) Text/Durchgangs HTML wählen (4. Eintrag im Menü). Menü ist das wo ganz Links Datei steht. Über den Smarticons.
Titel: Re: Drucken im Web?
Beitrag von: Haage am 12.09.05 - 19:07:31
jetzt öffnet sich da ein fenster in dem steht printit is not be defined

un dadrunter. java srcipt auf dieser seite nicht mehr ausführen oder keine weiteren java sricpt fehler auf dieser seite anzeigen. was lief falsch?
Titel: Re: Drucken im Web?
Beitrag von: flaite am 12.09.05 - 22:13:11
steht das im JavaScriptHeader Bereich der Maske?

Code
function printit(){ 
if (window.print) {
    window.print() ; 
} else {
    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = ""; 
}
}
?


Titel: Re: Drucken im Web?
Beitrag von: Haage am 13.09.05 - 08:10:18
ja, das hatte ich so von oben herauskopiert.
Titel: Re: Drucken im Web?
Beitrag von: flaite am 13.09.05 - 10:22:35
Das kann eigentlich nicht sein.
Kannst du bitte mal den html-Seitenquelltext des entsprechenden Frames posten.
Titel: Re: Drucken im Web?
Beitrag von: Haage am 13.09.05 - 10:30:11
function printit(){
if (window.print) {
    window.print() ;
} else {
    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";
}
}

das habe ich soweit in de JS Header kopiert. Sorry, baer wo finde ich den HTML Quelltext?
Titel: Re: Drucken im Web?
Beitrag von: flaite am 13.09.05 - 10:46:19
OK. Erstmal einfacher.

Statt:
<input type=button value="Print this Page" name="Print" onClick="printit()">
jetzt:
<input type=button value="Print this Page" name="Print" onClick=" window.print()">
Dies wieder in passThru html.

Mozilla: Menü: Ansicht-> Seitenquelltext anzeigen
Internet Explorer: Ansicht -> Quelltext

Frames in Framesets:
In Mozilla: rechte Maustaste irgendwo auf Frame -> in Kontextmenü: Seitenquelltext anzeigen
Internet Explorer: rechte Maustaste irgendwo auf Frame -> in Kontextmenü: Seitenquelltext anzeigen.

Am Rande:
Aus nicht nur meiner Sicht ist es Aufgabe eines Software Engineers bis zu einem gewissen Grad zu verstehen, was im Code vorgeht. Wenn du mit Notes ein Webprojekt erstellst, generiert die Domino Http Engine html und das wird an den Browser gesendet. Für die Kontrolle ist dieser generierte HTML-Quellcode Bestandteil der für den Anwendungsentwickler relevanten Code-Basis.
Ansonsten hätte z.B. ich keine Kontrolle.
Viele schlechte Projektmanager sehen das teilweise anders. Für sie sitzt ein Kostenfaktor vor einem magischen und professionellen Tool.
 
Ich hab mich jahrelang darüber aufgeregt, mittlerweile aber nicht mehr. Einfach weil dieser "Magie"-Ansatz mit naturwissenschaftlicher Sicherheit bewiesen einfach Unsinn ist. Projekte, die so erstellt werden, verlieren irgendwann zwangsläufig die KOntrolle und es gibt einen möglichen Auftrag für mich. 
Ich mag Tools, die Projekte schreiben einfacher und übersichtlicher macht. Nur ist es quasi immer notwendig, dass ich mir den generierten Code anschauen und verstehen kann. Dies geht natürlich nicht runter auf Maschinensprachenebene, aber generiertes HTML ist so ein Fall. Gleiches gilt btw. auch für generiertes SQL.

Gruß Axel
Titel: Re: Drucken im Web?
Beitrag von: Haage am 13.09.05 - 10:59:14
jetzt passiert gerade gar nichts mehr. Was muss im onClick stehen? printit ? naja habe es auch ohne ausprobiert. jeweils kommt nichts.
Titel: Re: Drucken im Web?
Beitrag von: flaite am 13.09.05 - 11:11:06
window.print()
Titel: Re: Drucken im Web?
Beitrag von: Haage am 13.09.05 - 17:21:53
jetzt geht es, warum auch immer. ich habe es jetzt noch mal zu hause getestet, weil ich das bei der arbeit mit dem html quellcode nicht konnte. ich hatte es vorher auch nur unter notes getestet, aber nicht im netz. und auch jetzt, im netz geht es, aber nicht in Notes selber. Kann man das ding jetzt irgendwie in eine Schaltfläche einbauen? (Aktion)
Titel: Re: Drucken im Web?
Beitrag von: flaite am 13.09.05 - 17:40:50
Was heisst in Notes selber?
Die Funktionalität in einem Notes Client aufrufen? oder
Die Seite mit dem Notes Designer programmieren und mit einem Browser betrachten?

Das müsste gehen, wenn du window.print() in das onClick Event eines Buttons setzt. Du kannst dir dann ja auch mal wie oben beschrieben den von Notes generierten Quellcode vom Browser anzeigen lassen.

Ich würde - gerade wenn du wenig Erfahrung hast - die betreffende Notes Datenbank bei Webentwicklung immer auf einen Server tun.

Axel
Titel: Re: Drucken im Web?
Beitrag von: Haage am 13.09.05 - 17:45:08
also notes selber, wenn ich die datenbank ganz normal unter notes aufrufe, da funktioniert es nicht, wohl aber im web. die datenbank die ich heute nachmittag hatte, war offline, also eine lokale kopie, mit der ich jetzt getestet habe, aber liegt auf einen server. bei der auf dem server geht es im web, aber nicht wie oben erwähnt ganz normal unter notes.
ich baue das in eine onclickaktion ein, also "window.print()", aber er zeigt die aktion nicht mal in der aktionsleiste an, obwohl ich das nicht unterdrücke. sehr merkwürdig.
Titel: Re: Drucken im Web?
Beitrag von: Haage am 13.09.05 - 18:11:55
außerdem will er, sobald ich den curser in eins der felder, die ausgefüllt werden müssen, setze, sofort drucken.
Titel: Re: Drucken im Web?
Beitrag von: flaite am 13.09.05 - 21:46:07
also notes selber, wenn ich die datenbank ganz normal unter notes aufrufe, da funktioniert es nicht, wohl aber im web. die datenbank die ich heute nachmittag hatte, war offline, also eine lokale kopie, mit der ich jetzt getestet habe, aber liegt auf einen server. bei der auf dem server geht es im web, aber nicht wie oben erwähnt ganz normal unter notes.
ich baue das in eine onclickaktion ein, also "window.print()", aber er zeigt die aktion nicht mal in der aktionsleiste an, obwohl ich das nicht unterdrücke. sehr merkwürdig.
Es kann sein, dass unter Notes entweder das windows event oder die print() Methode nicht unterstützt ist. Notes zeigt dann einfach das ganze Element nicht an (der Button). Ich finde das auch nicht gut. Es wäre besser, wenn in einem bestimmten "Entwicklermodus" irgendwo ein Fehler ausgegeben werden könnte. Oder in spezielle Entwickler-Log-Files. Ist ja ok, dass der User nichts sieht, wenn da etwas drin ist, das nicht funktionieren kann, aber der Entwickler sollte eben möglichst viele Informationen haben. Weil man nämlich aus meiner Sicht diesen Job nur als Kontrollfreak überlebt.


Du kannst einen zweiten Button erstellen, den du per Hide when Formel im Browser verbirgst (glaube @BrowserType) und dort dann ein @Command für das drucken.

Zitat
außerdem will er, sobald ich den curser in eins der felder, die ausgefüllt werden müssen, setze, sofort drucken.
vermutlich hast du den Aufruf auf printit() noch irgendwo anders. Schau dir den generierten Quellcode im Browser an (s.o.). Sowas passiert, wenn man nicht weiterweiss und hektisch den Funktionsaufruf in allemöglichen events reinschreibt. Wenn der nur im Button onClick steht, kann das im Grunde einfach nicht sein.

Gruß Axel
Titel: Re: Drucken im Web?
Beitrag von: Haage am 14.09.05 - 08:17:14
hallo,
vielleicht kannst mir noch bei einen anderen problem helfen, welches ich gerade habe. ich erstelle zudem noch eine suchmaske, was auch soweit klappt, aber ´dann, wenn ich nach stichworten suche, dann erscheint keine ergebnismaske, obwohl ich die maske $$SearchTemplatedefault entwickelt habe. Ich gebe dir mal den genauen wortlaut meines $$Return feldes wieder:

_DbName := @Subset(@DbName;-1);

"[/"+_DbName+"/"+ViewTitle+"?SearchView&Query="+Query+"&SearchOrder="+@Text(SearchOrder)+"&SearchMax="+@Text(SearchMax)+"&SearchWV="+@If(SearchWV="";"FALSE";"TRUE")+"&SearchThesaurus="+@If(SearchThesaurus="";"FALSE";"TRUE")+"]"

ich hoffe du kannst mir da noch helfen.
Titel: Re: Drucken im Web?
Beitrag von: flaite am 14.09.05 - 14:55:19
Eine Möglichkeit wäre, dass du denselben Wert wie im $$Return Feld in die Formel eines anderen berechneten Feldes (Name: egal) reinschreibst und das Ergebnis dort hier postest.
Es kann verschiedene Gründe haben und ich bin aus der Webentwicklung ein bischen raus, v.a. aus Webentwicklung unter Domino.

Gruß Axel 
Titel: Re: Drucken im Web?
Beitrag von: Haage am 14.09.05 - 14:57:02
hallo,
hatte dir den quellcode als nachricht geschickt. hast du das bekommen? das suchenproblem ist weg. habe da eine lösung gefunden.