Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


On 15.11.2014 10:21, Robert Großkopf wrote:

Hallo Wolfgang,

Hallo Robert,

vielen Dank für Deine Bemühungen.

Du liest hier das aus, was in den Feldern geschrieben steht. Die
Eigenschaft "Text" gibt es nicht bei allen Kontrollfeldern. Nimm doch
direkt CurrentValue. Dann hast Du den Wert und auch wirklich einen
Zahlenwert. INTEGER aus dem Datenbankbereich müsste LONG im Makro sein,
wenn Du in entsprechend hohe Zahlenbereiche kommst.

Das hat mit CurrentValue funktioniert jeweils die einzelnen IDs aus den dantenbankgebundenen 
Feldern auszulesen.

Das größere Problem war es, das Datum aus dem nicht an ein Datenbankfeld gebundenen Datumsfeld im 
Formular zu lesed, das hat letztlich nur mit

DIM sSqlDate AS STRING

DIM unoDatum AS NEW com.sun.star.util.Date 

.
.
.

     oField = oSubForm.getByName("zuordnungsdatum")
     unoDatum = oField.getCurrentValue()

Und dann ist es auch einfach das Datum in einen String umzuwandeln :-)

     sSqlDate = unoDatum.Year & "-" & unoDatum.Month & "-" & unoDatum.Day


Das hat mich echt Schweiß gekostet zumal ich vorher alle Variationen von Datentypen für das 
Datumsfeld (STRING, DATE, INTEGER, ..) in Kombination für alle Varianten von Methodenaufrufen 
(Current Vaule mit und ohne get oder () ) die mir eingefallen sind getestet habe ..

Liebe Grüße ..
Wolfgang


Wo finde ich eine Liste der Methoden mit denen man die ausgelesenen
Feldinhalte in Variablen speichern kann?
Hast Du Dir das Base-Handbuch herunter geladen? Da wirst Du auch mit
Beispielen versorgt:
http://de.libreoffice.org/hilfe/dokumentation/
Die jeweils aktuell in Bearbeitung befindliche Version kannst Du hier
nachsehen:
http://robert.familiegrosskopf.de/lo_hb_dev/

Wie speichere ich das Datum in eine Variable, die dann hinterher das
Datum über ein SQL-Statement in die Datenbank speist?
Das Datum entstammt im konkreten Fall einem reinen Eingabefeld, stammt
also nicht aus irgendeiner Datenbanktabelle.
Da steht dann auch etwas über die Umwandlung von Datumswerten. Für die
Weitergabe an die Datenbank musst Du so einen Datumswert so zusammen
fügen: 2014-11-15.

Vielleicht hilft Dir diese Funktion:

FUNCTION Date_2_SQLDate(d AS DATE) AS STRING
      DIM stMonth AS STRING
      DIM stDay AS STRING
      IF Month(d) < 10 THEN
              stMonth = "0" + Trim(Str(Month(d)))
      ELSE
              stMonth = Trim(Str(Month(d)))
      END IF
      IF Day(d) < 10 THEN
              stDay = "0" + Trim(Str(Day(d)))
      ELSE
              stDay = Trim(Str(Day(d)))
      END IF
      Date_2_SQLDate = Trim(Str(Year(d))) +"-"+ stMonth +"-"+ stDay
END FUNCTION

Gruß

Robert



-- 
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.