🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Erstellung einer laufenden Inventurdatenbank

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
phaeton616
Beiträge: 15
Registriert: Mi 16. Jan 2013, 20:23

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von phaeton616 » Mi 23. Jan 2013, 11:10

leider hat das alles ichts gebracht, zip und unzip, exportieren von "script" und "base", winrar erkennt zwar einen Fehler in der Datenbank, repariert auch, und libre office versucht danach nochmals zu repariewren, bleibt aber defekt.

Inzwischen bin ich nun auch schon wieder auf meinem Stand:
bezüglich meines Formularbasierten Filter Makros bräuchte ich noch einen tipp

bislang habe ich zwei makros, eines für das aufrufen des filters und eines das den Filter ausführt:

Code: Alles auswählen

REM  *****  BASIC  *****

Sub Main

End Sub


sub Aufruf_Formfilter
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:FormFilter", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:FormFilterNavigator", "", 0, Array())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:FormFilterNavigator", "", 0, Array())


end sub


sub bestaetigen_Formfilter
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:FormFilterExecute", "", 0, Array())


end sub
ich würde die zwei gerne mittels Case-Funktion verbinden, also in der Art:

Code: Alles auswählen

sub SuchenundAusführen
CASE "formfilteraktiv"=FALSE 
Aufruf_Formfilter
ELSE
bestaetigen-Formfilter
Und dafür noch ein weiteres Makro das via Aufruf durch grafische Schaltfläche den Suchfilter auf die leeren Felder zurücksetzt.

EDIT: Nochwas merk ich gerade, die erstellten grafischen Schaltflächen führen die zugewiesenen Standardaktionen nich aus (Vor, Züruck, Neuer Datensatz...) die schalflächen auf denen das makro hinterlegt ist, hingegen machen was sie sollen?
Wie kommts?

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von RobertG » Mi 23. Jan 2013, 13:42

Nichts zu den Makros. Ich arbeite nicht mit Makrorecorder und auch nicht mit dem formularbasierten Filter. Nur ein Hinweis zu den grafischen Kontrollfeldern (Buttons, die nur aus einer Grafik bestehen): Die sind defekt https://bugs.freedesktop.org/show_bug.cgi?id=46579. Da hat sich leider auch seit Anbeginn von LO nichts dran getan.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

phaeton616
Beiträge: 15
Registriert: Mi 16. Jan 2013, 20:23

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von phaeton616 » So 27. Jan 2013, 11:29

Ok für grafische Schaltflächen hab ich einen workaround gefunden, ich habe für jede standardaktion die ich brauche ein eigenes Makro aufgezeichnet und habe es unter dem Reiter Ereignisse -> Aktion bestätigen dem Grafikelement zugewiesen. Das funktioniert einwandfrei. Nur beim SuFu makro habe ich noch keinen neuen Ansatz, das zusammenzufassen.

Was mir ebenfalls aufgefallen ist: mache ich einBackup von der Datei, dann verschwinden die grafischen Schaltflächen, weil der Pfad zwar noch richtig angegeben ist zur grafik, aber nicht automatisch übetragen wird. Am liebsten wäre es mir die Grafdiken direkt in die DB zu importieren, ohne auf ein verzeichnis verweisen zu müssen, sondern sie eben als Gradfikobjekt direkt im formular zu haben.

Mittlerweile habe ich dank eurer hilfe die Datenbank vorerst mal soweit, dass ich sagen kann sie funtioniertfür die täglichen lagerbewegungen - quasi eine beta mit der man schonmal arbeiten kann, als nächstes muss ich mich an das Übertragen der Daten machen und den Unterbau für die Wertermittlung erstellen.

EDIT, die 1433632te: jetzt wirds interessant: bis zur Laufenden Nummer 112/2 importiert er korrekt, aber ich sehe keinen grund warum er 113 nicht mehr importiert, vom system her unterscheidet sich der Datesatz 113 nämlich nicht von den vorherigen!?
Zuletzt geändert von phaeton616 am Mi 30. Jan 2013, 13:18, insgesamt 1-mal geändert.

