3.67 DM_SetValueIndex

Mit Hilfe dieser Funktion werden Sie in die Lage versetzt, Attribute vom DM-Objekt Tablefield zu verändern. Diese Funktion ist in der Lage, mit zwei Indices zu arbeiten.

Die dabei zulässigen Attribute für den jeweiligen Objekttyp entnehmen Sie bitte der „Objektreferenz“.

DM_Boolean DML_default DM_EXPORT DM_SetValueIndex
(
  DM_ID objectID,
  DM_Attribute attr,
  DM_Value *index,
  DM_Value *data,
  DM_Options options;
)

Parameter

-> DM_ID objectID

Dieser Parameter beschreibt das Objekt, dessen Attribut Sie ändern möchten.

-> DM_Attribute attr

Dieser Parameter beschreibt das Objektattribut, das Sie ändern möchten. Alle zugelassenen Attribute sind in der Datei IDMuser.h definiert.

-> DM_Value *index

Hier kann der Datentyp des Index (enum, index) und dessen Wert angegeben werden.

-> DM_Value *data

In diesem Parameter wird der Wert übergeben, den das Attribut annehmen soll. Dabei müssen Sie unbedingt beachten, dass Sie das richtige Element in dieser Union belegen. Den Datentyp eines jeden Attributes entnehmen Sie bitte der „Attributreferenz“.

-> DM_Options options

Über diesen Parameter wird gesteuert, ob der Dialog Manager durch das erfolgreiche Setzen des Attributes die Regelbearbeitung auslösen soll oder nicht.

Option

Bedeutung

DMF_Inhibit

Diese Option bedeutet, dass der Funktionsaufruf keine internen Ereignisse auslösen soll. Wenn dieses Flag gesetzt ist, kann vor allem bei vielen Attribut-Änderungen durch die Anwendung viel Performance gewonnen werden.

DMF_ShipEvent

Diese Option bedeutet, dass der Funktionsaufruf die internen Ereignisse auslösen soll. Dadurch werden Regeln ausgelöst, die für dieses Objekt definiert sind und auf das Ändern des angegebenen Attributes reagieren.

DMF_XlateString

Diese Option besagt, dass der angegebene String, bevor er dem Objekt zugewiesen wird, in die aktuell eingestellte Sprache übersetzt werden soll. Dies geht nur, wenn der Text bereits intern vorhanden ist und eine Übersetzung dafür vorliegt.

Rückgabewert

TRUE

Das Attribut konnte erfolgreich gesetzt werden.

FALSE

Das Attribut konnte nicht gesetzt werden.

Beispiel

Ein Tablefield soll zeilenweise über die Funktion DM_SetValueIndex gefüllt werden.

void DML_default DM_ENTRY SetTable __3 ((DM_ID,      tableID),

                                        (DM_Integer, Rows),

                                        (DM_Integer, Cols))

{

  DM_Value index, data;

  int      row, column;

 

  index.type = DT_index;

  data.type = DT_string;

  data.value.string = "Neuer String";

  for (row = 1; row <= (int) Rows; row++)

  {

    index.value.index.first = row;

    for (column = 1; column <= (int) Cols; column++)

    {

      index.value.index.second = column;

      DM_SetValueIndex (tableID, AT_content, &index, &data,

          DMF_Inhibit);

    }

  }

}

Siehe auch

Eingebaute Funktion setvalue() im Handbuch „Regelsprache“

Methode :set()