Abhängige Listenfelder machen Probleme

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Abhängige Listenfelder machen Probleme

Re: Abhängige Listenfelder machen Probleme

von Ignis Pugnatur » Fr, 09.11.2012 16:40

Lang ist her .... arbeit usw ....
Zur abgebrannten Platte - Die war von WesternDigital und sogar ohne Garantie haben die vom Support die Platine getauscht .... (Kostenlos) :D
Daten waren dennoch weg (durch die kurze Überspannung die die Platine geschrottet hat), aber sie läuft nun wieder.
Ein einfacher Paltinenwechsel ist in der Regel nur in den seltensten Fällen möglich, da die Software mit den Hardwaredaten identisch sein muss.
Das ist in den wenigsten Fällen so.

Das mal so am Rande ....

Nun wieder zu den Listenfeldern ...... muss mich erst mal wieder reinlesen ..... mann mann
Man sollte dran bleiben wenn man was macht. :(

Bisher ging das noch nicht zufriedenstellend.
Ich bin jetzt erst mal an einer Tabelle in Calk, in der alle Kategorien ordentlich drin sind ohne dass groß was doppeltes dabei ist.
Allein das artet ja schon in Arbeit aus ... hehe

Dann werde ich das ganze in Base neu aufbauen um alte Fehler aus zu merzen (dfür mache ich dann neue) ^^

Ich melde mich dann wieder und hoffe, dass mein Hirn in der Zeit nicht all zu sehr Verkalkt ist.

LG Patric

Re: Abhängige Listenfelder machen Probleme

von paradigma » Mi, 31.10.2012 17:10

Hallo m.
Sorry noch mal an Beni,aber sein Beispiel ist so schön anschaulich. Die in seinem Beispiel beschriebene Situation kommt im wirklichen Leben nicht vor, es ist einfach nur ein netter Trick zum Umgang mit Fremdschlüsseln in Tabellen, an die eine weitere Tabelle (hier nämlich die Artikelgruppen-Tabelle) über Beziehungen angedockt worden ist.
Du hast das Beispiel offensichtlich nicht begriffen.

Es ist genau das, was es vorgibt zu sein, nämlich die Einträge in Listfeld 2 in Abhängigkeit zu Listfeld 1 anzeigen. Das entscheidende am Beispiel ist das hinterlegte Makro (und nicht die abgebildeten Beispieltabellen).

Ich verwende dieses Beispiel (in Kombination mit anderen Makros) in der Praxis u.a. zur Selektionseinschränkung von Berichten. Es ist also nicht einfach ein netter Trick, sondern ein konkreter Lösungsansatz und vor allem eine konkrete Antwort auf die im Titel formulierte Fragestellung, die für mehrere praktische Problemstellungen angewendet werden kann.

Gruss
Beni

Re: Abhängige Listenfelder machen Probleme

von RobertG » Di, 30.10.2012 17:59

Hallo m.,

das Makro wird vom Aufbau her im Base-Handbuch von LibreOffice erklärt und ist auch in der Beispieldatenbank zu finden:
http://de.libreoffice.org/hilfe-kontakt/handbuecher/
- dort ein bisschen nach unten scrollen zum Base-Handbuch, besonders Kapitel 9. Das funktionierende Makro ist dann in eine der Beispieldatenbanken eingebaut (*.zip-Datei zum Base-Handbuch)
Das Beispiel für eine PHP-Konstruktion müsste auf meiner Website noch online stehen. Hat aber nichts mit Base zu tun.

Gruß

Robert

Re: Abhängige Listenfelder machen Probleme

von mhonline » Di, 30.10.2012 03:38

Hallo Robert

Du hast natürlich recht, aber ich hab den Beitrag ja auch erst jetzt gelesen.

Dein Makro interessiert mich, eigentlich bin ich nur gut in Strukturen und kann mit Makros nichts wirklich gutes anfangen, aber Dein Makro löst anscheinend ein Problem, welches bisher nur über das Laden der Quell-Tabelle für die Listenfelder in einem separaten Fenster möglich ist, was aber funktioniert.

Sorry noch mal an Beni,aber sein Beispiel ist so schön anschaulich. Die in seinem Beispiel beschriebene Situation kommt im wirklichen Leben nicht vor, es ist einfach nur ein netter Trick zum Umgang mit Fremdschlüsseln in Tabellen, an die eine weitere Tabelle (hier nämlich die Artikelgruppen-Tabelle) über Beziehungen angedockt worden ist.
Kann man so machen, hilft einem für die Nacherfassung aber überhaupt nicht weiter, da gehören die Listeninhalte resp. die dazugehörigen Tabellen sauber separat abgearbeitet.
Sein Beispiel käme ja eigentlich nur vor, wenn man dieses Selektionsverfahren bei der Erfassung in einer weiteren - dritten - Tabelle verwendet, etwa bei der Erfassung von Lagereingängen oder Rechnungspositionen von Artikeln. Um in dieser Situation die Erfassung von Daten auf höheren Tabellen-Ebenen möglich zu machen, braucht es ein prinzipiell anderes Verfahren. Das vermisse ich.

m.

Re: Abhängige Listenfelder machen Probleme

von RobertG » Fr, 26.10.2012 12:11

Hallo m.,

irgendwie scheint mir Dein Beitrag deutlich verspätet an einen Thread angehängt ohne Bezug zu den vorhergehenden Beiträgen. Ich nehme nicht an, dass damit vielen gedient ist, die diesen Thread lesen.
Wenn ich das richtig deute sprichst Du den Sinn von Listfeldern an, die in einem Formular eingesetzt werden und eigentlich noch mit Werten gefüllt werden müssen. Das Problem habe ich für meine Datenbanken so gelöst, dass ich statt Listfeldern versteckte numerische Felder und Kombinationsfelder benutze - natürlich mittels Makro kombiniert. Beim Öffnen eines Datensatzes wird zu dem Fremdschlüsselfeld der entsprechende Inhalt im Kombinationsfeld dargestellt. Wird der Inhalt im Kombinationsfeld geändert, so wird beim Speichern des Datensatzes zuerst der neue Inhalt abgespeichert, dann das Schlüsselfeld ausgelesen und in das versteckte numerische Feld eingetragen und schließlich die Tabelle mit diesen Werten abgespeichert.
Ich kann also die Auswahlfelder während der Eingabe mit neuen Daten befüllen und so auch mit Listen arbeiten, die erst beim Gebrauch der Datenbank ansteigen.

Das gleiche Verfahren nutze ich auch bei MySQL/PHP/Apache für Webdatenbanken mit Erfolg.

Gruß

Robert

Re: Abhängige Listenfelder machen Probleme

von mhonline » Fr, 26.10.2012 02:26

[quote="paradigma"]Hallo Ignis
Ich habe mal "ins Blaue" ein Beispiel erstellt, denke aber, dass es grundsätzlich das sein sollte, was du suchst. Habe das Beispiel unabhängig von deinen detaillierten Erklärungen erstellt.
Schaus einfach mal an, dann wirst du schnell erkennen, ob du es brauchen kannst.
Gruss
Beni[/quote]


Nur mal so beiläufig:

So schön das lesen von zwei in einer Beziehung verknüpften Tabellen ist, das ist jetzt aber kein proof of concept gewesen,
denn die Daten müssen ja irgendwann mal in die Detail-Tabelle rein, und in diesem Fall ist das händisch gebastelt worden, als Zeiger in der Detail-Tabelle "Artikel" sind mal eben händisch die Werte der Master-Tabelle "ArtikelGruppe" genommen wurden. Das zeitliche (oder logische) Problem ist damit also nicht gelöst. Würd mir wünschen, Du könntest das Problem fertig lösen, also im no-match-Fall auf der Ebene der Details (Artikel) direkt in die Nacherfassung von Artikeln springen zu können.
Die wirkliche Welt ist ja leider immer so, daß man erst beim (massenhaften) Erfassen feststellt, welche Daten fehlen, die man jetzt gerne nachschlagen würde, und müßte man dazu die aktuelle Erfassungsmaske verlassen, stimmt irgendwas im Ablauf nicht.
Nur mal so.

m.

Re: Abhängige Listenfelder machen Probleme

von Ignis Pugnatur » Fr, 08.06.2012 16:04

AAHHHRRRG

Brüll - Tob - Zeter

Vor nen paar Minuten hat sich die Festplatte meiner Frau verabschiedet. Im warsten SInne in Rauch aufgelöst. KOTZ
Nun muss ich zusehen dass die Externplatten und der Drucker an meinen Rechner kommen ...
Verdammt - Kann denn nicht mal einfach nur was funktionieren ohne dass was passiert.
Und sie ist sich nicht mal Sicher was da so noch an Daten drauf war ... Hoffentlich keine unwiederbringlichen Sachen.
Und dann an nem Freitag in unserem Kaff mal schnell ne Platte her zu bekommen scheint auch noch zu einem Problem zu werden.

Mann - mann - mann

Mal hoffen dass meine Platt nicht auch noch abraucht - bei unserem Glück.

EDIT:
Auf der Platine ist was abgekokelt - scheinbar hat die Platte selbst nichts ab bekommen.
Ich habe ne Seite gefunden wo man Ersatzteile her bekommt.
http://www.festplattenarchiv.de/index1.html
Sorry - falsches Forum falscher Post ... aber sicher für deneinen oder anderen nützlich, da dann die Daten wenigstens gerettet werden können.

So - nun wieder auf an die Datenbank ...

Re: Abhängige Listenfelder machen Probleme

von RobertG » Fr, 08.06.2012 11:58

Hallo Patric,

noch einmal zum Thema Geschwindigkeit:
Mit OpenSuSE arbeite ich auch. Das ist mit Sicherheit die Java-Version. Du brauchst die 1.6.0_22 oder (von OpenJDK) die 1.6.0_24. Alle anderen Versionen sind gähnend langsam. Da bringt Dir das Kapitel mit der Datenbankgeschwindigkeit auch nichts. Das ist eher etwas wie Feintuning. Die Geschwindigkeitsunterschiede zwischen den Javaversionen sind hingegen die von Schnecke zu Gepard.

Gruß

Robert

Re: Abhängige Listenfelder machen Probleme

von Ignis Pugnatur » Fr, 08.06.2012 11:23

Die Änderung der Makros habe ich geschafft.
Mit den Ordnern muss ich mir das Handbuch noch genauer zu Gemüte führen ....
Da habe ich die Stelle noch nicht gefunden wo das steht ...
Aber das sind ja auch nicht nur 5 Seiten ... hehe ...
Das wäre auch nicht so wichtig. Es erleichtert ja "nur" die Übersichtlichkeit.

Bisher erst mal danke ......

Es werden sicher noch einige Dinge auftauchen wo ich Hilfe benötige.
Ich werde, eine Art Demo hoch laden wenn das wichtigste mal geht.
Persönliche Daten werden da dann noch nicht drin sein (Beträge der Einkäufe etc., aber einige Artikel dass was drin steht).
Wenn Datensätze drin sein sollten, dann werden das noch keine Realen Daten sein sondern nur zu Demonstrationszwecken.

Im übrigen möchte ich noch anmerken .....
Sollte mal eine Tabelle mit Datensätzen drin sein und man möchte die Löschen, dann geht das ja problemlos.
Schwierigkeiten machen anschliessend eigentlich nur Felder die "Autowert" drin haben.
Auch nach dem löschen aller Datensätze wird BASE dort weiter nummerieren wo die letzten Daten aufgehört haben und nicht bei 1 neu anfangen.
Wer das Problem hat, sollte mal hier nachlesen ....
http://wiki.documentfoundation.org/imag ... ng_V35.pdf
Seite 4 - Autowerte neu einstellen

Das letzte Kapitel sollte ich selbst auch noch mal genauer unter die Lupe nehmen .... Datenbankgeschwindigkeit.

LG
Patric

Re: Abhängige Listenfelder machen Probleme

von RobertG » Fr, 08.06.2012 10:45

ich habe noch einmal über dem Standarddatum gebrütet. Das Makro kann wesentlich kürzer ausfallen, da sich das Standarddatum auch per Makro direkt einstellen lässt.

Code: Alles auswählen

SUB Datum_einfuegen
	oDoc=thisComponent
	oDrawpage=oDoc.Drawpage
	REM Lage des Feldes in dem entsprechenden Formular aufsuchen
	oForm=oDrawpage.Forms.getByName("Formular")
	oFeld=oForm.getByName("Datum")
	oFeld.DefaultDate = CDateToIso(Now())
END SUB
Wie ich schon vorher geschrieben habe: Die Datumsumwandlungen sind immer etwas gewöhnungsbedürftig. Es wird ein Wert wie z.B. 20120608 erwartet. Habe ich etwas gebraucht, um das zu ermitteln.
Das Datum wird durch das Makro gesetzt, sobald ein neuer Datensatz aufgerufen wird. Es erscheint wie jeder Standardwert in dem Feld. Es keine Fehlermeldung, wenn der neue Datensatz ohne andere Eingaben geschlossen wird.
Noch etwas mehr um die Ecke denken musste ich bei dem Zeitwert. Hier jetzt das komplette Makro noch einmal mit Datum, Zeit und der Überprüfung, ob der Standard überhaupt gesetzt werden muss (neuer Datensatz):

Code: Alles auswählen

SUB Datum_einfuegen
	oDoc=thisComponent
	oDrawpage=oDoc.Drawpage
	REM Lage des Feldes in dem entsprechenden Formular aufsuchen
	oForm=oDrawpage.Forms.getByName("Formular")
	oFeld=oForm.getByName("Datum")
	oFeld2 = oForm.getByname("Zeit")
	oFeldID=oForm.getByName("ID")
	IF IsEmpty(oFeldID.getCurrentValue) THEN
		oFeld.DefaultDate = CDateToIso(Now())
		a() = split(Time(),":")
		oFeld2.DefaultTime =  a(0)+a(1)+a(2)+"00"
	END IF
END SUB
Gruß

Robert

Re: Abhängige Listenfelder machen Probleme

von RobertG » Do, 07.06.2012 19:19

Hallo Patric,
Ignis Pugnatur hat geschrieben: Die Listenfelder im Formular funktionieren was die Auswahl betrifft.
Aber:
In der Tabelle werden nicht die Begriffe der Felder sondern die zugrunde liegenden IDs gespeichert.
Das betrifft das zweite und dritte Listenfeld.
Schau Dir einmal den SQL-Befehl zum ersten und zum zweiten Listenfeld an. ich habe hier eine Deiner Versionen vorliegen:
1. Listenfeld

Code: Alles auswählen

SELECT "Hauptkategorie", "Hauptkategorie" FROM "Li-K1"
2. Listenfeld

Code: Alles auswählen

SELECT "Li-K2"."Gruppe", "Li-K2"."K2-ID", "Li-K1"."Hauptkategorie"FROM "Li-K2", "Li-K1" WHERE "Li-K2"."K1-ID" = "Li-K1"."K1-ID"And "Li-K1"."Hauptkategorie" Like '%Haushaltswaren%'
Das zweite Listenfeld gibt die Gruppe zur Ansicht an, aber an der zweiten Position "K2-ID" weiter an die darunterliegende Tabelle.
Das zweite Listenfeld und das Makro müssen geändert werden. Es muss in allen Fällen der folgende Inhalt dort stehen:

Code: Alles auswählen

SELECT "Li-K2"."Gruppe", "Li-K2"."Gruppe" FROM "Li-K2", "Li-K1" WHERE "Li-K2"."K1-ID" = "Li-K1"."K1-ID"And "Li-K1"."Hauptkategorie" Like '%Haushaltswaren%'
Ignis Pugnatur hat geschrieben: Wenn ich BASE öffne dann sehe ich im Fenster links die Gruppierungen Tabelle, Abfrage, Formular etc.
Je nach Auswahl zeigt es mir die dann auch an.
Ich habe in einer DB gesehen, dass man die Tabellen, Formulare etc auch in Ordner stecken kann. Das würde z.B. einiges erleichtern was die Übersicht beträfe, da dann nicht so viele auf einmal zu sehen wären. (z.B. die Tabellen / Formulare für die Listenauswahlfelder in einem Ordner zusammenfassen)
Vielleicht meinst Du dies: Datenbankansicht komplett, dort Einfügen → Ordner ... Vorsicht! Du hast, soweit ich das weiß, Buttons zum Öffnen von Formularen. Da musst Du dann das entsprechende Makro erweitern. Steht unter anderem im Base-Handbuch, aber auch hier in der Liste. Ordner kannst Du aber nur bei Formularen und Berichten einrichten, bei Tabellen und Abfragen geht das nicht.

Gruß

Robert

Re: Abhängige Listenfelder machen Probleme

von Ignis Pugnatur » Do, 07.06.2012 14:26

Nun komme ich mal wieder zu was.
Ich hab nun ein bischen getestet und was festgestellt was mir so nicht ganz passt.

Die Listenfelder im Formular funktionieren was die Auswahl betrifft.
Aber:
In der Tabelle werden nicht die Begriffe der Felder sondern die zugrunde liegenden IDs gespeichert.
Das betrifft das zweite und dritte Listenfeld.
Wie kann ich das machen, dass nicht die ID sondern der dazugehörige Begriff im Datensatz der Tabelle gespeichert wird.

Beispiel:
Listenfeld 1:
ID1 | Hauptgruppe
01 | Lebensmittel
02 | Haushaltsartikel

Listenfeld 2:
ID2 | ID1 | Gruppe
01 | 01 | Konserven
02 | 01 | Backwaren
03 | 02 | Dekoartikel
04 | 02 | Textilwaren

Im Listenfeld 1 wird "Haushaltsartikel" gewählt und im Listenfeld 2 "Textilwaren"
In der Tabelle steht nun in der Spalte Hauptgruppe (Listenfeld 1) - "Haushaltsartikel" und in der Spalte Gruppe (Listenfeld 2) - "04" (also die ID des zweiten Listenfeldes).
Wie kann ich nun statt der 04 den Begriff "Textilwaren" in der Tabelle speichern lassen.

Grund: Gerade in der Aufbau und Testphase ist es einfacher zu sehen was sich hinter der ID verbirgt als dass man erst in die Tabellen der Listenfelder muss um nach zu sehen was sich nun dahinter verbirgt.
Oder kann ich das dann nur über die Abfragen lösen? phuuuu - wenn ja, wie muss ich das nun machen.
Noch bin ich mit dem Aufabu der einzelnen Formulare beschäftigt.

Ach ja .....
Wenn ich BASE öffne dann sehe ich im Fenster links die Gruppierungen Tabelle, Abfrage, Formular etc.
Je nach Auswahl zeigt es mir die dann auch an.
Ich habe in einer DB gesehen, dass man die Tabellen, Formulare etc auch in Ordner stecken kann. Das würde z.B. einiges erleichtern was die Übersicht beträfe, da dann nicht so viele auf einmal zu sehen wären. (z.B. die Tabellen / Formulare für die Listenauswahlfelder in einem Ordner zusammenfassen)
Das habe ich trotz Suche auch noch nicht raus bekommen.

LG und schon mal Danke für eure Hilfe
Patric

Re: Abhängige Listenfelder machen Probleme

von Ignis Pugnatur » So, 03.06.2012 23:39

Und nun das nächste Problem .....
Diverse Sachen machen Probleme wegen den Zeichen. Zum Beispiel ü/ä/ö/ div. Sonderzeichen wie -
Also muss ich einiges ändern .... Phuuuuu
Wenn ich den Formularname ändere (den, der weiter oben genannt wurde - also nicht der offensichtliche, sondern der, der im Formularnavigator),
dann müssen auch einige Makros nachgebessert werden.
Gerade die Listenfeld-Makros sind davon betroffen.

Also muss man auch schon bei der Planung und Erstellung auf die richtigen Bezeichnungen / Beschriftungen achten.
Schade dass so was nicht schon am Anfang in der offiziellen Hilfe erwähnt wird.
Das würde viele Fehler und Arbeit vermeiden .....

Aber der Mensch lernt ja nur aus Fehlern .... :lol:

Re: Abhängige Listenfelder machen Probleme

von Ignis Pugnatur » So, 03.06.2012 22:16

Und das ganze dann im Butten-Eigenschaftsmenü - Ereignis (Bei Mausklick) ...
Dass das auch auf einzelne Felder geht habe ich nicht gefunden ....

Mann - ich komme mir doof vor ..... Du bastelst ja schon fast meine DB :oops: :)
Mal nen ganz liebes Danke an alle die helfen oder Tipps haben.

Ihr seid ne tolle Community.


Patric

Re: Abhängige Listenfelder machen Probleme

von RobertG » So, 03.06.2012 20:28

Ignis Pugnatur hat geschrieben: Ich will in der EAN-Artikelliste einen/mehrere Artikel der DB hinzufügen.
Während der Eingabe fällt mir auf, dass in einem der Listenfelder ein Begriff fehlt.
Ich habe nun hinter den Listenfelder Buttons eingesetzt um auf die Formulare für die Eingabe neuer Listenfeldbegriffe zu zu greifen.
Klappte auch soweit.
Nach dem Schliessen des Listenfeldeingabeformulars bin ich wieder im Artikeleingabefenster.
Die gemachten Einträge sind logischerweise aber noch nicht in den Listenfeldern zu finden.
Wie kann ich die Seite nun (am besten per Button) aktualisieren ohne die eingegebenen Daten zu verlieren oder den noch nicht fertigen Datensatz zu speichern?
Du darfst nicht die ganze Seite aktualisieren. Du musst über das Formular das Listenfeld aufsuchen.

Code: Alles auswählen

SUB Listenfeld_aktualisieren
   oDoc=thisComponent
   oDrawpage=oDoc.Drawpage
   REM Lage des Feldes in dem entsprechenden Formular aufsuchen
   oForm=oDrawpage.Forms.getByName("Formular")
   oFeld=oForm.getByName("Listenfeld")
   oFeld.refresh()
END SUB
Gruß

Robert

Nach oben