❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ 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. 🤗

Unterformular - Monat zu Datum

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
tjay
Beiträge: 3
Registriert: Mi 1. Apr 2015, 11:25

Unterformular - Monat zu Datum

Beitrag von tjay » Mi 1. Apr 2015, 11:47

Hallo zusammnen,

ich will mir gerade für meine Arbeit eine Stundenerfassung zusammnen bauen. Tabllen habe ich alle Fertig und eigentlich funktioniert auch alles soweit bis auf mein Formular. Ich möchte ein Feld haben, in dem ich den Monat auswähle (z.B. Mrz.2015) und in der darunterliegenden Tabelle sollen alle Tageseinträge für die entsprechenden Tage mit Datum (z.B. 01.Mrz.2015, 02.Mrz.2015, 03.Mrz.2015,....) angezeigt und bearbeitet werden können. Gibt es eine Möglichkeit das elegant ohne Makros zu lösen ? Wichitg wäre mir vor allem, dass die Tabelle mit den Tageseinträgen auf einer Datenbank-Tabelle beruht, so dass ich auch neue Daten und Einträge inserten kann.

Hier noch die Datenbank ;)
Dateianhänge
Zeiten.zip
(18.03 KiB) 116-mal heruntergeladen

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

Re: Unterformular - Monat zu Datum

Beitrag von RobertG » Mi 1. Apr 2015, 16:37

Hallo tjay,

verstehe ich das richtig, dass Du nur nach einer Möglichkeit suchst, die Tage eines kompletten Monats entsprechend angezeigt zu bekommen?
Du übergibst ein Datum, möchtest dazu den entsprechenden Monat komplett angezeigt bekommen und gegebenenfalls zu dem Tag einen Eintrag in einem Unterformular zu dem Tag machen, richtig:
Erstelle eine Tabelle mit Werten von 1 - 31. Ich habe die für den folgenden Code "NrBis31" genannt. Die Tabelle besteht nur aus dem Feld "Nr". Das Feld ist Primärschlüssel bis Du alle Werte eingetragen hast. Danach die Primärschlüsseldefinition raus nehmen, damit die Tabelle nicht weiter editiert wird.

Code: Alles auswählen

SELECT DISTINCT
CAST( YEAR(:pDatum) || '-' ||
CASEWHEN
( "M"."Nr" < 10, '0' || "M"."Nr", '' || "M"."Nr" ) || '-' ||
CASEWHEN
( "D"."Nr" < 10, '0' || "D"."Nr", '' || "D"."Nr" )
AS DATE )
AS "Datum"
FROM "NrBis31" AS "D", "NrBis31" AS "M"
WHERE
"M"."Nr" = MONTH(:pDatum)
AND "D"."Nr" <= 31
Wenn Du bei dieser Abfrage ein Datum eingibst, dann werden Dir alle Datumswerte zu dem entsprechenden Monat ausgegeben - in der Abfrage leider als Zahlen, aber für das Formular macht das nichts.
Diese Abfrage setzt Du jetzt als Quelle in das Unterformular, in dem bisher nur zwei Datumswerte auftauchen. Verknüpft wird mit dem Parameter :pDatum. Damit hast Du alle Datumswerte für den Monat des Hauptformulars zur Verfügung.

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

tjay
Beiträge: 3
Registriert: Mi 1. Apr 2015, 11:25

Re: Unterformular - Monat zu Datum

Beitrag von tjay » Do 2. Apr 2015, 10:29

Ja, das ist eignentlich genau das was ich haben will :)
Die Idee ansich ist echt nicht schlecht, wäre selber nie drauf gekommen. Der SQl muss aber noch ein wenig getunned werden, denn sonst zeigt er bei eingabe von :PDatum = '01.02.2015' die Tage:

01.02.2015
02.02.2015
.
.
.
28.02.2015
01.03.2015
02.03.2015
03.03.2015

um das zu beheben hab ich ihn etwas umgeschrieben:

Code: Alles auswählen

SELECT 
	DISTINCT "Datum" 

