Exportieren: Liste mit Produktion und Käufer

geschrieben von alex vonne hunte 
Willkommen! Anmelden Ein neues Profil erzeugen Suche
Exportieren: Liste mit Produktion und Käufer
05. Oktober 2016 14:54
Hallo,
ich bin begeistert, was Fakturama alles leisten kann. Ich benötige nun für die Auswertung der Verkäufe noch etwas Hilfe. Was muss ich tun, damit die Exportfunktion
Liste mit Produktion und Käufer

auch die Artikelnummer und die Beschreibung enthält.

Also wo finde ich im Code die Ausgabefunktion des Exports und welche Variabel muss ich da einfügen?


Würde mich freuen, wenn jemand Rat hat.

Beste Grüße
Alex
Re: Exportieren: Liste mit Produktion und Käufer
05. Oktober 2016 19:54
Hallo Alex,
das ist "starr". Da kannst du keinen Export anpassen. Aber so bekommst Du alles, was dein Herz begehrt:
Erweiterte+Auswertungen+in+FAKTURAMA+mit+LO-Base

------------------
Viele Grüße
Steffen
Re: Exportieren: Liste mit Produktion und Käufer
10. Oktober 2016 15:42
Hallo Steffen,

vielen Dank für deine Antwort. Es hat ein wenig gedauert, bis ich die Datenbank ansprechen konnte:



jdbc: hsqldb:file:\[Pfad zum Fakturama-Arbeitsverzeichnis, zb C:\Daten\Arbeitsverzeichnis]\Database\Database


Das unterstrichene / war wohl zu viel.


Nun bin ich dabei Datenbankabfragen zu generieren. Und komme da nicht weiter. In der Anleitung steht dass man die verschiedenen Tabelle über einen Wert verbinden muss. Ich habe an dem Beispiel nicht verstanden warum AdressID mit ID verknüpft werden muss.

Daher klappt es wohl auch nicht, warum meine Abfragen keinen Sinn ergeben.


Ich möchte eine Aufstellung, welcher Kunde (Adress) an welchem Datum welchen Artikel (hierbei benötige ich Description, die ItemNr und den Price) in welcher Menge bestellt hat.

Welche Tabellen muss ich über welchen Wert dafür verknüpfen?

Würde mich freuen, wenn jemand mir einen Tipp geben kann.

Beste Grüße

Alex
Re: Exportieren: Liste mit Produktion und Käufer
10. Oktober 2016 22:08
Hallo Alex,
Zitat
Alex
jdbc: hsqldb:file:\[Pfad zum Fakturama-Arbeitsverzeichnis, zb C:\Daten\Arbeitsverzeichnis]\Database\Database
Das unterstrichene / war wohl zu viel.

Ja. Danke. Mein Verschreiber. Habe es umgehend geändert.

Zitat
Alex
Ich habe an dem Beispiel nicht verstanden warum AdressID mit ID verknüpft werden muss.

Erst einmal hat jede Tabelle eine ID-Spalte. Die ID ist die eineindeutige Kennung eines Datensatzes. Stell Dir vor, Du hast zwei fast völlig identische Datensätze eines Kunden (Müller), nur die Hausnummer (18) ist verschieden, weil er einen Hauseingang weiter gezogen ist. Du sagst Deiner Programmierung jetzt: Gehe zu Datensatz Müller! Dann "fragt" die Software (in Form eines Fehlers): Welcher Müller-Datensatz? Nimmst Du die Hausnummer 18, passt das auch nicht, denn ca. 10 Deiner Kunden wohnen in einer 18.
Den Datensatz ID = 35 gibt es aber nur einmal. Dafür sorgt die Software bei der Befüllung der Tabelle mit automatischer Nummerierung (wenn automatisch eingestellt ist).

Jetzt hast Du auf der einen Seite hast Du eine völlig in sich geschlossene Tabelle mit Kunden und auf der anderen Seite hast Du eine völlig in sich geschlossene Tabelle mit Produkten. Beide Tabellen haben Spalten mit eineindeutigen IDs. Jetzt führst Du beide Tabelleninhalte zu Bestellungen zusammen, also
Kunde 1: Produkte 1 und 2
Kunde 2: Produkte 2 und 3

In der Bestelltabelle hat auch jede Bestellung eine eigene ID. Nun kann man alle Daten der Kunden (Name, Alter, Steuernummer, Telefon.......) und der Produkte (Preis, Mengeneinheit, VKP, EKP, Gewicht.......) in die Bestelltabelle einkopieren, aber neben anderen Nachteilen sieht dann keiner mehr durch, weil ja auch noch alle Daten zu den Versandarten, den Steuersätzen, den Textvorlagen usw. einkopiert werden müssten.

Also referenziert man die Datensätze aus anderen Tabellen "nur". Diese Referenzierung geschieht über die eineindeutigen IDs.

Bestellung ID 1 = Kunde ID 1 | Produkte IDs 1, 2
Bestellung ID 2 = Kunde ID 2 | Produkte IDs 2, 3

Im konkreten Fall: In ADRESSID der Tabelle DOCUMENTS steht (als Referenz) die ID des Kundendatensatzes der Tabelle CONTACTS. Also nur eine 35 in der Tabelle DOCUMENTS und hinter der 35 verbirgt sich in der Tabelle CONTACTS der gesamte Kundendatensatz. Brauchst Du also zur Bestellung ID X die Mailadresse, holt er sie also erst aus dem Kontakt mit der ID Y.
Da der PC prinzipiell dumm ist, musst DU! die Verbindung zwischen ADRESSID der Tabelle DOCUMENTS und ID der Tabelle CONTACTS herstellen.

Zitat
Alex
Ich möchte eine Aufstellung, welcher Kunde (Adress) an welchem Datum welchen Artikel (hierbei benötige ich Description, die ItemNr und den Price) in welcher Menge bestellt hat.

Nötige Referenzen [TABELLE.DATENFELD]:
DOCUMENTS.ADRESSID + CONTACTS.ID
DOCUMENTS.ITEMS + ITEMS.ID

Viel Erfolg! :-)

------------------
Viele Grüße
Steffen
Re: Exportieren: Liste mit Produktion und Käufer
11. Oktober 2016 14:27
Hallo Steffen,

vielen Dank für deine schnelle Antwort. Ich scheine aber immer noch Verständnisprobleme zu haben.
Zitat

Nötige Referenzen [TABELLE.DATENFELD]:
DOCUMENTS.ADRESSID + CONTACTS.ID
DOCUMENTS.ITEMS + ITEMS.ID


Ich habe nun die drei Tabellen Contacts, Documents und Items.

Verbunden habe ich Contacts ID mit AdressID von Documents und von Documents Items eine Verknüpfung zu ID der Items Tabelle

und es erscheint die Fehlermeldung: data exception: invalid character value for cast


Verbinde ich statt documents Items und Items ID die Tabellen documents ID mit Items ID erhalte ich zwar Daten aber die scheinen nicht korrekt zu sein.
Re: Exportieren: Liste mit Produktion und Käufer
11. Oktober 2016 22:14
Hallo Alex,
Für das Erstellen einer Abfrage in LibreOffice base kannst du auch den Assistenten verwenden. Das ist der mittlere Punkt, der mit erstellen einer Abfrage mit Hilfe des Assistenten gekennzeichnet ist. Probiere den bitte einmal Schritt für Schritt aus. Vielleicht kommst Du damit etwas weiter. Ich habe heute leider keine Zeit, mir deine Abfrage einmal genauer anzusehen. Falls der Assistent auch nichts wird oder du ihn schon verwendet hast, schreibe bitte noch einmal eine kurze Nachricht hier.
Ich würde dann deine Abfrage in den nächsten Tagen einmal zusammenstellen und dir per PN schicken.

------------------
Viele Grüße
Steffen
Re: Exportieren: Liste mit Produktion und Käufer
13. Oktober 2016 13:04
Hallo Steffen,

den Assistenten verstehe ich nun gar nicht sad smiley

Die Abfrage in der Entwurfsansicht glaube ich verstanden zu haben. Aber es klappt leider nicht.
Auch wenn ich eine einfache Abfrage durchführe nicht.

Ich nehme meine Tabelle DOCUMENTS und lasse mir die Items anzeigen. Das funktioniert. Ich bekomme eine Tabelle mit den einzelnen Items in Form der Nummern. Wenn ich nun diese Items mit der ID der Tabelle ITEMS verbinde, müssten die Nummern jetzt ja zB als Description aufgeschlüsselt werden. Aber ich bekomme nur die Fehlermeldung
Zitat

SQL-Status: 22018
Fehler-Code: -3438

data exception: invalid character value for cast
Die Dateninhalte konnten nicht geladen werden.

Ein häufiger Grund für diesen Fehler ist eine ungeeignete Zeichensatz-Einstellung für die Sprache Ihrer Datenbank. Überprüfen Sie diese Einstellung unter Bearbeiten - Datenbank - Eigenschaften.

Beste Grüße
Alex
Re: Exportieren: Liste mit Produktion und Käufer
19. Oktober 2016 12:21
Hallo Alex,
hier nun eine etwas verspätete (sorry!) Antwort und die Auflösung.
Den Fehler habe ich auch bekommen und musste mich dazu auch mit Ralf kurz abstimmen.
Die Auflösung: Eigentlich sollte, wie oben beschrieben, die ID-ID-Zuordnung eineindeutig sein. Im Fall der DOCUMENTS.ITEMS + ITEMS.ID ist das aber nicht so, weil in DOCUMENTS.ITEMS alle Items dieses Dokuments mit Kommas getrennt in der ID stehen. Somit würde LO natürlich
DOCUMENTS.ITEMS = 1,3,15,20
als ID abholen und nach diesem String in der ITEMS.ID-Spalte suchen....und nix finden.
Also müsste (durch Programmcode!) dieser String erstmal in seine Bestandteile aufgelöst und zwischengeparkt werden. Dann könnte man die Abfrage mit den Bestandteilen 1,3,15,20 der Reihe nach erfolgreich durchführen.

Ergo: Das ist einem "normalen Nutzer mit DB-Ambitionen" nicht zuzumuten und eigentlich auch nicht Zweck dieser Übung. Ich brauchte bisher die Artikeltabelle im Rahmen unserer Abfragen nicht. Deshalb ist mir das auch nicht aufgefallen.

Fazit: Alles ohne Artikel abzufragen funktioniert und ist okay. Abfragen innerhalb der ITEMS-Tabelle gehen natürlich auch. Eine Verbindung in dem hier diskutierten Sinne zwischen DOCUMENTS.ITEMS + ITEMS.ID lässt sich schlicht nicht abfragen.

Ich weiß, ist schade, aber da es sich beim Inhalt des Feldes DOCUMENTS.ITEMS um eine eher ungünstige und bei Fakturama eher historisch gewachsene Programmierlösung handelt, hatte Ralf im Hintergrund schon mitgedacht und diesen Knoten bei der V2 durch Zwischentabellen aufgelöst. Soll heißen, bei der V2 müsste dann diese Abfrage auch möglich werden.

HTH

------------------
Viele Grüße
Steffen



2-mal bearbeitet. Zuletzt am 19.10.16 12:23.
Re: Exportieren: Liste mit Produktion und Käufer
20. Oktober 2016 16:44
Hallo Steffen,

also ich freu mich und bin dankbar, dass du überhaupt hilfst, da warte ich auch gerne ein paar Tage auf die Antwort.

Wenn ich es richtig verstehe, geht es nicht, was ich will. Weil die Item Zelle erst aufgelöst werden müsste in einzelne Items, wenn mehre Items drin stehen.

Aber bei der Exportfunktion Liste mit Produktion und Käufer werden die einzelnen Artikel gezählt. Mit was für eine Abfrage passiert das denn? Kannst du mir das sagen welche Tabelle dafür verknüpft werden?

Mein Problem ist nämlich, dass dort einige Artikel mit gleichen Namen als ein Produkt gezählt werden, obwohl es verschiedene Produkte sind. Eine eindeutige Zuordnung wäre eben nur über die Artikelnummer oder der Beschreibung möglich.

Beste Grüße

Alex
Re: Exportieren: Liste mit Produktion und Käufer
20. Oktober 2016 21:28
Hallo Alex,

Zitat
Alex
Aber bei der Exportfunktion Liste mit Produktion und Käufer werden die einzelnen Artikel gezählt. Mit was für eine Abfrage passiert das denn? Kannst du mir das sagen welche Tabelle dafür verknüpft werden?

Das ist eine programminterne, also "fest programmierte" Abfrage, während wir hier über ein Drittprogramm (LibreOffice) direkt und ohne Fakturama auf die Fakturama-DB zugreifen, also quasi ein ganz anderer Zugriff von außen.

Zitat
Alex
Mein Problem ist nämlich, dass dort einige Artikel mit gleichen Namen als ein Produkt gezählt werden, obwohl es verschiedene Produkte sind. Eine eindeutige Zuordnung wäre eben nur über die Artikelnummer oder der Beschreibung möglich.

Ah ja, jetzt verstehe ich, was du meinst. Da bist du nicht der erste. Ich verlinke dir mal den Thread von damals

------------------
Viele Grüße
Steffen
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen