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.
168 lines
4.5 KiB
168 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; |
|
|
|
} |
|
|
|
|