Re: [de-users] Base - Makro - Formular - Tabellenkontrollfeld

2012-01-19 Diskussionsfäden Jochen

Hallo Frieder, Robert,

ich habe das Makro zum Laufen gebracht. Knackpunkt war die Reihenfolge 
der Makro-Sequenzen.


sub Probe
 dim oTable1, ofild, oControll
 oTable1 = thisComponent.drawpage.forms(0).getByName(MainForm_Nachname)
 If oTable1.getRowSet.RowCount =0 Then Exit Sub
'Die folgende Reihenfolge der Zeilen muss unbedingt einghalten werden
 oTable1.getRowSet.Last
 oControll = thiscomponent.CurrentController.getControl(oTable1)
 oControll.SetCurrentColumnPosition(1)
 thiscomponent.CurrentController.getControl(oTable1).setFocus
 sNameID = oTable1.getByIndex(1).Text
 oTable1.getRowSet.moveToInsertRow
' Ende der Reihenfolge, die unbedingt eingehalten werden muss
 ofild=oTable1.getByIndex(1)
 ofild.Text= sNameID
 ofild.commit
 oControll.SetCurrentColumnPosition(4)
end sub

Vielen Dank für Eure Hilfe.

Gruß

Jochen

--
Informationen zum Abmelden: E-Mail an users+h...@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



Re: [de-users] Base - Makro - Formular - Tabellenkontrollfeld

2012-01-18 Diskussionsfäden Frieder

Hallo Jochen
Am 17.01.2012 23:15, schrieb Jochen:

Hallo Frieder

Am 16.01.2012 13:40, schrieb Frieder:

oform.getRowSet.moveToInsertRow(false)
'Fokus setzen, damit mann direckt hineinschreiben kann.
thiscomponent.CurrentController.getControl(oform).setFocus
end sub


Vielen Dank für Deinen Code-Vorschlag. Dieser hat mir schon 
weitergeholfen. Allerdings habe ich jetzt noch das Problem, dass ich 
in das Feld, in dem der Fokus gesetzt worden ist, per Makro kein 
Inhalt (z.B. einen Text) schreiben kann. Gibt es dafür eine Lösung?




Ich habe grundsätzlich eine Methode gefunden, mit der das geht.
Allerdings scheint sie nicht 100%ig zu funktionieren.
Ich weiß nicht , ob das ein Bug ist, oder ob ich etwas falsch mache.

Aber hier die Methode:
'Das Tabellenkontrollfeld ansprechen
oform=thiscomponent.drawpage.forms(0).getByName(MainForm_Grid)

oform.getRowSet.moveToInsertRow 'in die neue Zeile gehen
field=oform.getByIndex(1)   '2. Spalte auswählen
field.Text=  'Text setzen
field.commit   'Text in die 
Datenbank übernehmen.


oControll= thiscomponent.CurrentController.getControl(oform)
oControll.SetCurrentColumnPosition(2)  ' Cursor in die 2. Spalte 
setzen
oControll.setFocus' 
Fokus setzen


Gruß Frieder


--
Informationen zum Abmelden: E-Mail an users+h...@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



Re: [de-users] Base - Makro - Formular - Tabellenkontrollfeld

2012-01-18 Diskussionsfäden Robert Großkopf
Hallo Frieder,

 Ich habe grundsätzlich eine Methode gefunden, mit der das geht.
 Allerdings scheint sie nicht 100%ig zu funktionieren.
 Ich weiß nicht , ob das ein Bug ist, oder ob ich etwas falsch mache.
 
 Aber hier die Methode:
 'Das Tabellenkontrollfeld ansprechen
 oform=thiscomponent.drawpage.forms(0).getByName(MainForm_Grid)
 
 oform.getRowSet.moveToInsertRow 'in die neue Zeile gehen
 field=oform.getByIndex(1)   '2. Spalte auswählen

vielleicht
field.updateString(rrr)
oform.updateRow() (geht natürlich nicht in einer neuen Zeile, hier dann
oform.insertRow()

 field.Text=  'Text setzen
 field.commit   'Text in die
 Datenbank übernehmen.
 
 oControll= thiscomponent.CurrentController.getControl(oform)
 oControll.SetCurrentColumnPosition(2)  ' Cursor in die 2. Spalte
 setzen
 oControll.setFocus'
 Fokus setzen
 
 Gruß Frieder

Gruß

Robert


-- 
Informationen zum Abmelden: E-Mail an users+h...@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



Re: [de-users] Base - Makro - Formular - Tabellenkontrollfeld

2012-01-17 Diskussionsfäden Jochen

Hallo Frieder

Am 16.01.2012 13:40, schrieb Frieder:

oform.getRowSet.moveToInsertRow(false)
'Fokus setzen, damit mann direckt hineinschreiben kann.
thiscomponent.CurrentController.getControl(oform).setFocus
end sub


Vielen Dank für Deinen Code-Vorschlag. Dieser hat mir schon 
weitergeholfen. Allerdings habe ich jetzt noch das Problem, dass ich in 
das Feld, in dem der Fokus gesetzt worden ist, per Makro kein Inhalt 
(z.B. einen Text) schreiben kann. Gibt es dafür eine Lösung?


Gruß

Jochen

--
Informationen zum Abmelden: E-Mail an users+h...@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



Re: [de-users] Base - Makro - Formular - Tabellenkontrollfeld

2012-01-16 Diskussionsfäden Frieder

Hallo Jochen

Am 15.01.2012 16:17, schrieb Jochen:

Hallo *,

ich möchte für Base ein Makro erstellen, das in einem 
Tabellenkontrollfeld in einem Formular u.a. folgenden zwei Aufgaben 
durchführen soll:

1) Nummer des letzten Datensatzes einer Tabelle auslesen.
2) Befehl Neuer Datensatz ausführen.



