Seite 1 von 1

Kleine Wünsche - viel Aufwand ? [Gelöst]

Verfasst: Fr 14. Jun 2013, 21:16
von jburchardi
Hallo liebe Gemeinde,
ich möchte das Folgende bloß mal zur Diskussion stellen:
Ich habe ein Base-Formular, das u.a. drei Textfelder beinhaltet. Die Eingaben sollten immer mit einem Anfangs-Großbuchstaben versehen sein (wg. Suchen, Gruppierung etc.). Das folgende Makro wird immer über das Ereignis "Fokusverlust" ausgelöst, es funktioniert alles bestens. Es kann sein, dass noch ein paar Anweisungen aus der Testphase enthalten sind.

Code: Alles auswählen

sub Anfang_Gross(oEvent AS Object)

DIM stMessage AS STRING
DIM feldname AS STRING
DIM ID AS LONG

oDatenquelle = ThisComponent.Parent.CurrentController ' Zugriffsmöglichkeit aus dem Formular heraus
IF NOT (oDatenquelle.isConnected()) THEN oDatenquelle.connect()

oVerbindung = oDatenquelle.ActiveConnection()
oSQL_Anweisung = oVerbindung.createStatement

fld = oEvent.Source
feldname = fld.Model.Name		'Welches Feld hat das Ereignis ausgelöst?

oDoc = thisComponent
rem oDoc=ThisDatabaseDocument.FormDocuments.getByName( "arztrech" ).open

oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("arztrech")

oFeld = oForm.getByName(feldname)
stInhalt = oFeld.getCurrentValue()
str1 = Ucase(left(stInhalt,1))
str2 = mid(stInhalt,2,len(stInhalt) - 1)
stInhalt = str1 + str2
oFeld.BoundField.updateString(stInhalt)	'geänderten Inhalt in das Feld zurückschreiben

ID = oForm.getLong(1)			'wenn ID=0 -> neuer Datensatz

if ID  > 0 then					'kein neuer Datensatz
oForm.updateRow()				'geänderten Feldinhalt in DB schreiben
oForm.reload()					'und anzeigen
endif

end sub
Ist das nicht ein bisschen viel Aufwand dafür, dass lediglich der erste Buchstabe eines Eingabefeldes immer als Großbuchstabe gespeichert wird und dieses auch gleich nach der Eingabe im Formular angezeigt wird? Diese sofortige Anzeige erforderte nämlich auch die Feststellung, ob es sich um einen neuen Datensatz handelt oder nicht.
Habe ich mit Kanonen auf Spatzen geschossen?
Gruß
Jürgen

Re: Kleine Wünsche - viel Aufwand ?

Verfasst: Sa 15. Jun 2013, 01:57
von F3K Total
Hi,
jburchardi hat geschrieben:Ist das nicht ein bisschen viel Aufwand...
du hast da einige Dinge drin, die nicht benötigt werden.
Z.B. das Verbinden und createStatement, was du später nicht verwendest.
Ausserdem kannst Du, wenn du mit Event arbeitest, direkt darüber auf die auslösenden Felder zugreifen, ala:

Code: Alles auswählen

sub Anfang_Gross(oEvent)
    oFeld = oEvent.Source.model
    oForm = oFeld.parent
    stInhalt = oFeld.CurrentValue
    str1 = Ucase(left(stInhalt,1))
    str2 = mid(stInhalt,2,len(stInhalt) - 1)
    stInhalt = str1 + str2
    oFeld.BoundField.updateString(stInhalt)   'geänderten Inhalt in das Feld zurückschreiben
    if oForm.isnew then oform.insertrow else oform.updaterow
end sub
Gruß R

Re: Kleine Wünsche - viel Aufwand ?

Verfasst: Sa 15. Jun 2013, 14:31
von gogo
oder noch schlanker so ?

Code: Alles auswählen

sub Anfang_Gross(oEvent)
  with oEvent.Source.model
    .BoundField.updateString(ucase(left(.CurrentValue,1)) & right(.CurrentValue,len(.CurrentValue)-1))
     if .Parent.isnew then .parent.insertrow else .parent.updaterow
  end with
end sub
Allerdings ist das Makro ja nicht unbedingt Dein Problem:
Die Eingaben sollten immer mit einem Anfangs-Großbuchstaben versehen sein (wg. Suchen, Gruppierung etc.).
Einheitliche Referenzen für Gruppierungen löst Du am besten über ein Listenfeld.
Suchfunktionen können 'immer' zwischen case sensitv oder nicht case sensitiv unterscheiden.

Re: Kleine Wünsche - viel Aufwand ?

Verfasst: Di 18. Jun 2013, 13:17
von jburchardi
An F3K Total und gogo:
Danke für Eure Hinweise, ich werde beides mal ausprobieren.
Vieles ist eben eine Frage der Übung!
Grüße
Jürgen