Druckversion mit Includes - Druckversion aus Frames ?
Uli Webster Weber
- asp.net
Hallo Forum!
Ich habe mich an einer "Kleinigkeit" festgebissen, die mir noch die Nerven raubt ...:
Ich habe vor, die Texte unserer Firmenseite in eine Druckversion einzubauen, die
von der Aufmachung her unserem Briefpapier entspricht, also links der Text, rechts
ein Logo, Adresse, Telefon usw. ... wo weit, so schlecht.
Schön einfach wäre es gewesen, die Textseite zu nehmen und als QueryString an
eine "Print"-Seite zu übergeben - als Server sided Include oder was auch immer.
SSIs werden leider vor ASP-Statements ausgeführt, desterwegen musste ich diese
Idee recht schnell begraben.
Jetzt habe ich einen zweiten Ansatz versucht: Der Text wird in einen speziellen
Frameset geladen. Immerhin lief der Ausdruck schon mal mit dem NN4.7, IE5
mochte nur den aktiven Frame drucken und Mozilla5 schoss den Rechner ab ... :-(
Kennt jemand von euch eine Cross-Browser-fähige Möglichkeit für mein Prob ???
Danke schon mal,
Uli
Schön einfach wäre es gewesen, die Textseite zu nehmen und als QueryString an
eine "Print"-Seite zu übergeben - als Server sided Include oder was auch immer.
SSIs werden leider vor ASP-Statements ausgeführt, desterwegen musste ich diese
Idee recht schnell begraben.Jetzt habe ich einen zweiten Ansatz versucht: Der Text wird in einen speziellen
Frameset geladen. Immerhin lief der Ausdruck schon mal mit dem NN4.7, IE5
mochte nur den aktiven Frame drucken und Mozilla5 schoss den Rechner ab ... :-(
Hallo,
wo liegt denn das Problem mit Include-Files ???
Statements in Include-Dateien werden vorher
geprüft, aber nicht unbedingt vorher ausgeführt !!!
Außerdem gibts ja dann noch die Möglichkeit,
Subs oder Funcions zu schreiben, die die Aktionen
bei Aufruf durchführen.
Ich nehme an, Du generierst die Datei (oder
deren Inhalt) sowieso dynamisch. Dann kannst Du
auch ganz einfach eine Print-Datei so erzeugen.
Die Struktur der Seite kannst Du ja mit Tabellen
vorbereiten und in die entsprechenden Zellen den
Inhalt einfügen.
Eigentlich macht die Print-Seite dann genau dasselbe
wie die "normale" Ausgabeseite, die Daten werden
lediglich anders dargestellt.
Tschau, Stefan
Moin Stefan,
wo liegt denn das Problem mit Include-Files ???
das zentrale Problem ist, dass Zeilen wie
<!--#include file = <%=Request.QueryString%>-->
nicht laufen. Zitat aus "Active Server Pages" von
S.Hettihewa: "Sie können ASP-Statements nicht dazu
benutzen, um eine neue Datei zu generieren, da ASP-
Statements erst nach externen Dateien ausgeführt
werden."
Leider hat der Autor recht ...
Ich nehme an, Du generierst die Datei (oder
deren Inhalt) sowieso dynamisch. Dann kannst Du
auch ganz einfach eine Print-Datei so erzeugen.
Die Struktur der Seite kannst Du ja mit Tabellen
vorbereiten und in die entsprechenden Zellen den
Inhalt einfügen.
Eigentlich macht die Print-Seite dann genau dasselbe
wie die "normale" Ausgabeseite, die Daten werden
lediglich anders dargestellt.
Hmmm, um die 90% der Inhaltsseiten sind statisch, nur
ein Footer wird als Include eingebaut. Mein erster Ansatz
war, die self.location.href als QueryString an eine Print-
Seite zu übergeben, die dann den Text in einer Blind Table
darstellt. Aber: Siehe oben ... :-(
Ich werde jetzt erst mal versuchen, das Pferdchen von der
anderen Seite her aufzuzäumen, die Seite sich also selbst,
mit den zusätzlichen Teilen für die Print-Page als Include,
aufrufen zu lassen (meine Fresse, was für ein Satz... ;-)
Horrido, Uli
Moin Stefan,
wo liegt denn das Problem mit Include-Files ???
das zentrale Problem ist, dass Zeilen wie
<!--#include file = <%=Request.QueryString%>-->
nicht laufen. Zitat aus "Active Server Pages" von
S.Hettihewa: "Sie können ASP-Statements nicht dazu
benutzen, um eine neue Datei zu generieren, da ASP-
Statements erst nach externen Dateien ausgeführt
werden."
Leider hat der Autor recht ...
Heyho,
wenn Du lediglich statischen Inhalt einer HTML-Datei ausgeben
willst, machs doch einfach so:
<%
Dim strPageName
strPageName = Request("PageName")
Set objFileSys = Server.CreateObject("ADODB.Recordset")
Set objFile = objFileSys.OpenTextFile(Server.MapPath(".") & "/" & strPageName, 1, False, 0)
strContent = objFile.ReadAll
objFile.Close
Set objFIle = Nothing
Set objFileSys = Nothing
%>
Hiermit kannst Du den Inhalt der Datei auslesen und
Ihn an geeigneter Stelle wieder ausgeben.
Als Parameter kannst Du ja den Namen der Datei mitgeben.
Wenn Sie im aktuellen Pfad liegt, kannst Du o.a. Skript
direkt verwenden (wenn nicht der Feuertehfel zugeschlagen
hat)
Tschau, Stefan