2.198 .masterapplication[enum]

Mit diesem Attribut wird die Zuordnung von Funktionen, die direkt unter einem Modul/Dialog liegen, zu einem application-Objekt definiert.

Als optionaler Index-Wert können Werte aus dem Enum-Bereich lang_defaultlang_java und func_normalfunc_data genutzt werden.

Definition

  • Datentyp

    object [ application ]

  • Zugriff

    get, set

  • changed-Ereignis

    ja

Indexbereich

lang_default

Bei der Funktionsdefinition ist keine Programmiersprache angegeben. Die Funktion ist in der Standard-Programmiersprache C implementiert.

lang_c

Die Funktion ist in der Programmiersprache C implementiert.

lang_cobol

Die Funktion ist in der Programmiersprache COBOL implementiert.

lang_cobol_cancel

Die Funktion ist in der Programmiersprache COBOL implementiert und wird mit einer CANCEL-Anweisung aufgerufen.

lang_fortran (veraltet)

Die Funktion ist in der Programmiersprache Fortran implementiert.

lang_java (veraltet)

Die Funktion ist in der Programmiersprache Java implementiert.

lang_pascal (veraltet)

Die Funktion ist in der Programmiersprache Pascal implementiert.

func_callback (intern)

Die Funktion ist eine Objektcallback-Funktion, die einem Objekt im Attribut .function zugewiesen werden kann und für definierte Ereignisse aufgerufen wird.

Schlüsselwort bei der Funktionsdefinition: callback.

func_canvas (intern)

Die Funktion ist eine Canvas-Funktion, die einem canvas-Objekt im Attribut .canvasfunc zugewiesen werden kann.

Schlüsselwort bei der Funktionsdefinition: canvasfunc.

func_content (intern)

Die Funktion ist eine Nachlade-Funktion, die einem tablefield im Attribut .contentfunc zugewiesen werden kann.

Schlüsselwort bei der Funktionsdefinition: contentfunc.

func_data (intern)

Die Funktion ist eine Datenfunktion, die Objekten im .datamodel-Attribut zugewiesen werden kann und vom IDM bei der Synchronisierung zwischen Model- und View-Komponente aufgerufen wird.

Schlüsselwort bei der Funktionsdefinition: datafunc.

func_format (intern)

Die Funktion ist eine Format-Funktion, die den Objekten edittext und tablefield im Attribut .formatfunc zugewiesen werden kann.

Schlüsselwort bei der Funktionsdefinition: formatfunc.

func_normal (intern)

Die Funktion ist eine normale Anwendungsfunktion, die aus der Regelsprache heraus aufgerufen werden kann.

func_spinbox (intern)

Die Funktion dient zur Steuerung der Wertanzeige einer spinbox mit .style = void durch die Anwendung und kann der spinbox im .spinfunc-Attribut zugwiesen werden.

Schlüsselwort bei der Funktionsdefinition: spinfunc.

Wird eine Modul-Funktion aufgerufen, so wird die Zuordnung zu einer Applikation über das .masterapplication[]-Attribut am Modul gesucht. Dies geschieht dabei entsprechend der angegebenen Sprachdefinition, dem Funktionstyp oder auch ganz ohne Typisierung (letzteres dann ohne Index-Angabe). Diese Applikations-Zuordnung wird dann genutzt um die Funktionsanbindung zu bestimmen und so die Funktion entsprechend aufzurufen. Wenn am Modul keine Zuordnung definiert wurde, wird am Dialog gesucht. Eine Setzung auf null verhinder die Suche am Dialog.

Das .masterapplication-Attribut wurde zur IDM-Version A.06.02.m eingeführt um in ähnlicher Weise zum .application-Attribut am Import-Objekt eine Zuordnung von Modul-Funktionen zu ermöglichen.

Beispiel

Modularisierter Dialog mit den Funktionen im Modul Functions.mod, bei dem COBOL-Funktionen der Server-Applikation ApplServer zugeordnet werden und alle anderen Funktionen der dynlib-Applikation ApplLocal.

// Dialog.dlg
dialog Dlg
{
  .masterapplication ApplLocal;
}

application ApplLocal {
  .transport "dynlib";
  .exec "libusercheck.so";
  .active true;
}

use Functions;

on dialog start
{
  variable string Username := setup.env["USER"];
  if  ValidateUser(Username) then
    print "Age = "+GetAge(Username);
  endif
  exit();
}
// Functions.mod
module Functions
{
   .masterapplication[lang_cobol] ApplServer;
}

use Server;

record RecUser
{
  string[50] FirstName;
  string[50] LastName;
  integer Age;
}

export function boolean ValidateUser(string Username);
function cobol integer GetUserProfile(string[50] Username,
                                      record RecUser output);

export rule integer GetAge(string Username)
{
  if GetUserProfile(Username, RecUser)>0 then
    return RecUser.Age;
  endif
  return 0;
}
// Server.mod
module Server

export application ApplServer {
  .connect "server:4712";
  .active true;
}

Verfügbarkeit

Ab IDM-Version A.06.02.m

Siehe auch

Attribut .application

Kapitel „Modularisierung“ im Handbuch „Programmiertechniken“