Günter S. Heinrich: Drucken? Und Frameprobleme.

Ein fröhliches Hallo an alle,

Bin mit meinem Problem leider immer noch nicht weiter gekommen. Hier noch mal der Link mit Problembeschreibung. --> http://forum.de.selfhtml.org/archiv/2001/11/514/

vielen Dank und einen schönen Wochenanfang! :o)
Günter

  1. Hallo Guenter,

    Bin mit meinem Problem leider immer noch nicht weiter gekommen. Hier noch mal der Link mit Problembeschreibung. --> http://forum.de.selfhtml.org/archiv/2001/11/514/

    Meinst du, in den vier Tagen sind so viele Neue dazugekommen, die dir helfen koennen? *g*

    wie ist es am sinnvollsten ein Onlinehandbuch so vorzubereiten, das man es z. b. mit einem "druckbutton" in Form von einer *.pdf Datei gegliedert ausdrucken kann?

    Also mit Simsalabim geht in der EDV nix. Was du willst, ist ein Publizieren von zwei Endvarianten aus einer Datenquelle, wenn ich es recht verstehe. Die ideale Loesung dafuer ist eigentlich XML. Der Weg besteht darin, die Daten in einer XML-Datenstruktur zu haben. Daraus kann man dann wahlweise HTML generieren (via XSLT), oder auch PDF. Einzelheiten dazu musst du dir mal aus verschiedenen Quellen im Netz zusammensuchen. Einiges zu XML findest du ja in SELFHTML (http://selfhtml.teamone.de/xml/). Ferner solltest du mal den Links nachgehen, die bei http://aktuell.de.selfhtml.org/links/xml.htm#deutschsprachig aufgefuehrt sind.

    viele Gruesse
      Stefan Muenz

    1. Hallo Stefan,

      Meinst du, in den vier Tagen sind so viele Neue dazugekommen, die dir helfen koennen? *g*

      ...und ich dachte schon ihr "alt eingesessenen" seid alle auf einem verlängerten "SELF-Offlinetreffen" ;o)
      Da habe ich ja noch einmal Glück gehabt. *g*

      Also mit Simsalabim geht in der EDV nix.

      Genau, denn in der Ruhe liegt die Kraft!

      Danke für die Links, ich werde ihnen mal auf die Spur gehen, obwohl ich "glaube" das es so auch irgendwie gehen muss (ist ja schließlich auch nur für den Explorer im Intranet gedacht).

      http://forum.de.selfhtml.org/archiv/2001/11/514/

      Danke und noch einen schönen Tag
      Günter

      1. Hallo Guenter,

        Danke für die Links, ich werde ihnen mal auf die Spur gehen, obwohl ich "glaube" das es so auch irgendwie gehen muss (ist ja schließlich auch nur für den Explorer im Intranet gedacht).

        Was natuerlich immer geht ist der Weg ueber Word (2000 oder hoeher): darin das Handbuch erstellen, und das Ganze dann sowohl als HTML abspeichern als auch ein PDF daraus generieren (mit Acrobat Exchange). Und in der HTML-Version dann noch auf das PDF linken. Ist allerdings nicht unbedingt die elegante Variante ;-)

        Oder - wenn du mit FrameMaker 6.0 arbeitest, der mindestens 1000mal besser ist als Word fuer Dokumenterstellung: damit das Handbuch erstellen, dann mit dem integrierten Webworks Publisher ein HTML-Konvetat daraus machen, mit Acrobat Exchange ein PDF generieren und wieder aus HTML aufs PDF verweisen.

        viele Gruesse
          Stefan Muenz

        1. Hallo Guenter,

          ......

          Oder - wenn du mit FrameMaker 6.0 arbeitest, der mindestens 1000mal besser ist als Word fuer Dokumenterstellung: damit das Handbuch erstellen, dann mit dem integrierten Webworks Publisher ein HTML-Konvetat daraus machen, mit Acrobat Exchange ein PDF generieren und wieder aus HTML aufs PDF verweisen.

          viele Gruesse
            Stefan Muenz

          Hi,

          ja, oder gleich die Daten in SGML/XML speichern und mit dem Framemaker umbrechen ("layouten"), PDF generieren und .... wie du schon geschrieben hast.

          ABER was ist ein KONVETAT ... spielst du gern Scrabble???

          Gruß, Frank

          1. Hallo Frank und Steffan,

            Also die Menü- bzw. Baumstruktur steht und die Links funktionieren auch, doch wie kann ich es erreichen:
            das wenn ich einen Link anklicke er sich im Haupt-Framefenster öffnet, und nicht extra?!?
            (Ich glaube ich muss was bei der "Function Note" (siehe unten)eingeben, ...aber was?

            *************************************
            <!--
              window.onError=null;
              var idx=0
              var treeId = new Array();
              var treeP_id = new Array();
              var treeIsOn = new Array();
              var treeTyp = new Array();
              var treeName = new Array();
              var treeUrl = new Array();
              var treeWasOn = new Array();
              var treeDeep = new Array();
              var treeLastY = new Array();
              var treeIsShown = new Array();

            function Note( id,p_id,name,url ) {
                treeId[ idx ] = id
                treeP_id[ idx ] = p_id
                treeIsOn[ idx ] = false
                treeTyp[ idx ] = 'f'
                treeName[ idx ] = name
                treeUrl[ idx ] = url
                treeWasOn[ idx ] = false
                treeDeep[ idx ] = 0
                treeLastY[ idx ] = 0
                treeIsShown[ idx ] = false
                idx++
              }

            *********Die Struktur wurde auf diese Weise erstellt******

            // the structure is easy to understand with a simple example
              // p_id is the id of the parent
              // E0                                      ( id=0,p_id=-1 )
              //          E11                            ( id=1,p_id=0 )
              //                     E111                ( id=2,p_id=1 )
              //                     E112                ( id=3,p_id=1 )
              //          E12                            ( id=4,p_id=0 )
              //                     E121                ( id=5,p_id=4 )
              //          E13                            ( id=6,p_id=0 )
              //                     E131                ( id=7,p_id=6 )
              //                                 E1311   ( id=8,p_id=7 )
              //                     E132                ( id=9,p_id=6 )
              // this is a multinary tree structure which is easy to
              // populate with database data :)

            **********************************************************

            In meinem Quellcode gebe ich dann dies an: -->
            Note(4,3,'Funktionalität','inhalt1','inhalt1.htm')

            Vielen Dank für eure Hilfe

            liebe Grüsse
            Günter

            ABER was ist ein KONVETAT ... spielst du gern Scrabble???

            Ich schon ab und zu, ...fördert den Geist des Verstehens. ;o)

            1. <schnippschnapp/>

              In meinem Quellcode gebe ich dann dies an: -->
              Note(4,3,'Funktionalität','inhalt1','inhalt1.htm')

              Der Quellcode war aber nich so ganz vollständig, oder? Ich seh auch gerade

              ... ->
              function Note( id,p_id,name,url ) {
              treeId[ idx ] = id
              treeP_id[ idx ] = p_id
              treeIsOn[ idx ] = false

              da werden nur 4 Variablen verlangt, nicht 5, wie du übergibst.

              DA FEHLT DOCH WAS ?? ;-)

              tschau, Frank

              1. Hallo Frank,

                DA FEHLT DOCH WAS ?? ;-)

                Na gut, ich weiß ja nicht wie fit Du bist (also ich bin es leider noch nicht! seufz), aber schaun wir doch halt mal! fg

                Hier ist das "ungekürzte" Script was ich verwende. :o) Das einzigste was ich gelöscht habe ist die Baumstruktur weil sie zu lang geworden wäre. Aber das Schema für die Struktur habe ich schon mitaufgeführt.


                <style type="text/css">     <!--     .sitemap {             font-family:Arial,Helvetica;             font-size:9pt;             line-height:6pt;     }

                body { margin-top:7px;            margin-left:4px;     }     a:link { text-decoration: none }     a:visited { text-decoration: none }     a:active { text-decoration: none }     // -->     </style>

                <script language="JavaScript1.2">   <!--

                window.onError=null;

                var idx=0   var treeId = new Array();   var treeP_id = new Array();   var treeIsOn = new Array();   var treeTyp = new Array();   var treeName = new Array();   var treeUrl = new Array();   var treeWasOn = new Array();   var treeDeep = new Array();   var treeLastY = new Array();   var treeIsShown = new Array();

                function Note( id,p_id,name,url ) {     treeId[ idx ] = id     treeP_id[ idx ] = p_id     treeIsOn[ idx ] = false     treeTyp[ idx ] = 'f'     treeName[ idx ] = name     treeUrl[ idx ] = url     treeWasOn[ idx ] = false     treeDeep[ idx ] = 0     treeLastY[ idx ] = 0     treeIsShown[ idx ] = false     idx++   }

                function initDiv ( )   {     if ( isDOM || isDomIE )     {       divPrefix='<DIV CLASS="sitemap" style="position:absolute; left:0; top:0; visibility:hidden;" ID="sitemap'       divInfo='<DIV CLASS="sitemap" style="position:absolute; visibility:visible" ID="sitemap'     }     else     {       divPrefix='<DIV CLASS="sitemap" ID="sitemap'       divInfo='<DIV CLASS="sitemap" ID="sitemap'     }     document.writeln( divInfo +  'info">Bitte haben Sie etwas Geduld.<BR> <BR>Es werden die Einträge aus<BR> <BR>der Datenbank initialisiert.</DIV> ' );

                for ( var i=1; i<idx; i++ )     {       // linked Name ?       if ( treeUrl[i] != '' )         linkedName = '<A HREF="' + treeUrl[i] + '" TARGET="' + defaultTarget + '"><IMG SRC="1w.gif" BORDER="0" WIDTH="3">' + treeName[i] + '</A>'       else         linkedName =  '<IMG SRC="1w.gif" BORDER="0" WIDTH="3">' + treeName[i]       // don't link folder icon if node has no sons       if ( i == idx-1 || treeP_id[i+1] != treeId[i] ) {         if ( treeDeep[ i ] == 0 )           folderImg = '<IMG ALIGN="BOTTOM" SRC="file_empty.gif" BORDER="0" HEIGHT="16" WIDTH="1" HSPACE="0">'         else           folderImg = ''       } else {         folderImg = '<A HREF="javascript:sitemapClick(' + treeId[i] + ')"><IMG ALIGN="BOTTOM" SRC="folder_off.gif" BORDER="0" NAME="folder' + treeId[i] + '" HEIGHT="16" WIDTH="30" HSPACE="0"></A>'       }       // which type of file icon should be displayed?       if ( treeP_id[i] != 0 )       {         if ( lastEntryInFolder( treeId[i] ) )           fileImg = '<IMG ALIGN="BOTTOM" SRC="file_last.gif" BORDER="0" NAME="file'             + treeId[i] + '" HEIGHT="16" WIDTH="30" HSPACE="0">'         else           fileImg = '<IMG ALIGN="BOTTOM" SRC="file.gif" BORDER="0" NAME="file'             + treeId[i] + '" HEIGHT="16" WIDTH="30" HSPACE="0">'       }       else         fileImg = ''       // traverse parents up to root and show vertical lines if parent       // is not the last entry on this layer       verticales = ''       for( var act_id=treeId[i] ; treeDeep[ id2treeIndex[ act_id ] ] > 1;  )       {         act_id = treeP_id[ id2treeIndex[ act_id ]]         if ( lastEntryInFolder( act_id ) )         {           verticales = '<IMG ALIGN="BOTTOM" SRC="file_empty.gif" BORDER="0" HEIGHT="16" WIDTH="30" HSPACE="0">' + verticales         }         else         {           verticales = '<IMG ALIGN="BOTTOM" SRC="file_vert.gif" BORDER="0" HEIGHT="16" WIDTH="30" HSPACE="0">' + verticales         }       }

                document.writeln( divPrefix + treeId[i] + '"><NOBR> ' + verticales + fileImg + folderImg + linkedName + '</NOBR></DIV><BR>'       )     }   }

                function initStyles ( )   {     document.writeln( '<STYLE TYPE="text/css">' + "\n" + '<!--' )     for ( var i=1,y=y0; i<idx; i++ )     {       document.writeln( '#sitemap' + treeId[i] + ' {POSITION: absolute; VISIBILITY: hidden;}' )       if ( treeIsOn[ id2treeIndex[ treeP_id[i] ] ] )         y += deltaY     }     document.writeln( '#sitemapinfo {POSITION: absolute; VISIBILITY: visible;}' )     document.writeln( '//-->' + "\n" + '</STYLE>' )   }

                function sitemapClick( id )   {     var i = id2treeIndex[ id ]

                if ( treeIsOn[ i ] )     // close directory     {       // mark node as invisible       treeIsOn[ i ]=false       // mark all sons as invisible       actDeep = treeDeep[ i ]       for( var j=i+1; j<idx && treeDeep[j] > actDeep; j++ )       {         treeWasOn[ j ] = treeIsOn[ j ]         treeIsOn[ j ]=false       }       gif_off( id )     }     else     // open directory     {       treeIsOn[ i ]=true       // remember and restore old status       actDeep = treeDeep[ i ]       for( var j=i+1; j<idx && treeDeep[j] > actDeep; j++ )       {         treeIsOn[ j ] = treeWasOn[ j ]       }       gif_on( id )     }     showTree()   }

                function knotDeep( id )   {     var deep=0     while ( true )       if ( treeP_id[ id2treeIndex[id] ] == 0 )         return deep       else       {         ++deep         id = treeP_id[ id2treeIndex[id] ]       }     return deep   }

                function initTree( id )   {     treeIsOn[ id2treeIndex[id] ] = true     if ( treeTyp[ id2treeIndex[id] ] != 'b' )       gif_on( id )     while ( treeP_id[ id2treeIndex[id] ] != 0 )     {       id = treeP_id[ id2treeIndex[id] ]       treeIsOn[ id2treeIndex[id] ] = true       if ( treeTyp[ id2treeIndex[id] ] != 'b' )         gif_on( id )     }   }

                function lastEntryInFolder( id )   {     var i = id2treeIndex[id]     if ( i == idx-1 )       return true     if ( treeTyp[i] == 'b' )     {       if ( treeP_id[i+1] != treeP_id[i] )         return true       else         return false     }     else     {       var actDeep = treeDeep[i]       for( var j=i+1; j<idx && treeDeep[j] > actDeep ; j++ )       ;       if ( j<idx && treeDeep[j] == actDeep )         return false       else         return true     }   }

                function showTree()   {     for( var i=1, y=y0, x=x0; i<idx; i++ )     {       if ( treeIsOn[ id2treeIndex[ treeP_id[i] ] ] )       {         // show current node         if ( !(y == treeLastY[i] && treeIsShown[i] ) )         {           showLayer( "sitemap"+ treeId[i] )           setyLayer( "sitemap"+ treeId[i], y )           treeIsShown[i] = true         }         treeLastY[i] = y         y += deltaY       }       else       {         // hide current node and all sons         if ( treeIsShown[ i ] )         {           hideLayer( "sitemap"+ treeId[i] )           treeIsShown[i] = false         }       }     }   }

                function initIndex() {     for( var i=0; i<idx; i++ )       id2treeIndex[ treeId[i] ] = i   }

                function gif_name (name, width, height) {     this.on = new Image (width, height);     this.on.src = name + "_on.gif"     this.off = new Image (width, height);     this.off.src = name + "_off.gif"   }

                function load_gif (name, width, height) {     gif_name [name] = new gif_name (name,width,height);   }

                function load_all () {     load_gif ('folder',30,16)     file_last = new Image( 30,16 )     file_last.src = "file_last.gif"     file_middle = new Image( 30,16 )     file_middle.src = "file.gif"     file_vert = new Image( 30,16 )     file_vert.src = "file_vert.gif"     file_empty = new Image( 30,16 )     file_empty = "file_empty.gif"   }

                function gif_on ( id ) {     eval("document['folder" + id + "'].src = gif_name['folder'].on.src")   }

                function gif_off ( id ) {     eval("document['folder" + id + "'].src = gif_name['folder'].off.src")   }

                // global configuration   var deltaX = 30   var deltaY = 16   var x0 = 5   var y0 = 5   var defaultTarget = 'examplemain'

                var browserName = navigator.appName;   var browserVersion = parseInt(navigator.appVersion);   var isIE = false;   var isDOM = false;   var isDomIE = false;   var layerok = false;

                var isIE = browserName.indexOf("Microsoft Internet Explorer" )==-1?false:true;   var isDOM = document.getElementById?true:false;   var isDomIE = document.all?true:false;

                if ( isIE && browserVersion>=4 ) layerok=true;

                function hideLayer(layerName) {     if (isDOM)       document.getElementById(layerName).style.visibility="hidden"     else if (isDomIE)       document.all[layerName].style.visibility="hidden";   }

                function showLayer(layerName) {     if (isDOM)       document.getElementById(layerName).style.visibility="visible"     else if (isDomIE)       document.all[layerName].style.visibility="visible";   }

                function setyLayer(layerName, y) {     if (isDOM)       document.getElementById(layerName).style.top=y     else if (isDomIE)       document.all[layerName].style.top=y;   }

                var id2treeIndex = new Array()

                // the structure is easy to understand with a simple example   // p_id is the id of the parent   // E0                                      ( id=0,p_id=-1 )   //          E11                            ( id=1,p_id=0 )   //                     E111                ( id=2,p_id=1 )   //                     E112                ( id=3,p_id=1 )   //          E12                            ( id=4,p_id=0 )   //                     E121                ( id=5,p_id=4 )   //          E13                            ( id=6,p_id=0 )   //                     E131                ( id=7,p_id=6 )   //                                 E1311   ( id=8,p_id=7 )   //                     E132                ( id=9,p_id=6 )   // this is a multinary tree structure which is easy to   // populate with database data :)

                function initArray()   {

                /////                                 parent.frames[1].location.href = "3_1_Install Windows.htm";

                Note(0,-1,'trallallallaaaa','') Note(1,0,'Handbuch für DOPPS','') Note(2,1,'1. Einführung','')         Note(3,2,'1.1. Design-Ziele','')                 Note(4,3,'1.1.1. Funktionalität','inhalt1','inhalt1.htm')                 Note(5,3,'1.1.2. Benutzereffizienz','//Faiopf2041/Org07/YETE1/FL4_FE25/index.htm')                 Note(6,3,'1.1.3. Dokumentation','http://faiopf2001/daten/doh-doks/')                 Note(7,3,'1.1.4. Software Architektur','http://faiopf2001/daten/qualität/qmh/')         Note(8,2,'1.2. Aufbau der Software','')                 Note(9,8,'Aufbau der Software','')         Note(10,2,'1.3. Komponenten','')                 Note(11,10,'Komponenten','')         Note(12,2,'1.4. Ablauf der Datenanforderung','')                 Note(13,12,'1.4.1. Lokale Daten','//faiopf2001/daten/ABBREV/abbrevitions.xls')                 Note(14,12,'1.4.2. Lokal sichtbare Daten von entfernten Servern über LAN - Netzlaufwerke','//faiopf2001/daten/doh-doks/')                 Note(15,12,'1.4.3. Entfernte Daten von DOPPS - TCP/IP - Servern (weltweiter Zugriff)','//merlin/sysdat/eloavio/Schedules') Note(16,1,'2. Systemvorraussetzungen','')

                treeTyp[0] = 'f'     treeIsOn[0] = true     treeWasOn[0] = true   }

                var idx=0   initArray()   initIndex()   load_all()   for( i=1; i<idx; i++ )   {     treeDeep[i] = knotDeep( treeId[i] )     if ( treeDeep[i] == 0 )       treeIsShown[i] = true   }     initStyles();   //-->   </script> </head>

                <body bgcolor="#ffffff" vlink="#000000" alink="#000000" link="#000000" text="#000000" onLoad="if (layerok) showTree();" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">

                <script language="JavaScript1.2"> <!--   initDiv()   hideLayer("sitemapinfo") //--> </script> </body> </html>


                liebe Grüsse :o) Günter

                1. Hi,

                  so, versuchen wir das mal.

                  du hast in dem Script eine Stelle:

                  // global configuration
                  .......
                    var defaultTarget = 'examplemain'
                  ......

                  genau dort trägst du den Framenamen ein, wo es hinsoll, 'inhalt1' beispielsweise, ansonsten brauchst du auch nirgendwo hin den Zielframe mit übergeben. Der wird an beschriebener Stelle ja vorkonfiguriert. Ich meine dein >>Note(4,3,'1.1.1. Funktionalität','inhalt1','inhalt1.htm')<< Konstrukt... da läßt du dieses ,'inhalt`1' weg

                  Damit sollte es dann auch funzen. Probier mal,

                  viele Grüße, Frank

          2. Hallo!

            ABER was ist ein KONVETAT ... spielst du gern Scrabble???

            Wenn, dann wäre es geschummelt. ;-)

            Gemeint hat er wahrscheinlich "Konvertat" mit einem "r" genau wie in "konvertieren", also etwas, das nach einer Umwandlung herauskommt.

            Aber selbst damit dürfte er unter die Top 10 kommen. :-)
            http://forum.de.selfhtml.org/archiv/2001/5/24618/#m128116

            Gruß,

            kerki

        2. Hallo Stefan,

          wenn du mit FrameMaker 6.0 arbeitest, der mindestens 1000mal besser ist als Word fuer Dokumenterstellung

          Jaaa! An mein Herz!
          Ach, wie tut das gut... ;o)

          Herzliche Grüße,
          Meggie

          1. Huch, und hallo nochmal...

            <perplex>
            Was issn da passiert? Da wollte ich das Topic vor dem Posten noch zu (OFF TOPIC) ändern, lasse also erstmal wie gewohnt meine E-Mail-Adresse weg und klicke auf Absenden, und warte dann brav auf die "Fehler"-Meldung... -- aber da war's schon gepostet...
            </perplex>

            Haben da etwa die Forumsverbesserer zugeschlagen? ;o)

            Und wie muß ich das nu Zukunft anstellen, wenn ich das Topic ändern will...?

            Liebe Grüße,
            Meg