Erweiterte Programmierung


Navigationslose Geschäftsobjekte sind für Programme gedacht mit denen keine Datensätze angelegt, gesucht oder gelöscht werden. Dennoch können Sie mit einem Datenbankkontext arbeiten. Die folgenden Tasten im Menüband sind für navigationslose als auch für navigierbare Geschäftsobjekte vorgesehen:

Befehle im Menüband
IconMethode

Diese Taste dient zum Drucken. Der VBContent ist "!QueryPrintDlg". Diese Methode ist bereits in ACBSO vorderklariert und muss nicht in der Ableitung explizit deklariert werden.

[ACMethodCommand("Query", "en{'Print'}de{'Drucken'}", (short)MISort.QueryPrintDlg)]
public void QueryPrintDlg()

Diese Taste dient zur Druckvorschau. Der VBContent ist "!QueryPreviewDlg". Diese Methode ist bereits in ACBSO vorderklariert und muss nicht in der Ableitung explizit deklariert werden.

[ACMethodCommand("Query", "en{'Preview'}de{'Vorschau'}", (short)MISort.QueryPreviewDlg)]
public void QueryPreviewDlg()

Diese Taste dient zum Verwalten und Editieren von Berichten. Der VBContent ist "!QueryDesignDlg". Diese Methode ist bereits in ACBSO vorderklariert und muss nicht in der Ableitung explizit deklariert werden.

[ACMethodCommand("Query", "en{'Design'}de{'Entwurf'}", (short)MISort.QueryDesignDlg)]
public void QueryDesignDlg()

Diese Taste dient zum Ausschneiden von selektiertem Inhalt. Der VBContent ist "!Cut". Diese Methode ist nicht in den Geschäftsobjekten deklariert, sondern in bestimmten UI-Steuerelementen, die Ausschneiden unterstützen.

[ACMethodInteraction("", "en{'Cut'}de{'Ausschneiden'}", (short)MISort.Cut, false)]
public new void Cut()

Diese Taste dient zum Kopieren von selektiertem Inhalt. Der VBContent ist "!Copy". Diese Methode ist nicht in den Geschäftsobjekten deklariert, sondern in bestimmten UI-Steuerelementen, die Kopieren unterstützen.

[ACMethodInteraction("", "en{'Copy'}de{'Kopieren'}", (short)MISort.Copy, false)]
public new void Copy()

Diese Taste dient zum Einfügen von selektiertem Inhalt. Der VBContent ist "!Paste". Diese Methode ist nicht in den Geschäftsobjekten deklariert, sondern in bestimmten UI-Steuerelementen, die Einfügen unterstützen.

[ACMethodInteraction("", "en{'Paste'}de{'Einfügen'}", (short)MISort.Paste, false)]
public new void Paste()

Diese Taste dient zum Rückgängigmachen der letzten Änderung. Der VBContent ist "!Undo". Diese Methode ist nicht in den Geschäftsobjekten deklariert, sondern in bestimmten UI-Steuerelementen, die das Rückgängigmachen unterstützen.

[ACMethodInteraction("", "en{'Undo'}de{'Rückgängig'}", (short)MISort.Undo, false)]
public new void Undo()

Diese Taste dient zum Wiederherstellen. Der VBContent ist "!Redo". Diese Methode ist nicht in den Geschäftsobjekten deklariert, sondern in bestimmten UI-Steuerelementen, die das Wiederherstellen unterstützen.

[ACMethodInteraction("", "en{'Redo'}de{'Wiederholen'}", (short)MISort.Redo, false)]
public new void Redo()

 


Um Eigenschaften von Geschäftsobjekten an der Oberfläche anzuzeigen und zu ändern müssen folgende Dinge berücksichtigt werden:

  1. Deklararieren Sie öffentliche Eigenschaften mit getter und setter.
  2. Veröffentlichen Sie Ihre Eigenschaft mit der ACPropertyInfo-Attributklasse.
  3. Lösen Sie das PropertyChanged-Ereignis aus, wenn sich der Wert Ihrer Eigenschaft geändert hat. Da ACComponents das INotifyPropertyChanged-Interface implementieren müssen Sie nur die Methode void OnPropertyChanged(string name) aufrufen.

 

Beispielcode im BSO

private string _ExampleProp;
[ACPropertyInfo(201, "", "en{'Example'}de{'Beispiel'}", "", false)]
public string ExampleProp
{
get { return _ExampleProp; }
set
{
_ExampleProp = value;
OnPropertyChanged("ExampleProp");
}

Beispielcode in XAML

e.g. <Grid>... 
<vb:VBTextBox VBContent="RunScheduler"/>
...</Grid>

 


Um Datensammlungen von Geschäftsobjekten an der Oberfläche anzuzeigen und zu ändern müssen folgende Dinge berücksichtigt werden:

  1. Deklararieren Sie zwei Eigenschaften. Eine für die Datensammlung und eine für das selektierte Element aus der Datensammlung.
  2. Veröffentlichen Sie die Datensammlung mit der ACPropertyList-Attributklasse und Selektions-Eigenschaft mit der ACPropertySelected-Attributklasse.
  3. Lösen Sie das PropertyChanged-Ereignis aus, wenn sich der Wert Ihrer Selektions-Eigenschaft geändert hat. Da ACComponents das INotifyPropertyChanged-Interface implementieren müssen Sie nur die Methode void OnPropertyChanged(string name) aufrufen. Das PropertyChanged-Ereignis können Sie auch für die Datensammlung auslösen, dann aktualisiert sich das iplus-Steuerelement, das IVBSource implementiert von alleine. Ihre Datensammlung kann eine einfache Liste sein und muss nicht unbedingt INotifyCollectionChanged implementieren.

 

Schauen Sie sich den Beispielcode im Kapitel IVBSource an.