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.
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!
Die Bibliothek unterliegt der MIT-Lizenz.
Description | Badge |
---|---|
Basis-Bibliothek | |
Basis-Lexware-Komponenten | |
NHibernate-Komponenten | |
Globale Strukturen | |
Globale Mappings | |
Faktura-Strukturen | |
Faktura-Mappings | |
Buchhaltung-Strukturen | |
Buchhaltung-Mappings |
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
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);
}
}
}
}