WICHTIG!
Lexware hat anscheinend die Art, wie das Passwort (oder sein Hash) gespeichert wird, geändert und deshalb funktioniert der hier hinterlegte Code nicht mehr.
Wenn jemand die Analyse der Lexware-Änderungen finanzieren möchte, kann er mich über die Web-Seite kontaktieren.
Lexware-Datenbank-Zugriff
Die Mappings sind unvollständig und enthalten nur die Daten, die von den bisherigen Projekten benötigt wurden.
Die Besonderheit dieser Klassen ist, dass man vollen Zugriff (auch schreibend) auf die Lexware-Datenbanken erhält und auch - im Gegensatz zu der bekannten ODBC-Lösung - Lexware nicht geöffnet sein muss!
Lizenz
Die Bibliothek unterliegt der MIT-Lizenz.
NuGet-Pakete
Description | Badge |
---|---|
Basis-Bibliothek | |
Basis-Lexware-Komponenten | |
NHibernate-Komponenten | |
Globale Strukturen | |
Globale Mappings | |
Faktura-Strukturen | |
Faktura-Mappings | |
Buchhaltung-Strukturen | |
Buchhaltung-Mappings |
Beispiele
Alle Firmen anzeigen
var provider = new SybaseWindowsConfigurationProvider("lexware-server-hostname-or-ip");
using (var context = new LexwareGlobalDbContext(provider))
{
foreach (var firma in context.Firmen)
{
Console.WriteLine("{0} ({1})", firma.Name, firma.Id);
}
}
Der SybaseWindowsConfigurationProvider
liefert eine Standard-Konfiguration für den LexwareGlobalDbContext
, die von folgenden Bedingungen ausgeht:
- Die Datenbanken liegen unterhalb von
c:\ProgramData\Lexware\professional\Datenbank
- Der Standard-Datenbank-Name ist
LXOFFICE
- Die Standard-Datenbankdatei ist
LXOffice.db
- Die Firmen-Datenbankdatei hat den Namen
LxCompany.db
Der LexwareGlobalDbContext
stellt folgendes zur Verfügung:
- Read-Only-Zugriff auf die
LXOffice.db
- Abfrage des Superuser-Logins
- Liste der Benutzer
- Liste der Firmen
- Eine
ISessionFactory
für den Zugriff auf die Firmendatenbank
Alle Artikel der Warenwirtschaft aller Firmen anzeigen
var provider = new SybaseWindowsConfigurationProvider("lexware-server-hostname-or-ip");
provider.MappingAssemblies.Add(typeof(ArtikelMap).Assembly);
using (var context = new LexwareGlobalDbContext(provider))
{
foreach (var firma in context.Firmen)
{
using (var session = context.GetCompanySessionFactory(firma, context.SuperUserLogin).OpenSession())
{
foreach (var artikel in session.Query<Artikel>())
{
Console.WriteLine("{2}: {0} ({1})", artikel.Bezeichnung, artikel.SheetNr, artikel.ArtikelNr);
}
}
}
}