Gelöst: Formularfilter für Datumsfeld

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Gelöst: Formularfilter für Datumsfeld

Beitrag von WSO »

Hallo Zusammen,
ich versuche vergeblich per Makro ein Formular nach einem Datumswert zu filtern.

In der Datenbank (Lo 4.3, Mysql, Win 7) werden Formulare zur einheitlichen Aufbereitung ausschließlich von diesem Makro aufgerufen:

Code: Alles auswählen

SUB openFormParm (StForm AS STRING, StFilter AS STRING, FilterJN AS INTEGER)

	DIM oFormDocs AS OBJECT
	DIM oFeld AS OBJECT	
	DIM oBearbForm AS OBJECT
	DIM oForm AS OBJECT	
	DIM oDrawpage AS OBJECT
	DIM oDoc AS OBJECT
		
	DIM iForm AS STRING
	DIM iFilter AS STRING
	
	iForm = StForm
	iFilter = StFilter
	
	oFormDocs = ThisDatabaseDocument.FormDocuments.getByName(iForm).open

   	If glbExpertenmodus = FALSE THEN
    	oForm = oFormDocs.Drawpage.Forms.getByName(iForm)
		oFeld=oForm.getByName("Head")
		glbFormularname = oFeld.getCurrentValue()
     END IF

	
	CALL GUI_Anpassen (oFormDocs) 	    
	oBearbForm = oFormDocs.Drawpage.Forms.getByName(iForm)
	
	If FilterJN = 1 THEN
  		' Filter setzen
  		oBearbForm.Filter = StFilter  
   		oBearbForm.ApplyFilter = True 
   	End IF
   	
   	oBearbForm.reload()
End Sub


Aufgerufen wird das Makro z.B. so:

Code: Alles auswählen

nID = "20141014"  REM Filterwert zuweisen 

   ' Bearbeitungsmaske öffnen
    Call openFormParm ("fUmsatzdetail", " ""kal_datum"" LIKE '" & nID & "'" , 1)
und funktioniert einwandfrei, wenn das zu filternde Feld ein Integer oder String ist.

Ich habe alles Mögliche versucht, um so auch ein Datumsfeld zu filtern.
Zunächst natürlich mit einem Vergleichswert im ISO-Format "JJJJMMTT", aber die Eregebnismenge war leer.
TT.MM.JJJJ, TT-MM-JJJJ, TT.MM.JJ, TT-MM-JJ haben auch nichts gebracht.

Komme auch nach einer Nacht Pause von dem Thema nicht weiter.
Kann mit bitte jemand einen Hinweis geben was ich falsch mache.

Mit Dank im voraus,
WSO
Zuletzt geändert von WSO am Sa, 18.10.2014 01:30, insgesamt 1-mal geändert.
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Formularfilter für Datumsfeld

Beitrag von Karolus »

Hallo
...Vergleichswert im ISO-Format "JJJJMMTT"
Das ist kein ISO-format, sondern das Format in dem Datumswerte in Datumsfeldern von Formularen und Dialogen vor LO4 gespeichert wurden

ISO ist
jjjj-mm-tt
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Formularfilter für Datumsfeld

Beitrag von lorbass »

Karolus hat geschrieben:
...Vergleichswert im ISO-Format "JJJJMMTT"
Das ist kein ISO-format
Sorry, da muss ich widersprechen. Neben »JJJJ-MM-TT« sind auch »JJJJMMTT« und noch einige andere Formate, wie z.B. »JJJJTTT« und »JJJJWWT« ISO 8601 konform. (s. z.B. → A summary of the international standard date and time notation.)

Gruß
lorbass
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: Formularfilter für Datumsfeld

Beitrag von WSO »

Hallo Zusammen,
danke für die Antworten.
Mit "jjjj-mm-tt" funktioniert es.
Sonnige Grüße,
WSO
Antworten