Zum Inhalt

Dokumente & Kontenanalyse

3.1.84 IAutoDokument Interface

SpecialObject für die Dokumentenverwaltung.

IDL

[ uuid(2417935C-E720-4D43-8660-92E54120EA93), version(1.0), dual, oleautomation ]
interface IAutoDokument : IAutoBase;

Beschreibung

Analog dem Aufruf für andere SpecialObjects können Sie wie folgt ein Objekt der Schnittstelle "AutoDokument" erstellen.

Set Dokument = BpApp.GetSpecialObject(soDokumente) ' Wobei soDokumente dem Wert 2 entspricht.

Bitte beachten Sie, dass dieses Objekt nur in microtech Software Versionen mit Dokumenten Erweiterung funktioniert "NE-1046". Bei einer Lizenzierung Ihrer Schnittstelle kann das Objekt aber auch für Versionen ohne Dokumentenerweiterung eingesetzt werden.

Folgende Funktionen stehen für das SpecialObject Dokument zur Verfügung:

  • Append Fügt einen Datensatz an die Dokumententabelle an.
  • Edit Verändert den aktuellen Datensatz der Dokumententabelle.
  • InitDB(MasterData:AutoDataset) Dem Datensatz auf dem die Mastertabelle steht wird das Dokument hinzugefügt. Wird die übergebene Tabelle nicht unterstützt, wird der Bereich der Dokumente auf "(Allgemein)" gesetzt und es findet keine Verknüpfung zum Masterdatensatz statt.
  • SetDokData(ImportArt:DokumentImportArt, FileName:WideString) Importiert in den aktuellen Datensatz der Dokumententabelle die mit Filename spezifizierte Datei und verwendet dabei die mit ImportArt angegebene Art.
  • Post Speichert die Änderungen ab.
typedef DokumentImportArt
  doiDatei    = 0
  doiOLE      = 1
  doiLink     = 2
  doiFileLink = 3
Allgemeines Dokument hinzufügen (Delphi Script)
...Snipp...
MasterDb := BpApp.DataSetInfos('Dokumente').CreateDataSet;
Dokument := BpApp.GetSpecialObject(soDokumente);
Dokument.InitDB(MasterDb);
Dokument.Append;
Dokument.SetDokData(doiLink,'C:\Dokumente\test.txt');
Dokument.Post;
MasterDb := nil;
Dokument := nil;
BpApp := nil;
...Snipp...
Dokument zur Adresse 10000 hinzufügen und direkt verändern (Delphi Script)
...Snipp...
Dokument := BpApp.GetSpecialObject(soDokumente);
MasterDb := BpApp.DataSetInfos('Adressen').CreateDataSet;
MasterDb.Indices.Item('NrNum').Select;
MasterDb.SetKey;
MasterDb.Fields('AdrNr').AsString := '10000';
MasterDb.GotoNearest;
showmessage(MasterDb.Fields('AdrNr').AsString);
Dokument.InitDB(MasterDb);
Showmessage(IntToStr(Dokument.DataSet.RecordCount));
Dokument.Append;
Dokument.SetDokData(doiOLE,'C:\Dokumente\Bild.jpg');
Dokument.DataSet.Fields['Na'].AsString := 'ComApp1';
Dokument.DataSet.Fields['Wichtig'].AsInteger := 1;
Dokument.Post;
Dokument.Edit;
Dokument.SetDokData(doiDatei,'C:\Dokumente\word.doc');
Dokument.DataSet.Fields['Na'].AsString := 'ComApp2';
Dokument.DataSet.Fields['Wichtig'].AsInteger := 2;
Dokument.Post;
Showmessage(IntToStr(Dokument.DataSet.RecordCount));
MasterDb := nil;
Dokument := nil;
BpApp := nil;
...Snipp...

3.1.84.1 IAutoDokument Eigenschaften

Die folgende Tabelle zeigt die Eigenschaften von IAutoDokument.

Methoden

Name Beschreibung
Append Neuen Datensatz anlegen.
Edit Die aktuelle Datenzeile wird geändert.
InitDB Positionierung.
Post Die Datentabelle wird geschrieben.
SetDokData Import Funktion für ein Dokument.

Eigenschaften

Name Beschreibung
Application Zugriff auf das Basisobjekt, von dem alle Interfaces abstammen.
DataSet Dokumententabelle auf der aktuellen Position.
Parent Gibt das Parent Interface zurück.

3.1.84.2 IAutoDokument::Append Methode

Neuen Datensatz anlegen.

IDL

[id(0x00000001)]
HRESULT _stdcall Append();

Beschreibung

Es wird ein neuer Datensatz an die Dokumententabelle angefügt.

3.1.84.3 IAutoDokument::DataSet Eigenschaft

Dokumententabelle auf der aktuellen Position.

IDL

__property AutoDataSet** DataSet;

Beschreibung

Ein AutoDataSet das auf dem aktuellen Datensatz positioniert ist und alle Felder der Dokumententabelle enthält.

3.1.84.4 IAutoDokument::Edit Methode

Die aktuelle Datenzeile wird geändert.

IDL

[id(0x00000003)]
HRESULT _stdcall Edit();

Beschreibung

Erlaubt die Veränderung des aktuellen Datensatzes. Die aktuelle Datenzeile ist beschreibbar bis "Post" aufgerufen wird.

3.1.84.5 IAutoDokument::Post Methode

Die Datentabelle wird geschrieben.

IDL

[id(0x00000004)]
HRESULT _stdcall Post();

Beschreibung

Die aktuell in Bearbeitung befindliche Datenzeile wird in der Tabelle fest geschrieben. Diese Funktion schließt "Append" und "Edit" ab.

3.1.84.6 IAutoDokument::InitDB Methode

Positionierung.

IDL

[id(0x00000005)]
HRESULT _stdcall InitDB([in] AutoDataSet* MasterData);

Beschreibung

Die Position von Mastertabelle wird verwendet, um Dokumente hinzuzufügen. Wird die übergebene Tabelle nicht unterstützt, wird der Bereich der Dokumente auf "(Allgemein)" gesetzt und es findet keine Verknüpfung zum Masterdatensatz statt. Gezielt kann man den Bereich (Allgemein) durch Verwenden der Mandanten Tabelle erreichen.

Parameter

Parameter Beschreibung
[in] AutoDataSet* MasterData Ein AutoDataSet, die Position auf der diese Tabelle steht wird als Basis zum Hinzufügen von Dokumenten verwendet. Wird die Tabellenart von MasterData nicht unterstützt wird der Bereich "Allgemein" verwendet

3.1.84.7 IAutoDokument::SetDokData Methode

Import Funktion für ein Dokument.

IDL

[id(0x00000006)]
HRESULT _stdcall SetDokData([in] enum DokumentImportArt ImportArt, [in] BSTR FileName);

Beschreibung

Import Funktion für ein Dokument. Importart und Dateiname können angegeben werden.

Parameter

Parameter Beschreibung
[in] enum DokumentImportArt ImportArt DokumentImportArt mit dem beschrieben wird, auf welche Art das Dokument eingefügt werden soll
[in] BSTR FileName Der komplette Dateipfad + Dateiname

3.1.85 IAutoDokument2 Interface

Von IAutoDokument abstammendes Interface.

IDL

[ uuid(C21D7B4D-EC52-4FE2-971D-59ECD46E424C), version(1.0), dual, oleautomation ]
interface IAutoDokument2 : IAutoDokument;

3.1.85.1 IAutoDokument2 Eigenschaften

Die folgende Tabelle zeigt die Eigenschaften von IAutoDokument2.

Methoden

Name Beschreibung
Alle Methoden aus IAutoDokument
GetDokData Liest Dokumente aus der Dokumententabelle aus und speichert diese als Datei.
GetDokDataStream Ein bestehendes Dokument in einen Stream schreiben.
SetDokDataStream Dokument aus einem Stream erstellen.

Eigenschaften

Name Beschreibung
Alle Eigenschaften aus IAutoDokument

3.1.85.2 IAutoDokument2::SetDokDataStream Methode

Dokument aus einem Stream erstellen.

IDL

[id(0x00000007), helpstring("Der ÜbergabeParameter \"InputStream\" muss IStream implementieren")]
HRESULT _stdcall SetDokDataStream([in] IUnknown** InputStream, [in] BSTR Name, [in] BSTR Ext);

Beschreibung

Es wird das aktuelle Dokument aus dem übergebenen Stream kopiert. Bitte beachten Sie, dass der als "IUnknown" übergebene Parameter das IStream Interface unterstützen muss und Sie den Stream auf die Anfangsposition des Dokumentes setzen. Es wird bis zum Ende des Streams gelesen.

Parameter

Parameter Beschreibung
[in] IUnknown** InputStream Ein IUnknown Interface, das IStream implementieren muss
[in] BSTR Name Name des Eintrags in der Dokumentenverwaltung
[in] BSTR Ext Dateierweiterung, um die richtigen Programme zur Anzeige der Datei zu verwenden

3.1.85.3 IAutoDokument2::GetDokData Methode

Liest Dokumente aus der Dokumententabelle aus und speichert diese als Datei.

IDL

[id(0x00000008), helpstring("Bitte den Dateinamen übergeben der gespeichert werden soll")]
HRESULT _stdcall GetDokData([in] BSTR FileName);

Beschreibung

Es muss der komplette Dateiname des abzuspeichernden Dokumentes angeben werden. Diese Datei wird dann eingelesen und anhand der Parameter (OLE, Text, als Datei) geschrieben.

Parameter

Parameter Beschreibung
[in] BSTR FileName Den kompletten Dateinamen angeben

3.1.85.4 IAutoDokument2::GetDokDataStream Methode

Ein bestehendes Dokument in einen Stream schreiben.

IDL

[id(0x00000009), helpstring("Der ÜbergabeParameter \"OutputStream\" muss IStream implementieren.")]
HRESULT _stdcall GetDokDataStream([in, out] IUnknown** OutputStream);

Beschreibung

Es wird das aktuelle Dokument in den übergebenen Stream kopiert. Bitte beachten Sie, dass der als IUnknown übergebene Parameter das IStream Interface unterstützen muss.

Parameter

Parameter Beschreibung
[in, out] IUnknown** OutputStream Ein IUnknown Interface, das IStream implementieren muss

3.1.86 IAutoDokument3 Interface

Von IAutoDokument2 abstammendes Interface.

IDL

[ uuid(C1CD9B68-815E-4E63-8CDB-97F6123EC97D), version(1.0), dual, oleautomation ]
interface IAutoDokument3 : IAutoDokument2;

Beschreibung

Ab Build: 4002.

3.1.86.1 IAutoDokument3 Eigenschaften

Die folgende Tabelle zeigt die Eigenschaften von IAutoDokument3.

Methoden

Name Beschreibung
Alle Methoden aus IAutoDokument2
GetDokDataEx Liest Dokumente aus der Dokumententabelle aus und speichert diese als Datei.
GetDokDataStreamEx Ein bestehendes Dokument in einen Stream schreiben.

Eigenschaften

Name Beschreibung
Alle Eigenschaften aus IAutoDokument2

3.1.86.2 IAutoDokument3::GetDokDataEx Methode

Liest Dokumente aus der Dokumententabelle aus und speichert diese als Datei.

IDL

[id(0x00000191)]
HRESULT _stdcall GetDokDataEx([in] BSTR FileName, [out, retval] BSTR* Result);

Beschreibung

Diese Funktion ist mit GetDokData identisch. Es werden aber zusätzlich eventuelle Fehlerfenster abgefangen und in den Rückgabewert umgeleitet.

Parameter

Parameter Beschreibung
[in] BSTR FileName Den kompletten Dateinamen angeben
[out, retval] BSTR* Result Gibt einen String zurück. Leer bedeutet, dass kein Fehler aufgetreten ist. Ansonsten enthält der String die Fehlermeldung

3.1.86.3 IAutoDokument3::GetDokDataStreamEx Methode

Ein bestehendes Dokument in einen Stream schreiben.

IDL

[id(0x00000192)]
HRESULT _stdcall GetDokDataStreamEx([in, out] IUnknown** OutputStream, [out, retval] BSTR* Result);

Beschreibung

Diese Funktion ist mit GetDokDataStream identisch. Es werden aber zusätzlich eventuelle Fehlerfenster abgefangen und in den Rückgabewert umgeleitet.

Parameter

Parameter Beschreibung
[in, out] IUnknown** OutputStream Ein IUnknown Interface, das IStream implementieren muss
[out, retval] BSTR* Result Gibt einen String zurück. Leer bedeutet, dass kein Fehler aufgetreten ist. Ansonsten enthält der String die Fehlermeldung

3.1.87 IAutoSpecialKontenAnalyse Interface

SpecialObject für eine Konten Analyse.

IDL

[ uuid(B57A6E27-4503-4AE6-84E7-6239A4969A74), version(1.0), dual, oleautomation ]
interface IAutoSpecialKontenAnalyse : IAutoBase;

Beschreibung

Analog dem Aufruf für andere SpecialObjects können Sie wie folgt ein Objekt der Schnittstelle "AutoSpecialKontenAnalyse" erstellen.

Set Kontoanalyse = BpApp.GetSpecialObject(soKontenAnalyse) ' Wobei soKontenAnalyse dem Wert 3 entspricht.

Folgende Funktionen stehen für das Kontenanalyse Objekt zur Verfügung:

  • KontenTbl (Eigenschaft) Gibt lesend und schreibend ein Dataset mit den verfügbaren Gliederungsschemen zurück. Durch die Positionierung wird bestimmt welches Schema verwendet wird.
  • KontenAnalyse (Methode) Baut die Gliederung und die zugehörigen Konten zur Ansicht in einem Tree View auf.

Zusammensetzung der Daten:

Die Tabelle "Gliederung" enthält die "Überschriften" unter denen die einzelnen Konten angezeigt werden.

Die Felder "Ebene", "Pos", "ParentId" und "Id" enthalten die hierarchische Abfolge. Das Root Element ist mit dem Wert 1 im Feld "Ebene" gekennzeichnet.

Die Position innerhalb dieser Ebene kann man dem Feld "Pos" entnehmen. 0 .. n geben die Position in der Ebene an. Die Zugehörigkeit der einzelnen Knoten zu Ihren übergeordneten Knoten wird über die Felder "ParentId" und "Id" geregelt. Ein Unterknotenpunkt trägt in seiner ParentId den Id Wert des Knotens der über ihm ist.

Die Konten die den einzelnen Knoten zugeordnet sind können Sie aus dem Feld "Data" als Komma separierte Liste entnehmen. Die dort aufgeführten Kontonummern sind in der Tabelle "Konten" im Feld KtoNr enthalten.

Beispiel der Anordnungen:

Root        Ebene1      Ebene2      ...usw.

Name = Root             Name = 1.1              Name = 1.1.1
Ebene = 1               Ebene = 2               Ebene = 3
Pos = 0                 Pos = 0                 Pos = 0
ParentId = 0            ParentId = 26           ParentId = 1
Id = 26                 Id = 1                  Id = 5
Data = ''               Data = '2500'           Data = '2800, 2801'

                        Name = 1.2              Name = 1.2.1
                        Ebene = 2               Ebene = 3
                        Pos = 1                 Pos = 1
                        ParentId = 26           ParentId = 21
                        Id = 21                 Id = 7
                        Data = ''               Data = '3000'

Das ergibt einen Baum folgender Anordnung:

Root +
├── 1.1 +
│   ├── 1.1.1 +
│   │   ├── Konto Nr 2800
│   │   └── Konto Nr 2801
│   └── Konto Nr 2500
└── 1.2 +
    └── 1.2.1 +
        └── Konto Nr 3000
Kontenanalyse durchführen (Delphi 5)
...Snipp...
procedure DoKontenAnalyse;
var
  GliederungArten : AutoDataSet;
  ErgKonto : OleVariant;
  ErgGliederung : OleVariant;
  BpApp : Application;
  Analyse : AutoSpecialKontenAnalyse;
begin
  try
    BpApp := CoApplication.Create;
    try
      BpApp.Init('Firmenname','','Anmeldename','Password');
      BpApp.SelectMand('gewünschter Mandant Name');
      Analyse := (BpApp.GetSpecialObject(soKontenAnalyse) as AutoSpecialKontenAnalyse);
      GliederungArten := Analyse.KontenTbl;
      GliederungArten.Last;
      Analyse.KontenTbl := GliederungArten; // Datensatz auswählen zu dem die Analyse erstellt werden soll.
      Analyse.KontenAnalyse(False, False, False, 2002, 1, 15, False, True, True, True, True, ErgKonto, ErgGliederung);
      // do work
    finally
      GliederungArten := nil;
      Analyse := nil;
      BpApp := nil;
    end;
  except
    on e: Exception do
    begin
      ShowMessage(e.Message);
      raise;
    end;
  end;
end;
...Snipp...

3.1.87.1 IAutoSpecialKontenAnalyse Eigenschaften

Die folgende Tabelle zeigt die Eigenschaften von IAutoSpecialKontenAnalyse.

Methoden

Name Beschreibung
KontenAnalyse Führt eine Kontenanalyse durch.

Eigenschaften

Name Beschreibung
Application Zugriff auf das Basisobjekt, von dem alle Interfaces abstammen.
KontenTbl Auswahl des Gliederungsschemas.
Parent Gibt das Parent Interface zurück.

3.1.87.2 IAutoSpecialKontenAnalyse::KontenAnalyse Methode

Führt eine Kontenanalyse durch.

IDL

[id(0x00000001)]
HRESULT _stdcall KontenAnalyse([in] VARIANT_BOOL Proforma, [in] VARIANT_BOOL LW2,
  [in] VARIANT_BOOL Vorjahr, [in] long Auswertungsjahr, [in] long VonPeriode, [in] long
  BisPeriode, [in] VARIANT_BOOL KtoEinzeln, [in] VARIANT_BOOL keinNBSaldoKto, [in]
  VARIANT_BOOL kein0SaldoKto, [in] VARIANT_BOOL kein0SaldoGld, [in] VARIANT_BOOL
  kein0SaldoWJahr, [in, out] VARIANT* Konten, [in, out] VARIANT* Gliederung);

Beschreibung

Diese Funktion führt eine Kontenanalyse mit den angegebenen Parametern durch.

Parameter

Parameter Beschreibung
[in] VARIANT_BOOL Proforma Ausgabe der nicht gebuchten Umsätze
[in] VARIANT_BOOL LW2 Ausgabe in Leitwährung 2
[in] VARIANT_BOOL Vorjahr Ausgabe der Vorjahreswerte
[in] long Auswertungsjahr Jahr in dem die Analyse gemacht wird
[in] long VonPeriode 1..15 entspricht Januar bis Dezember & 13., 14. und 15. Periode
[in] long BisPeriode 1..15 entspricht Januar bis Dezember & 13., 14. und 15. Periode
[in] VARIANT_BOOL KtoEinzeln Ausgabe jedes Kontos
[in] VARIANT_BOOL keinNBSaldoKto keine Konten mit 0 Salden aus Stornierung
[in] VARIANT_BOOL kein0SaldoKto keine Konten mit 0 Salden in der Ausgabe
[in] VARIANT_BOOL kein0SaldoGld keine Gliederungspunkte mit 0 Salden
[in] VARIANT_BOOL kein0SaldoWJahr kein Ausgabe von 0 Salden im Wirtschaftsjahr
[in, out] VARIANT* Konten Rückgabewert der Konten Tabelle
[in, out] VARIANT* Gliederung Rückgabewert der Gliederung Tabelle

3.1.87.3 IAutoSpecialKontenAnalyse::KontenTbl Eigenschaft

Auswahl des Gliederungsschemas.

IDL

__property AutoDataSet* KontenTbl;

Beschreibung

Gibt ein Interface zu einem AutoDataSet mit den verfügbaren Gliederungsschemen zurück. Durch die Positionierung wird bestimmt welches Schema verwendet wird.