ich bin mir zwar nicht ganz sicher was du genau willst, aber vielleicht 
hilft dir ja das hier:

(muss direckt aus dem Formular ausgeführt werden)

Sub Formular_Manipolation
Dim oform As Object
Dim aData(1) As variant
Dim nAnzahl As Long ,i%

' Nummer des Formulars(0) und Name des Tabellenkontrollfeldes 
(MainForm_Grid)  bitte anpassen !!

oform=thiscomponent.drawpage.forms(0).getByName(MainForm_Grid)

'anzahl der einträge
nAnzahl = oform.getRowSet.RowCount
MsgBox Das Formular hat   nAnzahl   Datensätze.
'gehe zu letzten Reihe mit einträgen
oform.getRowSet.Last
'hole den inhalt des letzten eintrags in ein Array(nur Datum und Text)
Redim aData( oform.Count -1)
  for i=0 to oform.Count -1
If oform.getByIndex(i).DataFieldProperty = Date Then
 aData(i) = oform.getByIndex(i).Date
else
  aData(i)= oform.getByIndex(i).Text
end if
MsgBox Letzter Datensatz Spalte  i+1   Lautet:   Chr(10)  
aData(i)

  next

'Neuer eintrag(gehe zu letzten Reihe)
oform.getRowSet.moveToInsertRow(false)

end sub

Gruß Frieder

--
Informationen zum Abmelden: E-Mail an users+h...@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



Re: [de-users] Base - Makro - Formular - Tabellenkontrollfeld

2012-01-16 Diskussionsfäden Frieder

Hallo Jochen
Am 15.01.2012 16:17, schrieb Jochen:


ich möchte für Base ein Makro erstellen, das in einem 
Tabellenkontrollfeld in einem Formular u.a. folgenden zwei Aufgaben 
durchführen soll:

1) Nummer des letzten Datensatzes einer Tabelle auslesen.
2) Befehl Neuer Datensatz ausführen.


Habe das Makro noch erweitert, damit der Fokus danach auch auf dem 
Tabellenkontrollfeld ist,

und du somit direkt hineinschreiben kannst.

Hier der Code:
(muss direkt aus dem Formular ausgeführt werden)

Sub Formular_Manipolation
Dim oform As Object
Dim aData(1) As variant
Dim nAnzahl As Long ,i%

' Nummer des Formulars(0) und Name des Tabellenkontrollfeldes 
(MainForm_Grid)  bitte anpassen !!

oform=thiscomponent.drawpage.forms(0).getByName(MainForm_Grid)
'anzahl der einträge
nAnzahl = oform.getRowSet.RowCount
MsgBox Das Formular hat   nAnzahl   Datensätze.
'gehe zu letzten Reihe mit einträgen
oform.getRowSet.Last
'hole den inhalt des letzten eintrags in ein Array(nur Datum und Text)
Redim aData( oform.Count -1)
  for i=0 to oform.Count -1
If oform.getByIndex(i).DataFieldProperty = Date Then
 aData(i) = oform.getByIndex(i).Date
else
  aData(i)= oform.getByIndex(i).Text
end if
MsgBox Letzter Datensatz Spalte  i+1   Lautet:   Chr(10)  
aData(i)

  next

'Neuer Eintrag(gehe zu letzten Reihe)
oform.getRowSet.moveToInsertRow(false)
'Fokus setzen, damit mann direckt hineinschreiben kann.
thiscomponent.CurrentController.getControl(oform).setFocus
end sub

Gruß Frieder

--
Informationen zum Abmelden: E-Mail an users+h...@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



[de-users] Base - Makro - Formular - Tabellenkontrollfeld

2012-01-15 Diskussionsfäden Jochen

Hallo *,

ich möchte für Base ein Makro erstellen, das in einem 
Tabellenkontrollfeld in einem Formular u.a. folgenden zwei Aufgaben 
durchführen soll:

1) Nummer des letzten Datensatzes einer Tabelle auslesen.
2) Befehl Neuer Datensatz ausführen.

Ich finde nicht die dazu nötigen Befehle bzw. Methoden. Kann jemand 
diese hier posten?


LO: LibreOffice 3.4.4 OOO340m1 (Build:402)
OS: Windows 7 Prof 64 Bit

Gruß

Jochen

--
Informationen zum Abmelden: E-Mail an users+h...@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