Letzte Änderung:  
29.03.2010 13:10:12
 
ein Counter...
Anmelden
  Dokumentation - [Beispielskripten] - [Symboldump]  
Bild Über IWAN
Bild Das Produkt
Bild ein wenig Technik
Bild Referenzen
Bild Open GIS
Bild History
Bild Aktuelle Änderungen

Bild Dokumentation
Bild Datenzugriff
Bild IwanScript
Bild Symbole und Klassifikation
Bild How-To's
Bild Beispielskripten
PixelBild Layerinfo
PixelBild Projektinfo
PixelBild ReversDns
PixelBild Symboldump
PixelBild WFS Ausgabe

Bild Kontakt/Impressum
Bild Kontakt
Bild Impressum
Bild Haftungsausschluss
Bild Copyright
Bild Weitere Links

 

Symboldump

Go;
/*---------------------------------------------------------------------------------
  Stellt Symbole einer Symbolpalette dar.
  Der Startparameter ist FILE=DateiNameDerIpal
          
  Es wird ein Frameset erstellt, in welchem die Symbole in einer Tabelle
  ausgegeben werden.
      
  Wird diese Fenster per modalem Dialog geöffnet (nur IE), wird nach einem
  Klick auf das Symbol die Symbolnummer in dialogArguments.symbol zurückgegeben.

  Beispielaufruf:
  //JavaScipt in IE
  function ShowSymbolDump()
  {
    if(smbSet=="")
      smbSet='..\\symbols\\main.ipal';
    var url='http://{IhrServer}/DumpSymbol.iws?file='+smbSet;
    var args=new Object();
    args.symbol=-1;
    var features="dialogWidth:500px ;dialogHeight:540px ;center:yes; status:no; edge:raised";
    var ret=showModalDialog(url,args,features);
    if(args.symbol!=-1)
    {
      alert("Symbol:"+args.symbol;
    }
  }
 ---------------------------------------------------------------------------------*/
  w=60;  //Default-Width  der Symbole in px
  h=50;  //Default-Height der Symbole in px

  //---------------------------------------
  // kein Index übergeben, also die
  // Seite erstellen 
  //----------------------------------------
   if(ISNULL($INDEX));
     if(ISNULL($FILE));
       print("Bitte in Argument FILE einen gültigen Dateinamen übergeben!");
       EndScript();
     EndIf;
     ret=CreateObject(srv,"Server");
       //---------------------------------------------------
     //   Prüfen ob, die Serverversion ausreichend ist!
     //   Ist dies nicht der Fall, Abbruch des Skriptes.
       //---------------------------------------------------
     if(not(srv.IsNeededVersion("3.0.3.20")));
       print("Dieses Skript erfordert eine IWAN Version 3.0.3.20+");
       EndScript();
     EndIf;
       //---------------------------------------------
     //  Symbolset-Objekt erstellen
       //---------------------------------------------
     ret=CreateObject(smb,"Symbolset");

     //-----------------------------------------------------------------
     // Auslesen der Symbolanzahl,
     // Exisitert die Datei nicht bricht das Skript mit einem Fehler ab
     //-----------------------------------------------------------------
     smbCount=smb.GetCount($FILE);
     count=smbCount;
     idx=0;
     PerPage=20;      //Anzahl der Symbole pro Seite
     thisFile=GetScriptFile(false);  //Namen dieses Skriptes auslesen (ohne Pfad)
     if(isnull($PART));      //Wurde in PART nichts in der URL ausgegeben wird hier das Frameset erstellt
       End;
         <html>
         <head>
         <title> Ansicht des Symbolset Go;print($FILE);End;</title>
         Go;call "LABELStyle";End;
         <script>
           function onImageClick(idx)
           {            
             if(window.dialogArguments)
             {
               window.dialogArguments.symbol=idx;
             }
             self.close();
           }
         </script>
         </head>        
         <frameset rows="*,170" framespacing=0 frameborder=0>
           <frame name=right src="Go;print(thisFile+"?part=R&FILE="+$FILE+"&startAt=0")End;">
           <frame name=left  src="Go;print(thisFile+"?part=L&file="+$FILE+"&count="+int(count));End;">
         </frameset>      
         </html>      
       Go;
       EndScript();
     else;//PART enthält eine Wert....
       //Erstellen der Link's....
       if($PART=="L");      //erstellt die untere Seite des Fenster
         pages=count/PerPage;  
         pages=int(pages);
         End;
         <html>
         <head>
         Go; /*StyleSheet schreiben*/
           call "LABELStyle";
         End;  
         <style type=text/css>    
           A{width:30px;margin:2px;}
         </style>
         </head>
         <body>
         <br>Symbolset: <b>Go;print($FILE);End;</b><br>
         <nobr> mit insgesamt: <b>Go;print(int(count));End;</b>
         Symbolen, Seitengröße :<b>Go;Print(int(pages));End;</b></nobr><br><br>
         <center>
         Go;
         i=0;
         while(compare(i,pages,le));
           print("<a target=right href="+thisFile+"?part=R&FILE="+$FILE+"&startAt="+int(i*PerPage)+">-"+int(i)+"-</a> ");
           inc(i);
         wend;
         End;
         </center>
         </body>
         </html>
         Go;          
         EndScript();    //und das Skript zu beenden
       EndIf;//... Part==L
     EndIf;
       //---------------------------------------------
     // Wenn bis hier gekommen (PART!=L)
     // dann die Tabelle mit den Symbolen erstellen
       //---------------------------------------------
     count=min(PerPage,count);
     End;
       <html>
       <head>
         Go;call "LABELStyle";End;
         <script>
           function onImageClick(idx)
           {
             if(top.onImageClick)top.onImageClick(idx);
           }          
         </script>
       </head>
       <body>
       <center><br>
       <table style="border:6px solid Black;background-color:White;">
       <tr><td style="padding:6px;">
       <table cellpadding=3 cellspacing=3>
      
     Go;
     index=idx;
     if(not(isnull($STARTAT)));
       index=$STARTAT;      
     EndIf;
     thisFile=GetScriptFile(false);
     imgSize="width= "+int(w)+" height="+int(h);
     while(Compare(idx,count,lt));
       print("<tr>");
       i=0;
       while(Compare(i,5,lt));
         print("<td align=center>");
         print("<img "+imgSize+" onClick='onImageClick("+int(index)+")' src='"+thisFile+"?FILE="+$FILE+"&INDEX="+int(index)+"'>");
         print("<br>"+int(index)+"</td>");
         inc(i);inc(idx);inc(index);        
         if(index==smbCount);i=21;idx=count;EndIf;
       wend;    
       print("</tr>");    
     wend;  
     print("</table></td></tr></table></center>");
     diff=smbCount-index;
     if(Compare(diff,0,gt));
       print("<center><a href=dumpsymbol.iws?part=R&FILE="+$FILE+"&startAt="+int(index)+">");
       print("Die nächsten "+int(min(diff,PerPage))+" Symbole anzeigen</a></center>");
     EndIf;
     print("</body></html>");
     EndScript();
   else;//INDEX==NULL
     //------------------------------------------------------------
     // an dieser Stelle
     // wird das Symbol generiert und als Bild zurückgegeben
     //------------------------------------------------------------
     s=0.0001;
     color="White";
     if(not(IsNull($W)));w=$W;EndIf;
     if(not(IsNull($H)));h=$H;EndIf;
     if(not(IsNull($S)));s=$S;EndIf;
     if(not(IsNull($COLOR)));color=$COLOR;EndIf;

     ret=CreateObject(smb,"Symbolset");
     smb.Scale(s);
     smb.ImageWidth(w);
     smb.ImageHeight(h);
     smb.ImageBGColor(color);
     smb.GetSymbolFromFile($FILE,$INDEX);
     EndScript();
   endif;  

//---------------------------
   routine "LABELStyle";
//---------------------------
End;
   <style type=text/css>
     IMG{cursor:Hand;}
     BODY,TR,TD{font-size:10px;font-family:Verdana;}          
     BODY{margin:5px;background-color:#CDCDCD;overflow:hidden;}
     A{color:White;font-weight:Bold;text-decoration:none;background-color:Black;border:1px solid black;}
     A:HOVER,A:ACTIVE{color:Black;border:1px solid black;background-color:White;}
     A:ACTIVE{background-color:Yellow;color:Red;}
   </style>
Go;
EndRoutine;
End;
Druckersymbol Druckversion dieser Seite 

Zuletzt geändert am 03.12.04 (rn)
   Sitemap | IDU Homepage: [http://www.idu.de] cardo Homepage: [http://www.cardogis.com] GDDB Homepage: [http://www.gddb.de]