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.