JavaScript - Arbeiten mit Bitfeldern

5. November 2009 17:58

Bitfelder können im CRM in drei unterschiedlichen Formen angezeigt werden.
  • Picklist
  • Checkbox
  • Radio Button

Je nachdem, in welchem Format das Bitfeld angezeigt wird, muss per JavaScript anders darauf zugegriffen werden.
Code:
[b]Anzeige als CheckBox oder Radio Button[/b]
if (crmForm.all.sulz_bitfield.DataValue)
{
    // Wert ist wahr, 1, true
}
else
{
    // Wert ist falsch, 0, false
}

Setzen des Wertes in dem Feld:
Code:
crmForm.all.sulz_bitfield.DataValue = true;
crmForm.all.sulz_bitfield.DataValue = false;

[b]Anzeige als Picklist[/b]
if (crmForm.all.sulz_bitfield.DataValue == 0)
{
    // Wert is 0, falsch, false
}
else
{
    // Wert ist 1, wahr, true
}

Setzen des Wertes in dem Feld:
Code:
crmForm.all.sulz_bitfield.DataValue = 0; // Nein
crmForm.all.sulz_bitfield.DataValue = 1; // JA

Das OnChange des Bitfeldes wird erst ausgelöst, wenn das Feld den Focus verliert. Das führt bei den Endanwendern öfters zu Irritationen. Um diese zu vermeiden, kann der folgende Code genutzt werden.
Um aber dennoch auf das Ändern eines Bitfeldes in JavaScript reagieren zu können, kann folgender Code verwendet werden, der im OnLoad des Formulares hinterlegt werden muss.
Code:
crmForm.all.new_check.onclick = function()
{
   if ( crmForm.all.sulz_bitfield.checked )
   {
       // Wert wurde auf Ja geseztz
    }
    else
    {
       // Wert wurde auf Nein gesetzt
     } 
}


Der Artikel ist unter diesem Link in meinem Blog erschienen.