<html>
<head>
<title>Stuecklistenscript</title>
<HTA:APPLICATION ID="RolandRaue" APPLICATIONNAME="RolandRaue" SCROLL="yes" SINGLEINSTANCE="no"/>
<style type="text/css">
body { background-color:lightblue; font-family:Times; font-size:14px; }
table { height:650px; width:1020px; border:3px; border-style: outset; }
td { border:0px solid black }
div { width:1000px; height:380px; margin:0px; border:2px; border-style: inset }
.rollbalken { overflow:scroll; overflow-x:hidden }
</style>
<script type="text/javascript" src="Bereichsauswahl.js"></script>
<script type="text/javascript" src="LinkedSelection.js"></script>
<script language="javascript" type="text/javascript">
<!--
//LinkedSelection wird definiert und entsprechend ausgegeben
function ergebnisZeigen( selected )
{
if( selected.length )
{
var sel = '';
var val = '';
var txt = '';
for( var i = 0; i < selected.length; i++ )
{
sel += ( i>0 ? ' → ' : '') + selected[i].id;
val += ( i>0 ? ' → ' : '') + selected[i].value;
txt += ( i>0 ? ' → ' : '') + selected[i].text;
}
}
}
window.onload = function()
{
var vk = new LinkedSelection( [ 'FLT', 'Sektion', 'Bereich1' ], ergebnisZeigen, Bereich1Auswahl );
}
//Übernehmen-Funktion wird geprüft und ausgegeben, samt Fehlermeldungen
function Übernehmen()
{
//Variablen festlegen
var FlugzeugtypText = document.Auswahl.FLT.options[document.Auswahl.FLT.selectedIndex].text;
var FlugzeugtypValue = document.Auswahl.FLT.options[document.Auswahl.FLT.selectedIndex].value;
var SektionText = document.Auswahl.Sektion.options[document.Auswahl.Sektion.selectedIndex].text;
var SektionValue = document.Auswahl.Sektion.options[document.Auswahl.Sektion.selectedIndex].value;
var Bereich1Text = document.Auswahl.Bereich1.options[document.Auswahl.Bereich1.selectedIndex].text;
var Bereich1Value = document.Auswahl.Bereich1.options[document.Auswahl.Bereich1.selectedIndex].value;
var Bereichsnummer1 = document.Auswahl.Text1.value;
//Auswahllisten-Ausgabe
if( FlugzeugtypValue != "--" && Bereichsnummer1.length == 3 && Bereichsnummer1 != "" )
{
var output = "Flugzeugtyp: " + FlugzeugtypText + " / Sektion: " + SektionText + " / Bereich: " + Bereich1Text + Bereichsnummer1;
var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
}
//Fehlerüberprüfung
if ( Bereichsnummer1 == "" )
{
var output = "Ein Fehler ist aufgetreten!!! <br><br>Es wurde keine Bereichsnummer eingetragen."
var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
} else if ( Bereichsnummer1.length > 0 && Bereichsnummer1.length < 3 )
{
var output = "Ein Fehler ist aufgetreten!!! <br><br>Die Bereichsnummer ist unvollständig."
var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
} else if ( FlugzeugtypValue == "--" || SektionValue == "--" || Bereich1Value == "--" )
{
var output = "Fehler!!! <br><br>Es wurde nichts gewählt!!!"
var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
} else if ( isNaN(Bereichsnummer1) )
{
var output = "Fehler!!! <br><br>Es sind Buchstaben enthalten!!!"
var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
}
if( Bereich1Text == "AA" )
{
document.Auswahl.Folie_Anlegen[0].checked == true;
}
}
//Die Entertaste findet keine Bedeutung mehr und wird deaktiviert
function Entersperre(event)
{
if( event.keyCode == 13)
{
return false;
}
return true;
}
//-->
</script></head>
<body onKeyPress="return Entersperre(event)">
<form name="Auswahl">
<table align="center">
<tr height=10px>
<td colspan=12></td>
</tr>
<tr height=50px>
<td width=10px></td>
<td colspan=10 width=1020px><h2><center>Stücklistenscript</center></h2></td>
<td width=10px></td>
</tr>
<tr height=25px>
<td colspan=12></td>
</tr>
<tr height=25px>
<td width=10px></td>
<td width=80px align="center">Flugzeugtyp:</td>
<td width=80px><label id="FLTLabel" for="FLT"></label>
<select id="FLT" name="FLT">
<option value="--">Bitte wählen:</option>
<option value="SA1">A318</option>
<option value="SA2">A319</option>
<option value="SA3">A320</option>
<option value="SA4">A321</option>
<option value="LR1">A330-200</option>
<option value="LR2">A330-300</option>
<option value="LR3">A340</option>
<option value="LR4">A340-500</option>
<option value="LR5">A340-600</option>
</select></td>
<td width=280px id="Flugzeugtyp"></td>
<td width=55px align="center">Sektion:</td>
<td width=63px><label id="SektionLabel" for="Sektion"></label>
<select id="Sektion" name="Sektion">
<option value="--">------</option>
</select></td>
<td width=187px id="Sek"></td>
<td width=55px align="center">Bereich:</td>
<td width=60px><label id="SektionBereich1" for="Bereich1"></label>
<select id="Bereich1" name="Bereich1">
<option value="--">------</option>
</select></td>
<td width=40px>
<input type="text" name="Text1" value="" size="1" maxlength="3"></input></td>
<td width=100px id="Fehlerausgabe1" align="center"></td>
<td width=10px></td>
</tr>
<tr height=25px>
<td width=10px></td>
<td colspan=6 rowspan=3 id="Prüfung"></td>
<td width=55px></td>
<td width=60px>
<select name="Bereich2" style="display:inline">
<option value="10_13">A</option>
<option value="10_13">B</option>
</select></td>
<td width=40px>
<input type="text" name="Text2" value="" size="1" maxlength="3" style="display:inline"></input></td>
<td width=100px id="Fehlerausgabe2"></td>
<td width=10px></td>
</tr>
<tr height=25px>
<td width=10px></td>
<td width=55px></td>
<td width=60px>
<select name="Bereich3" style="display:inline">
<option value="10_13">A</option>
<option value="10_13">B</option>
</select></td>
<td width=40px>
<input type="text" name="Text3" value="" size="1" maxlength="3" style="display:inline"></input></td>
<td width=100px id="Fehlerausgabe3"></td>
<td width=10px></td>
</tr>
<tr height=25px>
<td colspan=5></td>
</tr>
<tr height=25px>
<td width=10px></td>
<td colspan=10 align="center">
<input type="button" value="Übernehmen" onClick="Übernehmen()"></input></td>
<td width=10px></td>
</tr>
<tr height=5px>
<td colspan=12></td>
</tr>
<tr height=25px>
<td width=10px></td>
<td colspan=2>Art der Stücklistenanlegung:</td>
<td>
<input type="radio" name="STL_Anlegen" value="STL_Neu">Stückliste neu anlegen.</input></td>
<td colspan=3>
<input type="radio" name="STL_Anlegen" value="STL_Aktualisieren">bestehende Stückliste aktualisieren.</input></td>
<td colspan=4></td>
<td width=10px></td>
<tr height=5px>
<td colspan=12></td>
</tr>
<tr height=25px>
<td width=10px></td>
<td colspan=2>Folien-Stückliste:</td>
<td>
<input type="radio" name="Folie_Anlegen" value="Folie_ohne">kein separate Folienstückliste</input></td>
<td colspan=3>
<input type="radio" name="Folie_Anlegen" value="Folie_BTH">Burnthrough (Terflame / Terul 18 / ...)</input></td>
<td colspan=4>
<input type="radio" name="Folie_Anlegen" value="Folie_WS">Nur WS (Terim. 7/8 / Terul 19)</input></td>
<td width=10px></td>
<tr height=5px>
<td colspan=12></td>
</tr>
</tr>
<tr height=25px>
<td width=10px></td>
<td colspan=10 align="center">
<input type="button" value="Start" onClick="Go()"></input></td>
<td width=10px></td>
</tr>
<tr height=10px>
<td colspan=12></td>
</tr>
<tr height=380px>
<td width=10px></td>
<td height=380px width=1000px colspan=10 bgcolor=white border=2px><div id="msgs" class="rollbalken"></div>
</td>
<td width=10px></td>
</tr>
<tr height=5px>
<td colspan=12></td>
</tr>
</table>
</form>
</body>
</html>/**
* LinkedSelection ist ein Klasse zur Steuerung dynamisch verketteter Auswahllisten
* @param inputSelects ein Array mit den IDs der Auswahllisten in hierarchischer Reihenfolge
* Bsp: [ 'select1', 'select2', 'select3' ]
* @param callback Funktion, welche beim Abschließen (und Ändern) der Auswahl aufgerufen werden soll
* @param data das Daten-Objekt in JSON
* Bsp: { 'select1':['wert1','text1'], 'select2':['wert5','text5'] }
**/
function LinkedSelection( inputSelects, callback, data )
{
var self = this; /* um aus EventHandlern auf diese Instanz zugreifen zu können */
var selects = new Array(); /* Liste der verketteten Auswahllisten */
/**
* Die Funktion changeHandler wird dem onchange-Handler jeder Auswahlliste zugewiesen.
* Wenn eine gültige Auswahl getroffen wurde, soll entweder die als nächste
* Auswahlliste (nextSelect) bekannte Auswahlliste mit Daten befüllt werden,
* oder die Callback-Funktion ausgeführt werden.
**/
var changeHandler = function()
{
var value = this.selectedValue();
// Auf die nächste Auswahlliste folgende Auswahllisten müssen wieder
// in den default-Zustand versetzt werden
if( typeof(this.nextSelect) == 'object' )
{
for( var i = this.nextSelect.selectID + 1; i < selects.length; i++ )
selects[i].replaceOptions( new Array() );
}
// Abbrechen, wenn ein Dummy-Wert ausgewählt wurde
if( value == '--' )
{
if( this.selectID < selects.length )
selects[ this.selectID +1 ].replaceOptions( new Array() );
return;
}
if( typeof(this.nextSelect) == 'object' )
{
/*
* nextSelect ist eine Auswahlliste
*/
// Wenn keine Daten zur gemachten Auswahl zur Verfügung stehen,
// müssen wir sicherstellen, dass wir auf keine nicht vorhandenen Objekte zugreifen.
if( !data[ this.nextSelect.id ][ value ] )
{
if( !data[ this.nextSelect.id ] )
data[ this.nextSelect.id ] = {};
data[ this.nextSelect.id ][ value ] = new Array();
}
// Neue Optionen in der nächsten Auswahlliste setzen
this.nextSelect.replaceOptions( data[ this.nextSelect.id ][ value ] );
// Wenn die Auswahlstrecke nicht beendet ist, muss die Callback-Funktion
// dennoch aufgerufen werden, damit entsprechend auf Änderungen
// reagiert werden kann.
callback( new Array() );
}
else
{
/*
* Die Auswahlstrecke ist absolviert
*/
// Wahlen der einzelnen Listen in ein Array schreiben um
// dieses an die Callback-Funktion zu übergeben.
var selected = new Array();
for( var i = 0; i < selects.length; i++ )
{
selected.push( { 'id' : selects[i].id,
'value': selects[i].selectedValue(),
'text' : selects[i].selectedText() } );
}
callback( selected );
}
};
/**
* replaceOptions ersetzt die aktuellen Optionen der Auswahlliste durch
* die im Array newOptions gelieferten Daten. Wenn ein leeres Array übergeben
* wird, wird die default-Option "--" gesetzt.
* @param newOptions ein Array mit den neuen Optionen
* Bsp: [ ['value1','text1'], ['value2','text2'], ]
**/
var replaceOptions = function( newOptions )
{
/*
* Diese Funktion setzt bewusst DOM-Methoden ein und verzichtet
* auf die vom Options-Objekt gegebenen Möglichkeiten.
*/
// alte Optionen der Auswahlliste löschen
var opts = this.getElementsByTagName( 'option' );
while( opts.length > 0 )
this.removeChild( opts[0] );
// wenn keine neuen Optionen übergeben wurden, default-Option setzen
// andernfalls "Bitte wählen" voranstellen
if( newOptions.length == 0)
this.addOption( '--', '------' );
else
this.addOption( '--', 'Bitte wählen:' );
// neue Optionen in die Auswahlliste schreiben
for( var i = 0; i < newOptions.length; i++ )
this.addOption( newOptions[i][0], newOptions[i][1] );
};
/*
* Fügt der Auswahlliste eine neue Option hinzu
* @param value Wert der neuen Option
* @param text Name der neuen Option
*/
var addOption = function( value, text )
{
var opt = document.createElement( 'option' );
opt.value = value;
opt.appendChild( document.createTextNode( text ) );
this.appendChild( opt );
};
/**
* holt den Wert der aktuell gewählten Option
* @returns den Value der aktuell gewählten Option
**/
var selectedValue = function()
{
return this.options[ this.selectedIndex ].value;
};
/**
* holt den Text (Name) der aktuell gewählten Option
* @returns den Text der aktuell gewählten Option
**/
var selectedText = function()
{
return this.options[ this.selectedIndex ].text;
};
/**
* Selektiere die Option mit dem Wert value, wenn keine Option mit dem Wert
* value existiert, wird die Auswahl nicht geändert.
* @param value der Wert den eine Option haben muss, um ausgewählt zu werden.
**/
var selectByValue = function( value )
{
for( var i = 0; i < this.options.length; i++ )
{
if( this.options[i].value == value )
this.selectedIndex = i;
}
}
/**
* Initialisiere den Manager für verkettete Auswahllisten.
* Findet Auswahllisten anhand der (per inputSelects) bekannten IDs.
* Bestückt die Auswahllisten mit den nötigen Funktionen und Event-Handlern
**/
this.init = function()
{
// bestücke bestehende selects
for( var i = 0; i < inputSelects.length; i++ )
{
var t = document.getElementById( inputSelects[i] );
// ignoriere falsche IDs
if(!t)
continue;
// neue Funktionen und Event-Handler zuweisen und in selects registrieren
t.replaceOptions = replaceOptions;
t.addOption = addOption;
t.selectedValue = selectedValue;
t.selectedText = selectedText;
t.selectByValue = selectByValue;
t.selectID = selects.length;
t.onchange = changeHandler;
selects.push( t );
// registriere Auswahlliste als nextSelect bei der vorhergehenden
if( selects.length > 1 )
selects[ selects.length-2 ].nextSelect = t;
}
};
// initialisieren!
this.init();
} if( Bereich1Text != "DD" )
{
document.Auswahl.Folie_Anlegen[0].checked = true;
var output = Bereich1Text;
var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
}
if( Bereich1Text != "DD" && document.Auswahl.Folie_Anlegen[1].checked == true )
{
var output = Bereich1Text + " / F" + Bereich1Text + " / T" + Bereich1Text;
var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
}
if( Bereich1Text == "DD" )
{
document.Auswahl.Folie_Anlegen[1].checked = true;
var output = Bereich1Text + " / F" + Bereich1Text + " / T" + Bereich1Text;
var Prüfung = document.getElementById( "Prüfung" ).innerHTML = output;
}
xml-Datei auslesen und in tabelle darstellen
Reavermaster 21.07.2008 - 71 Hits - 7 Antworten
MySQL Select Befehl
Deathfun 19.07.2008 - 14 Hits - 1 Antwort
DIVs verschieben
tomslawik 20.07.2008 - 80 Hits - 2 Antworten
Aufnahmedatum eines Bildes ausgeben
Computerfreaki 21.07.2008 - 22 Hits - 4 Antworten
eigenes greasemonkey script
raqel 21.07.2008 - 40 Hits - 1 Antwort