SuperX-Kernmodul
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

169 lines
4.5 KiB

/* gesammelte GANG-Scripte
(c) 2007 Daniel Quathamer */
function maskeTogglekeyfields()
{
document.forms[0].elements.keyfieldsused.value="true";
for (i=0;i<document.forms[0].elements.length;i++)
{
e=document.forms[0].elements[i];
//klappt im IE noch nicht:
//if (e.getAttribute('class')=="schluesselfeld" )
if (e.name.indexOf("key_") ==0 )
{
if (e.style.display!="none")
{
e.style.display="none";
} else
{
//sichtbar machen:
e.style.display="";
var sel_name=e.name.substr(4);
//Das Schlüsselfeld kommt immer direkt vor select-Feld :
e.value=document.forms[0].elements[i+1].value; //getKeyfromKeyfield(sel_name,i); //document.forms[0].elements['inp_' + sel_name].value;
//Wenn es in Unterfomularen mehrere Felder mit gleicher id gibt, muss ich
//Schreibschutz einschalten, weil keyfield nicht änderbar sein darf.
//denn: keyfield ist nicht eindeutig!
if(!document.forms[0].elements['inp_' + sel_name].value)
e.disabled =true;
if(document.forms[0].elements['inp_' + sel_name].value && document.forms[0].elements['inp_' + sel_name].disabled ==true)
e.disabled =true;
}
}
}
}
/*
obsolet:
function getKeyfromKeyfield(feldname,i)
{
var wert='';
var feld_zaehler=0;
if(document.forms[0].elements['inp_' + feldname])
{
for (k=0;k<document.forms[0].elements.length;k++)
{
e=document.forms[0].elements[k];
if(e.id=='inp_' + feldname)
{
var keyfield_number=keyfield_index(document.forms[0].elements[k].name);
alert(e.id+'|'+document.forms[0].elements[k].name+'|'+keyfield_number+'|' + feld_zaehler);
if(keyfield_number==feld_zaehler && wert=='')
{
wert= e.value;
feld_zaehler++;
}
}
}
}
return wert;
}
function keyfield_index(feldname)
{
//z.B. aus f_347_1@0@root_2 die 1 extrahieren
var f=feldname.substring(0,feldname.indexOf('@'));
//nun habe ich f_347_1
var ind=f.substring(f.lastIndexOf('_')+1,f.lastIndexOf('_')+2);
//nun die 1
//alert(feldname+'|'+f+'|'+ind);
return parseInt(ind);
}
*/
function updateAndValidateSelect(key_fld,validate)
{
var fld_name=key_fld.name;
var sel_name='inp_' + key_fld.name.substr(4);
var wert=key_fld.value.trim();
var feldnummer=0;
//Bei CHAR-Schlüsseln müssen ggf. hinten Leerzeichen drangehängt werden,
//damit DBFORMS den Schlüssel erkennt.
//ermittle Feldnummer, denn nur die ist eindeutig
for (k=0;k<document.forms[0].elements.length;k++)
{
if(document.forms[0].elements[k].id==sel_name)
feldnummer=k;
}
//alert(sel_name+' ' + feldnummer);
var laenge=document.forms[0].elements[feldnummer].value.length;
if (laenge !=dojo.string.trim(document.forms[0].elements[feldnummer].value))
wert=dojo.string.padRight(wert.trim(),laenge,' ');
//alert("#"+wert+"#");
//Das Schlüsselfeld kommt immer direkt vor select-Feld :
document.forms[0].elements[feldnummer].value=wert;
if(document.forms[0].elements[feldnummer].selectedIndex<=0 && validate)
alert("Der Wert "+wert.trim()+ " kommt in der Liste nicht vor");
}
function updateSelect(key_fld)
{
updateAndValidateSelect(key_fld,false)
}
function trimSelect(sel_fld)
{
sel_fld.value=sel_fld.value.trim();
}
function updateKeyfield(sel_fld)
{
//alert(sel_fld.value);
//sel_fld.value=sel_fld.value.trim();
var sel_name=sel_fld.name;
var feldnummer=0;
//ermittle Feldnummer, denn nur die ist eindeutig
for (k=0;k<document.forms[0].elements.length;k++)
{
if(document.forms[0].elements[k].name==sel_name)
feldnummer=k;
}
var wert=sel_fld.value.trim();
//alert("#"+wert+"#");
//Das Schlüsselfeld kommt immer direkt vor select-Feld :
document.forms[0].elements[feldnummer-1].value=wert;
}
function validate_ca()
{
if(document.getElementById )
{
var cnw=parseFloatGr(document.getElementById('inp_gang_cnwcnw_summe').value);
if(cnw != NaN && cnw > 0)
{
var summe=0;
var zaehler=0;
for (i=0;i<document.forms[0].elements.length;i++)
// for (i=0;i<5;i++)
{
e=document.forms[0].elements[i];
//alert(e.class);
if(e.getAttribute('onBlur')=="validate_ca()" || e.className=="ca_wert")
{
//alert(e.Attribute['onBlur'].nodeValue);
zaehler++;
summe+= parseFloatGr(e.value);
}
}
if(cnw!=summe && zaehler > 1)
alert("Warnung: die Summe der CA-Werte ("+summe+") stimmt nicht mit dem CNW ("+cnw+") überein.");
}
}
}
function parseFloatGr(s)
{
var zahl_str=s;
var zahl=0;
var komma=s.indexOf(",");
if (komma >0)
zahl_str=s.substring(0,komma)+"."+s.substring(komma+1,s.length);
zahl=parseFloat(zahl_str);
return zahl;
}