Wert mit Makro in Formular schreiben

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

Moderator: Moderatoren

vueloman
*
Beiträge: 15
Registriert: Sa, 10.11.2007 09:14

Wert mit Makro in Formular schreiben

Beitrag von vueloman »

Hallo zusammen!

Ich möchte in einem Base Formular in ein Datumsfeld mit einem Makro ein Datum einfügen. Den Code den ich verwende ist folgender.

Code: Alles auswählen

Sub setFechaImporte
   Dim oForm, oDate
   oForm = ThisComponent.DrawPage.Forms.getByName("FormZahlen")
   oDate = oForm.getByName("datDatum").Date
   If oDate=0 Then
       oForm.getByName("datDatum").Date = CDateToIso(date())
          Else
        MsgBox (oDate )
    end if
End Sub
Im Formular wird das Datum angezeigt aber sobald ich zum nächsten Register wechsele gibt es einen Fehler:
Für das Feld 'datDatum' ist eine Eingabe erforderlich geben sie einen Wert ein.

Das Feld hat ein Datum wird aber nicht erkannt, was mache Ich falsch.
Auch in der View ansicht pasiert das gleiche.

Saludos
Jürgen
vueloman
*
Beiträge: 15
Registriert: Sa, 10.11.2007 09:14

Re: Wert mit Makro in Formular schreiben

Beitrag von vueloman »

Nachdem im Forum keiner die Antwort weiss gebe ich sie selber.

Der richtige Hinweis ist "Boundfield" muss man verwenden um den Datensatz eines Formular Feldes zu verändern.
Komplet sieht es dann etwa so aus.

Code: Alles auswählen

SUB Datum 
  Dim oForm, oDate, oControl 

  'Datum in Formular schreiben 
  oForm = ThisComponent.DrawPage.Forms.getByName("FormPagoCuota") 'Formular 
  oControl = oForm.getByName("datCuota_Pagos_Fecha") 'Feld 
  
  oDate = oControl.Boundfield.getDate() 
  oDate.day=day(date()) 
  oDate.month=month(date()) 
  oDate.year=year(date()) 
  
  oControl.BoundField.updateDate(oDate) 
END SUB 
Was etwas komisch ist das ich keine Möglichkeit gefunden habe um das Datum auf einmal zu schreiben.
Ooo Basic ist im vergleich mit MS Basic oder PHP recht umständlich vor allem habe ich bis heute keine gute Beispieldatei gefunden wenn ich nicht weiter komme. Selbst im Buch Makros für Oo wird das nicht beschrieben.
Wäre gerne bereit meine Beispiele zur Verfügung zu stellen ich habe einige.
Antworten