FROM 
	( SELECT 
		DISTINCT CAST( YEAR( :pDatum ) || '-' || 
				 CASEWHEN( "M"."Nr" < 10, '0' || "M"."Nr", '' || "M"."Nr" ) || '-' || 
				 CASEWHEN( "D"."Nr" < 10, '0' || "D"."Nr", '' || "D"."Nr" ) AS DATE ) 
				 AS "Datum" 
	   FROM 
		"NrBis31" AS "D", 
		"NrBis31" AS "M" 
	   WHERE 
			"M"."Nr" = MONTH( :pDatum ) 
		AND "D"."Nr" <= 31 
	) "temp" 

WHERE 
	MONTH( "temp"."Datum" ) = MONTH( :pDatum )
Ich habe aber immer noch ein Problem im Formular. Wenn ich aus diesem SQL eine Abfrage erstelle und sie als "Master"-Formular verwende, dann stürtzt entweder Base komplett ab oder ich deaktiviere im Unterformular die SQL-Analyse und bekomme die Fehlermeldung:

Code: Alles auswählen

Die Dateninhalte konnten nicht geladen werden.

Code: Alles auswählen

SQL-Status: SOO10
Fehler-Code: -62

Invalid argument in JDBC call: parameter index out of range: 1

Code: Alles auswählen

Das SQL-Kommando, welches zu diesem Fehler führte, ist:

SELECT * FROM "Zeiten"
Ich werde aus den Fehlermeldungen nicht so ganz schlau,... Was mache ich da falsch?
Dateianhänge
Zeiten2.zip
(12.08 KiB) 104-mal heruntergeladen

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

Re: Unterformular - Monat zu Datum

Beitrag von RobertG » Do 2. Apr 2015, 12:02

Hallo tjay,

das liegt an der für mich etwas schwer durchschaubaren Konstruktion mit mapping1 und mapping2.
Wenn Du das UnterUnterformular "Mapping1" eine Stufe hoch ziehst und direkt unter "Monate" legst, von "Monate" aus mit "pDatum" verbindest, von "Mapping1" zu "MainForm" mit "Datum" verbindest, dann werden die Datumswerte weiter gegeben.

Ich nehme an, dass da die Datumstypen nicht übereinstimmen.

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

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

Re: Unterformular - Monat zu Datum

Beitrag von F3K Total » Do 2. Apr 2015, 23:51

Hallo,
hatte gerade einen ähnlichen Fall. Da habe ich einen frei einstellbaren Kalender verwendet.
Das Prinzip ist ähnlich. Habe ich mit deiner Datei zusammengewürfelt, schau mal, ob es passt.
Gruß R
Dateianhänge
Zeiten_neu.zip
(13.2 KiB) 152-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

tjay
Beiträge: 3
Registriert: Mi 1. Apr 2015, 11:25

Re: Unterformular - Monat zu Datum

Beitrag von tjay » Mi 8. Apr 2015, 13:00

Super vielen Dank! das ist genau das was ich nicht hinbekommen habe :D

Brotnascher
Beiträge: 6
Registriert: Mo 27. Apr 2015, 19:13

Re: Unterformular - Monat zu Datum

Beitrag von Brotnascher » Sa 23. Mai 2015, 13:42

Hi, das Beispiel scheint genau das zu sein, was ich für mein aktuelles Problem (Zeiteingabe nach Mitarbeiter und Datumsauswahl sortiert) zu sein. Ich habe versucht das ganze auf mein Problem umzumünzen bzw. nachzubauen. Hat bisher auch super geklappt, jedoch ist mir unklar wie ich die Tabelle V_KALENDER aus der letzten Beispieldatei (Zeiten_neu) erzeuge, bzw implementiere.
Vielleicht kann jemand dazu noch ein paar erklärende Worte abgegeben. Mir ist auch das dazugehörige Symbol bei den Tabellen unbekannt.

Mit freundlichen Grüßen
Martin

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

Re: Unterformular - Monat zu Datum

Beitrag von F3K Total » Sa 23. Mai 2015, 16:01

Hi,
es handelt sich dabei nicht um eine Tabelle, sondern um eine Ansicht. Ist vergleichbar mit einer Abfrage, nur nicht beschreibbar/änderbar.
Mache einen Rechtsklick auf V_KALENDER -> in SQL-Ansicht bearbeiten ..., dann siehst du wie die Ansicht definiert ist.
Sie zieht sich die Zahlen zur Erzeugung des Datums aus der Tabelle T_Z und grenzt den aktuellen Bereich über die Werte VON und BIS aus der Tabelle T_FILTER ein.
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