phaeton616
Beiträge: 15
Registriert: Mi 16. Jan 2013, 20:23

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von phaeton616 » Mi 30. Jan 2013, 10:42

Ich habe momentna ein Problem mit dem import aus einer Calc-tabelle:

In der quelltabelle ist der Primärschlüssel bereits enthalten als fortlaufende Zahlennummerierung (XXX/YY, X=Nummer des Rohteils, Y=erweiterung für gleiche Rohteile. In der Datenbank ist der Primärschlüssel als VARCHAR definiertt wg. des slash.
Beim versuch zu importieren habe ich mehr spalten in der Datenbanktabelle als in der Quelltabelle, das sollte aber kein problem sein, nachdem ich für das Mehr an Spalten die Eingabe nicht als Erforderlich markiert habe. Dennoch bekomme ich beim Versuch zu importieren eine constraint violation- Fehlermeldungibung

EDIT: gibt es eine möglichkeit eine genauere Fehlerbeschreibung zu erhalten anstatt einen verweis auf alle Spalten in denen Daten sind welche ich zu importieren versuche wie es bei der standardmeldung der Fall ist?

Mir ist nocwas aufgefallen: importiere ich die Daten in eine neue Tabelle dann funktioniert es, aber die Spalten werden allesamt als VARCHAR gesetzt auch wenn sie nur Zahlen enthalten, der Versuch den Datentyp zu ändern resultiert in in der Warnung, dass das nicht möglich sei, und ob ich die Spalte löschen und hinten anfügen möchte...
Die gelöschten Bezüge kann ich darüberhinaus nicht mehr herstellen, constrain violation... irgendwie hab ich da was falsch konzipiert. Nur was?

Noch was: entferne ich die Bezüge zur Spalte Material (welche in den bezugnehmenden Tabellen der Primärschlüssel ist: Rohteilliste n--->1 Materialliste (Primär)) erschein ein java.lang.numberformaterror

phaeton616
Beiträge: 15
Registriert: Mi 16. Jan 2013, 20:23

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von phaeton616 » Do 31. Jan 2013, 08:36

ok, neuer Ansatz: Ich habe jetzt alle Bezüge wieder entfernt.

Ich konnte so einmal die Nummern 1-100 importieren, beim Versuch den Rest zu importieren kamm wieder der besagtte java-error. Daraufhin habe ich versucht blockweise zu importieren. Jetzt habe ich obwohl es zuvor noch funktioniert hat wieder den constraint integrity error diesmal "sys_fk_130" etwas genauer spezifiziert: "LfdNr." enthalte doppelte Werte...

Ich hänge jetzt mal die quelltabelle an, vielleicht ist der Fehler ja offensichtlich für andere...

Ich habe den Slash in dieser Version bereits ersetzt durch einen Punkt, für den Fall dass darin der Fehler liegt. Die Laufende Nummerierung in ihrer Systematik zu ändern ist keine Option: mehrere hundert Teile müssten so neu beschriftet werden, das übersteigt den mir zur Verfügung stehenden zeitlichen Rahmen.
Dateianhänge
Fertige Liste.ods
durch Inventur erfasste Teile
(27.54 KiB) 189-mal heruntergeladen

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von F3K Total » Fr 1. Feb 2013, 16:10

Hi,
anbei eine .odb mit deinen Daten und mehr ...

Gruß R
Dateianhänge
Fertige Liste.zip
nur entpacken
(37.41 KiB) 204-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

phaeton616
Beiträge: 15
Registriert: Mi 16. Jan 2013, 20:23

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von phaeton616 » Mi 27. Mär 2013, 15:53

Vielen Dank für das importieren der Tabelle, das sollte mir sehr weiterhelfen...

Ich hatte in den letzten Wochen masive Probleme mein ubuntu wieder zum laufen zu bringen und hab es jetzt erstmal wieder geschafft meine Datenbankentwürfe mittels Konsole aus dem defekten System zu extrahieren.

Nunmehr habe ich auf Windows libre office laufen und zwar die 4.0.1.2. Hat sich den nunmehr was getan im bezug auf die grafischen Schaltflächen funktioniert das nun?

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von F3K Total » Mi 27. Mär 2013, 17:20

Hast Du eigentlich das Formular "Suche" gesehen?
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

phaeton616
Beiträge: 15
Registriert: Mi 16. Jan 2013, 20:23

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von phaeton616 » Di 2. Apr 2013, 11:14

ja, habe mich auch schon damit beschäftigt.
Was ich so rauslese hast du das über den Ansatz einer Abfrage gelöst. In der Abfrage hast du alle möglichen Kombinationen der Kritetrien mit "größer-gleich <Variable>" mit und ohne Werkstoffbezeichnung vorgegeben. Die daraus entstandenen Variablen hast du in neuen Spalten in der Abfrage angegeben und wieder alle möglichen ausgabewerte der Spalten (istleer) definiert.

Das ist ein besserer Ansatz als der meinige, die baseigene Suchfunktion mittels Makro auf das Formular zu verknüpfen, da ich dann in der bedienung nicht mehr mit logischen Argumenten arbeiten muss z.B. L: >=100 ---> "datensatz suchen".

Was ich da noch nicht verstanden habe: wo liegt der Bezug zwischen dem Button "Suche" und den Werten in der Maske?

EDIT: Alle Achtung, du hast ja sogar schon die ganze Masseberechniung in die Abfrage eingebaut. jetzt erkenn ich auch wo solche formlen mit logischen operaden hingehören :idea:

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Erstellung einer laufenden Inventurdatenbank

Beitrag von F3K Total » Di 2. Apr 2013, 17:54

Moin phaeton616,
hast Du eigentlich einen?
phaeton616 hat geschrieben:wo liegt der Bezug zwischen dem Button "Suche" und den Werten in der Maske?
Das ist nicht so ganz einfach, ich versuche es zu erklären.

Es gibt eine Tabelle Filter, Grundlage von MainForm dem Hauptformular, auf dem auch die Eingabefelder liegen.
D.h. vom Grundsatz werden die eingebenen Suchdaten in die Tabelle Filter geschrieben. Das Formular ist so umgestellt, das keine Daten zugefügt oder gelöscht werden können, hat daher immer nur eine Zeile, die jeweils bei Eingabe eines Wertes überschrieben wird.
Dann gibt es das Unterformular SubForm auf dem das Tabellenkontrollfeld und der Suchbutton liegen. Die Datengrundlage des SubForms ist die Parameterabfrage Volumen und Gewicht
Die Verknüpfung zwischen Haupt- und Unterformular also zwischen Filter und Volumen und Gewicht sieht im Formularnavigator so aus:
Verknüpfung.png
Verknüpfung.png (10.46 KiB) 4369 mal betrachtet
D.h. die Parameter m, h, b und l werden durch die Werte aus der Tabelle Filter: Material, Hmin, Bmin und Lmin befeuert. Es gibt in der Abfrage für jeder Parameter ein zusätzliches Kriterium: or is null, d.h. wenn der jeweilige Parameter leer ist (es wurde nichts eingegeben) soll der Parameter beim Filtern nicht beachtet werden.
Jetzt zum Ablauf:
  • Man gibt etwas in die Filterfelder ein.
  • Der Datensatz muss dann gespeichert werden.
  • Danach muß das Unterformular aktualisiert werden, damit die Parameter befeuert werden und die Abfrage das gefilterte Ergebnis liefert.
Dies klappt mit einem Trick: Die Button suchen liegt auf dem Unterformular und die Eigenschaft fokussieren bei Klick ist eingestellt. Beides ist notwendig denn:
Dadurch, dass der Button beim Anklicken fokussiert wird, springt der Fokus vom Hauptformular ins Unterformular und der aktuelle Datensatz in der Filtertabelle, also die Suchbegriffe, werden gespeichert.
Gleich im Anschluß aktualisiert der Button suchen das Unterformular mit den Parametern, die eben in die Tabelle Filter geschrieben wurden, weil er selbst auf dem Unterformular liegt und die Aktion Formular aktualisieren eingestellt ist. Siehe Bild
Filter.png
Filter.png (19.96 KiB) 4369 mal betrachtet
Verstanden?
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten