Zum Inhalt

Tabellen-Metadaten

3.1.18 IAutoDataSetInfos Interface

Enthält eine Liste mit DataSets.

IDL

[ uuid(DEED36C8-2EB5-11D3-BA03-004005232B30), version(1.0),
  helpstring("Dispatch-Schnittstelle für AutoDataSetInfos-Objekt"),
  dual, oleautomation ]
interface IAutoDataSetInfos : IAutoBase;

Diese Liste enthält einen Eintrag für jede Tabelle, die in der microtech Software existiert. Die Eigenschaft "DataSetInfos" des Applikationsobjektes gibt dieses Interface zurück.

IAutoDataSetInfos Eigenschaften

Methoden

Name Beschreibung
Item Zugriff auf AutoDataSetInfo.
Values Anzahl der Vk, Ek Preise und der Rabattsätze.

Eigenschaften

Name Beschreibung
_NewEnum Enumerator-Kompatibilität.
Application Zugriff auf das Basisobjekt, von dem alle Interfaces abstammen.
Count Anzahl der DataSetInfos.
Parent Gibt das Parent Interface zurück.

IAutoDataSetInfos::Count Eigenschaft

Anzahl der DataSetInfos.

IDL

__property long* Count;

Gibt die Anzahl der Einträge an.

Parameter Beschreibung
Value Rückgabewert: Anzahl der Elemente

IAutoDataSetInfos::Item Methode

Zugriff auf AutoDataSetInfo.

IDL

[propget, id(0x00000000), defaultcollelem]
HRESULT _stdcall Item([in] VARIANT Index, [out, retval] AutoDataSetInfo** Value);

Diese Funktion ermöglicht den Zugriff auf die einzelnen AutoDataSetInfo-Elemente. Der Eingabeparameter Index kann einen Integer oder einen String beinhalten. Der Integer muss dem Index des Feldes in der Liste entsprechen. Der String muss dem Namen des Feldes entsprechen.

for i := 0 to BpApp.DataSetInfos.Count - 1 do
begin
  BpTbl := BpApp.DataSetInfos[i].CreateDataSet;
end;
Parameter Beschreibung
[in] VARIANT Index Variant, der den String oder Integer Index des gewünschten AutoDataSetInfo Interfaces enthält
[out, retval] AutoDataSetInfo** Value Rückgabewert: Interface vom Typ AutoDataSetInfo

IAutoDataSetInfos::_NewEnum Eigenschaft

Enumerator-Kompatibilität.

IDL

__property IEnumVARIANT** _NewEnum;

IAutoDataSetInfos::Values Methode

Anzahl der VK-, EK-Preise und der Rabattsätze.

IDL

[propget, id(0x00000002)]
HRESULT _stdcall Values([in] BSTR Name, [out, retval] VARIANT* Value);

Diese Funktion gibt die Anzahl der Verkaufspreise, Einkaufspreise und Artikelrabatte an.

Wert Rückgabe
VKs Anzahl der Artikel-Verkaufspreise
EKs Anzahl der Artikel-Einkaufspreise
Rab Anzahl der Rabattsätze für Artikel
Parameter Beschreibung
[in] BSTR Name String "VKs", "EKs" oder "Rab"
[out, retval] VARIANT* Value Variant mit ganzzahligem Ergebnis des angeforderten Elements

3.1.19 IAutoDataSetInfo Interface

Enthält die Eigenschaften einer Datentabelle.

IDL

[ uuid(DEED36C4-2EB5-11D3-BA03-004005232B30), version(1.0),
  helpstring("Dispatch-Schnittstelle für AutoDataSetInfo-Objekt"),
  dual, oleautomation ]
interface IAutoDataSetInfo : IAutoBase;

Dieses Interface enthält die Eigenschaften einer Datentabelle. Die Eigenschaft "Item" von AutoDataSetInfos gibt dieses Interface zurück.

IAutoDataSetInfo Eigenschaften

Methoden

Name Beschreibung
CreateDataSet Erstellt AutoDataSet Interfaces.

Eigenschaften

Name Beschreibung
Application Zugriff auf das Basisobjekt, von dem alle Interfaces abstammen.
Bez Bezeichner einer Tabelle.
Fields Zugriff auf AutoFieldInfos.
Indices Zugriff auf AutoIndexInfos.
isNested Nested-Status der Tabelle.
Name Name einer Tabelle.
NestedDataSets Zugriff auf AutoNestedDataSetInfos.
OrgName Original-Name einer Tabelle.
Parent Gibt das Parent Interface zurück.

IAutoDataSetInfo::Name Eigenschaft

Name einer Tabelle.

IDL

__property BSTR* Name;

Gibt den Namen einer Datentabelle aus.

IAutoDataSetInfo::OrgName Eigenschaft

Original-Name einer Tabelle.

IDL

__property BSTR* OrgName;

Gibt den originalen Namen einer Datentabelle aus.

IAutoDataSetInfo::Bez Eigenschaft

Bezeichner einer Tabelle.

IDL

__property BSTR* Bez;

Gibt den Bezeichner einer Datentabelle aus.

IAutoDataSetInfo::Fields Eigenschaft

Zugriff auf AutoFieldInfos.

IDL

__property AutoFieldInfos** Fields;

Diese Eigenschaft verschafft Zugriff auf die Metainformationen der einzelnen Datenfelder innerhalb der Datentabelle.

Parameter Beschreibung
Value Rückgabewert: Ein Interface auf AutoFieldInfos

IAutoDataSetInfo::Indices Eigenschaft

Zugriff auf AutoIndexInfos.

IDL

__property IAutoIndexInfos** Indices;

Diese Eigenschaft verschafft Zugriff auf die Metainformationen der einzelnen vorhandenen Indices innerhalb der Datentabelle.

Parameter Beschreibung
Value Rückgabewert: Ein Interface auf AutoIndexInfos

IAutoDataSetInfo::NestedDataSets Eigenschaft

Zugriff auf AutoNestedDataSetInfos.

IDL

__property IAutoNestedDataSetInfos** NestedDataSets;

Diese Eigenschaft erlaubt Zugriff auf die NestedDataSet-Informationen innerhalb der Datentabelle.

Parameter Beschreibung
Value Rückgabewert: Ein Interface auf AutoNestedDataSetInfos

IAutoDataSetInfo::CreateDataSet Methode

Erstellt AutoDataSet Interfaces.

IDL

[id(0x00000007)]
HRESULT _stdcall CreateDataSet([out, retval] AutoDataSet** Value);

Diese Funktion erstellt ein Interface vom Typ AutoDataSet. Mit diesem Aufruf werden Datentabellen erstellt.

Parameter Beschreibung
[out, retval] AutoDataSet** Value Rückgabewert: Ein Interface vom Typ AutoDataSet wird erstellt

IAutoDataSetInfo::isNested Eigenschaft

Nested-Status der Tabelle.

IDL

__property VARIANT_BOOL* isNested;

Diese Eigenschaft ist "True", wenn die Datentabelle eine eingebettete Tabelle (NestedDataSet) ist.

Parameter Beschreibung
Value Rückgabewert: Boolean = "True" wenn die Datentabelle ein NestedDataSet ist, ansonsten "False"

3.1.20 IAutoDataSetInfo2 Interface

Von IAutoDataSetInfo abstammendes Interface.

IDL

[ uuid(9FF6A302-81E5-48D8-8188-A118C8E29E2E), version(1.0),
  dual, oleautomation ]
interface IAutoDataSetInfo2 : IAutoDataSetInfo;

Ab Build: 2519.

IAutoDataSetInfo2 Eigenschaften

Methoden

Name Beschreibung
CreateDataSet Erstellt AutoDataSet Interfaces.
CreateDataSetEx Erstellt AutoDataSet Interfaces mit erweiterter Feldliste.

Eigenschaften

Name Beschreibung
Application Zugriff auf das Basisobjekt, von dem alle Interfaces abstammen.
Bez Bezeichner einer Tabelle.
Fields Zugriff auf AutoFieldInfos.
Indices Zugriff auf AutoIndexInfos.
isNested Nested-Status der Tabelle.
Name Name einer Tabelle.
NestedDataSets Zugriff auf AutoNestedDataSetInfos.
OrgName Original-Name einer Tabelle.
Parent Gibt das Parent Interface zurück.

IAutoDataSetInfo2::CreateDataSetEx Methode

Erstellt AutoDataSet Interfaces mit erweiterter Feldliste.

IDL

[id(0x0000000B)]
HRESULT _stdcall CreateDataSetEx([out, retval] AutoDataSet** Result);

Diese Funktion erstellt ein Interface vom Typ "AutoDataSet". Mit diesem Aufruf werden Datentabellen mit erweiterter Feldliste erstellt. Die erweiterte Feldliste sorgt z. B. bei einer Adressen-Tabelle dafür, dass alle Felder, die z. B. Rechnungs- oder Lieferadresse betreffen, in der Feldliste vorhanden sind. So kann dann wie beim Im/Export-Editor auf alle Felder dieser Tabelle zugegriffen werden, ohne diese erst umständlich mit Ranges zusammenstellen zu müssen. Zur Vereinfachung kann man sagen, dass die Tabelle um ihre verknüpften Tabellen erweitert wird.

Hinweis

Im Falle eines Problems beim Posten können die zusätzlich eingefügten Felder nicht korrekt mit Cancel zurückgesetzt werden. Daher empfiehlt es sich, wie im Beispiel unten, immer eine Transaktion zu setzen, wenn mehrere Tabellen angesprochen werden.

Parameter Beschreibung
[out, retval] AutoDataSet** Result Rückgabewert: Ein Interface vom Typ AutoDataSet mit erweiterter Feldliste
Delphi-Codebeispiel
procedure DoWork;
var
  bError: Boolean;
  hDataSet: Variant;
begin
  bError := False;
  hDataSet := gvComApp.DataSetInfos['Adressen'].CreateDataSetEx;
  repeat
    hDataSet.StartTransaction;
    bError := False;
    hDataSet.Append;
    try
      hDataSet.Fields['Status'].AsString := 'Hersteller';
      hDataSet.Fields['AdrNr'].AsString := hDataSet.SetupNr('');
      hDataSet.Fields['Re.Na2'].AsString := 'ReNa';
      hDataSet.Fields['Li.Na2'].AsString := 'LiNa';
      hDataSet.Post;
      hDataSet.Commit;
    except
      DebugMessage('Fehler: ' + ExceptionMessage);
      hDataSet.Cancel;
      hDataSet.Rollback;
      bError := True;
    end;
  until not bError;
end;

3.1.21 IAutoDataSetInfo3 Interface

Von IAutoDataSetInfo2 abstammendes Interface.

IDL

[ uuid(414D9BC4-DE6E-473D-AED3-21CE847CD414), version(1.0),
  dual, oleautomation ]
interface IAutoDataSetInfo3 : IAutoDataSetInfo2;

Ab Build: 5030.

Um die Partnertabellen nutzen zu können, benötigen Sie zwei Arten von Schlüsseln: Einen für Ihre microtech Software, um im DB-Manager die Strukturen zu erstellen, und für Ihre Endkunden einen Schlüssel, den Sie mit AutoSpecialTableDefinition.ActivateExtendedFkt für die Partnertabelle beim Endkunden scharfschalten. Hierfür ist ein gesonderter Vertrag mit microtech notwendig.

Erstellen einer Tabellen Information

Alle Optionen, die mit dem Interface IAutoDataSetInfo3 verändert werden können, lassen sich folgendermaßen auslesen:

  1. Stellen Sie sicher, dass Sie Ihren Schlüssel für Partnertabellen eingetragen haben
  2. Erstellen Sie Ihre Partnertabelle im DB-Manager
  3. Ändern Sie mit dem DB-Manager die Partnertabelle auf die von Ihnen gewünschte Struktur (Vorgabefelder, Vorgabesortierung, Volltextfelder, Tabellenbeschreibung)
  4. Lesen Sie mit dem Interface IAutoDataSetInfo3 die gewünschten Eigenschaften aus
  5. Die so gewonnenen Strings können Sie verwenden, um eine Partnertabelle mit den gewünschten Feldern zu befüllen (siehe Beispiel)

Die Inhalte der einzelnen Werte werden hier nicht erklärt. Der Ablauf sieht vor, dass die Eigenschaften in einer Partnertabelle auf Ihrem System angelegt werden und die Werte nur gelesen werden, ohne Änderungen vorzunehmen. Die so erzeugten Werte können Sie dann verwenden, um bei Ihren Kunden die Tabellen anzulegen.

Zugriff auf die Tabellen

Beim Öffnen der Tabellen muss eine besondere Namensgebung beachtet werden:

BpApp.DataSetInfos['PartnerTabelle00101']

Dieser Name setzt sich aus drei Elementen zusammen:

  • PartnerTabelle als feststehender Name
  • Drei Zeichen als Nummer, die den Partner kennzeichnet
  • Drei Zeichen als Nummer, die die Tabelle kennzeichnet (aktuell 01 bis 03)

Sie können nur auf Ihre eigene Partnertabelle schreibend zugreifen. Andere vorhandene Partnertabellen können gelesen, aber nicht geändert werden. Der Name wird auch für DataSetInfos['PartnerTabelle00101'].CreateDataSet verwendet.

Ihre Nummern und Aktivierungsinformationen erhalten Sie bei Abschluss des notwendigen Zusatzvertrages für die Partnertabellen.

Delphi-Codebeispiel: Zugriff auf Tabellenbild
programm FreieTabellen;
var
  BpApp: IAutoApplication;
  BpSpecialTableDefinition: AutoSpecialTableDefinition;
  BpAutoDataSetInfo: AutoDataSetInfo;
begin
  BpApp := CreateOleObject('BpNT.Application');
  BpApp.Init('Ihr ConnectionName', 'Ihr ConnectionKey', 'Ihr Anmeldename', 'Ihr Passwort');
  BpApp.SelectMand('Ihr Mandant');

  BpSpecialTableDefinition := (BpApp.GetSpecialObject(soTableDefinition)
    as AutoSpecialTableDefinition);
  BpSpecialTableDefinition.ActivateExtendedFkt(
    'Solution Partner Name', 'Solution Partner Postleitzahl', 'Solution Partner Schlüssel');

  BpAutoDataSetInfo := BpApp.DataSetInfos['PartnerTabelle00101'];

  // Lesen & Schreiben von Meta-Eigenschaften
  s1 := BpAutoDataSetInfo.VolltextFelder;
  s2 := BpAutoDataSetInfo.VorgabeSortierungen;
  s3 := BpAutoDataSetInfo.VorgabeFelder;
  s := BpAutoDataSetInfo.TabellenBeschreibung;
  sl := TStringList.Create;
  try
    sl.CommaText := s;
    if sl.Values['TabImageKz'] = '' then
      sl.Values['TabImageKz'] := 'ikZeit'
    else
      sl.Values['TabImageKz'] := '';

    if BpSpecialTableDefinition.MaintenanceMode(
      TRUE, 'Die Partnertabelle wird gerade erstellt.', 5) then
    try
      BpAutoDataSetInfo.TabellenBeschreibung := sl.CommaText;
      BpAutoDataSetInfo.VolltextFelder := s1;
      BpAutoDataSetInfo.VorgabeSortierungen := s2;
      BpAutoDataSetInfo.VorgabeFelder := s3;
      BpAutoDataSetInfo.SetupTable;
    finally
      BpSpecialTableDefinition.MaintenanceMode(
        FALSE, 'Die Partnertabelle wird gerade erstellt.', 1);
    end;
  finally
    sl.Free;
  end;
end;

IAutoDataSetInfo3 Eigenschaften

Methoden

Name Beschreibung
CreateDataSet Erstellt AutoDataSet Interfaces.
CreateDataSetEx Erstellt AutoDataSet Interfaces mit erweiterter Feldliste.
SetupTable Schreibt die Datenbankinformation in die Tabelle durch.

Eigenschaften

Name Beschreibung
AenderungsInfoFelder Holt die Liste mit den Änderungsinformationen.
Application Zugriff auf das Basisobjekt, von dem alle Interfaces abstammen.
Bez Bezeichner einer Tabelle.
Fields Zugriff auf AutoFieldInfos.
FreieSortierung Holt die Liste der Sortierungen.
Indices Zugriff auf AutoIndexInfos.
isNested Nested-Status der Tabelle.
Name Name einer Tabelle.
NestedDataSets Zugriff auf AutoNestedDataSetInfos.
OrgName Original-Name einer Tabelle.
Parent Gibt das Parent Interface zurück.
SelektionsFelder Holt die Liste der Selektionsfelder.
TabellenBeschreibung Holt die Tabellenbeschreibung.
VolltextFelder Holt die Liste der Volltextfelder.
VorgabeFelder Holt die Liste der Vorgabefelder.
VorgabeSortierungen Holt die Liste der Sortierungen.

IAutoDataSetInfo3::SelektionsFelder Eigenschaft

Holt die Liste der Selektionsfelder.

IDL

__property BSTR SelektionsFelder;

SelektionsFelder steht nur für den Zugriff auf Tabellen zur Verfügung. Für Partnertabellen ist diese Funktion ohne Wirkung. Um die Eigenschaften zu schreiben, muss SetupTable zum Festschreiben der Tabelle aufgerufen werden.

Anmerkung

Schreibend nur ausführbar, wenn MaintenanceMode erfolgreich aufgerufen wurde. Selektionsfelder sind nicht für Partnertabellen verfügbar.

IAutoDataSetInfo3::FreieSortierung Eigenschaft

Holt die Liste der Sortierungen.

IDL

__property BSTR FreieSortierung;

FreieSortierung steht nur für den Zugriff auf Tabellen zur Verfügung. Für Partnertabellen ist diese Funktion ohne Wirkung. Um die Eigenschaften zu schreiben, muss SetupTable zum Festschreiben der Tabelle aufgerufen werden.

Anmerkung

Schreibend nur ausführbar, wenn MaintenanceMode erfolgreich aufgerufen wurde. Freie Sortierungen sind nicht für Partnertabellen verfügbar.

IAutoDataSetInfo3::VorgabeFelder Eigenschaft

Holt die Liste der Vorgabefelder.

IDL

__property BSTR VorgabeFelder;

Um die Eigenschaften zu schreiben, muss SetupTable zum Festschreiben der Tabelle aufgerufen werden.

Anmerkung

Schreibend nur ausführbar, wenn MaintenanceMode erfolgreich aufgerufen wurde.

IAutoDataSetInfo3::VorgabeSortierungen Eigenschaft

Holt die Liste der Sortierungen.

IDL

__property BSTR VorgabeSortierungen;

Um die Eigenschaften zu schreiben, muss SetupTable zum Festschreiben der Tabelle aufgerufen werden.

Anmerkung

Schreibend nur ausführbar, wenn MaintenanceMode erfolgreich aufgerufen wurde.

IAutoDataSetInfo3::VolltextFelder Eigenschaft

Holt die Liste der Volltextfelder.

IDL

__property BSTR VolltextFelder;

Um die Eigenschaften zu schreiben, muss SetupTable zum Festschreiben der Tabelle aufgerufen werden.

Anmerkung

Schreibend nur ausführbar, wenn MaintenanceMode erfolgreich aufgerufen wurde.

IAutoDataSetInfo3::TabellenBeschreibung Eigenschaft

Holt die Tabellenbeschreibung.

IDL

__property BSTR TabellenBeschreibung;

Um die Eigenschaften zu schreiben, muss SetupTable zum Festschreiben der Tabelle aufgerufen werden.

Anmerkung

Schreibend nur ausführbar, wenn MaintenanceMode erfolgreich aufgerufen wurde.

IAutoDataSetInfo3::AenderungsInfoFelder Eigenschaft

Holt die Liste mit den Änderungsinformationen.

IDL

__property BSTR AenderungsInfoFelder;

Um die Eigenschaften zu schreiben, muss SetupTable zum Festschreiben der Tabelle aufgerufen werden.

Anmerkung

Schreibend nur ausführbar, wenn MaintenanceMode erfolgreich aufgerufen wurde.

IAutoDataSetInfo3::SetupTable Methode

IDL

[id(0x000001FC)]
HRESULT _stdcall SetupTable([out, retval] HRESULT* Result);

SetupTable muss nach jeder schreibenden Aktion für die Tabellendefinition aufgerufen werden. Dieser Aufruf schreibt die Datenbankinformation in die Tabelle durch.

Hinweis

Damit SetupTable ausgeführt werden kann, muss MaintenanceMode erfolgreich ausgeführt werden.

Parameter Beschreibung
[out, retval] HRESULT* Result Reserviert. Aktuell wird immer "0" zurückgegeben.

3.1.22 IAutoDataSetInfo4 Interface

Von IAutoDataSetInfo3 abgeleitetes Interface.

IDL

[ uuid(50353243-2C4E-48BD-B95A-50BEDD243DC8), dual, oleautomation ]
interface IAutoDataSetInfo4 : IAutoDataSetInfo3;

Ab Build: 5036.

IAutoDataSetInfo4 Eigenschaften

Methoden

Name Beschreibung
CreateDataSet Erstellt AutoDataSet Interfaces.
CreateDataSetEx Erstellt AutoDataSet Interfaces mit erweiterter Feldliste.
OptimizeChangeInfo Optimiert für einen Zeitraum Änderungsprotokoll-Einträge.
SetupTable Schreibt die Datenbankinformation in die Tabelle durch.

Eigenschaften

Name Beschreibung
AenderungsInfoFelder Holt die Liste mit den Änderungsinformationen.
Application Zugriff auf das Basisobjekt, von dem alle Interfaces abstammen.
Bez Bezeichner einer Tabelle.
Fields Zugriff auf AutoFieldInfos.
FreieSortierung Holt die Liste der Sortierungen.
Indices Zugriff auf AutoIndexInfos.
isNested Nested-Status der Tabelle.
Name Name einer Tabelle.
NestedDataSets Zugriff auf AutoNestedDataSetInfos.
OrgName Original-Name einer Tabelle.
Parent Gibt das Parent Interface zurück.
SelektionsFelder Holt die Liste der Selektionsfelder.
TabellenBeschreibung Holt die Tabellenbeschreibung.
VolltextFelder Holt die Liste der Volltextfelder.
VorgabeFelder Holt die Liste der Vorgabefelder.
VorgabeSortierungen Holt die Liste der Sortierungen.

IAutoDataSetInfo4::OptimizeChangeInfo Methode

Optimiert für einen Zeitraum Änderungsprotokoll-Einträge.

IDL

[id(0x00000259)]
HRESULT _stdcall OptimizeChangeInfo([in] DATE Start, [in] DATE End, [in] BSTR Area);

Vor dem Prüfen/Abarbeiten einer Änderungsinformationen-Tabelle sollte man diese Funktion aufrufen. Das anzugebende Zeitfenster sollte das letzte geprüfte Zeitfenster nicht überlappen, jedoch auch keine Lücke beinhalten. Der Bereich bestimmt, welche Änderungsinfo-Definition abgearbeitet werden soll. So hat man maximal einen Änderungsinformations-Datensatz zu dem jeweilig geänderten Datensatz und muss entsprechend nicht mehrfach einen Datensatz abgleichen.

In dem angegebenen Zeitfenster wird jeweils nur der jüngste Änderungsinformations-Datensatz bestehen belassen; ältere Datensätze werden gelöscht.

Parameter Beschreibung
[in] DATE Start Datum und Uhrzeit. Ab diesem Zeitpunkt soll optimiert werden.
[in] DATE End Datum und Uhrzeit. Bis zu diesem Zeitpunkt soll optimiert werden.
[in] BSTR Area Bezeichner der zu optimierenden Änderungsinformation. Bei einer Leereingabe werden alle Änderungsinfo-Datensätze optimiert.