Benutzer-Werkzeuge

Webseiten-Werkzeuge


primus:callafterchange

Dies ist eine alte Version des Dokuments!


callafterchange

callafterchange ist ein Attribut eines DataSheet Feldes. Ändert sich der Feldinhalt dann wird eine im Attribut hinterlegte Addinmethode aufgerufen.

Beispiel

<StkVP ctrltype="textbox" data="StkVP" label="VP/Stk. €" type="Text" mode="W" left="88" top="220" width="61" height="20" labelposleft="15" multisel="1" callafterchange="CustomAddIn.progrDeckungsbeitragFeldUpdate" />

Beispiel für das Addin

public void progrDeckungsbeitragFeldUpdate(object oControl, DataGridViewRow oRow, string oParams)
{
  if (oControl is TextBox)
  {
    TextBox oTB = (TextBox)oControl;
    if (oTB.Tag is PrimGUIDataField)
    {
      PrimGUIDataField oPrimGUIDataField = (PrimGUIDataField)oTB.Tag;
 
      string sFilePath = (string)oRow.Tag;
      if (!File.Exists(sFilePath)) return;
 
      IDictionary<string, string> oDataDict = PrimData.ReadDataXML(sFilePath + ".xml");
      if (oDataDict != null)
      {
        string sEPValue, sValue;
        if (oDataDict.TryGetValue("StkEPAuftr", out sEPValue) && sEPValue.Length > 0 && oDataDict.TryGetValue(oPrimGUIDataField.sField, out sValue) && sValue.Length > 0)
        {
          decimal dEPValue, dValue;
          try
          {
            dEPValue = Convert.ToDecimal(sEPValue);
            dValue = Convert.ToDecimal(sValue);
          }
          catch { return; }
 
          bool bWriteData = true;
          if (oPrimGUIDataField.sField == "StkVP")
          {
            decimal dDeckungsbEUR = dValue - dEPValue;
            oDataDict["DeckungsbEUR"] = dDeckungsbEUR.ToString("F2");
            oDataDict["DeckungsbProz"] = (dDeckungsbEUR / (dEPValue / 100)).ToString("F1");
          }
          else bWriteData = false;
 
          if (bWriteData)
          {
            string sRetMsg;
            PrimData.WriteDataXML(oPrimData.oActivePrimProject, oPrimData.oActivePrimFolder.sCFGPath, sFilePath + ".xml", oDataDict, "XML_Position", true, out sRetMsg);
            oPrimData.UpdateListViewRow(oRow.DataGridView, oRow, true);
          }
        }
      }
    }
  }
}

Siehe auch

primus/callafterchange.1691494681.txt.gz · Zuletzt geändert: von mgras