Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von F3K Total » Sa, 04.02.2017 17:15

Hallo,
die Frage hat mit dem ursprüglichen Thema nix mehr zu tun. Erstelle bitte einen neuen Beitrag.
Ouagadougou hat geschrieben: Sa, 04.02.2017 16:49Es lag wohl an dem fehlenden "dfw".
Nein lag es nicht, es hätte auch beim dfn bleiben können. Was mir zeigt, dass du es nicht verstanden hast.
Deine Salamitaktik, dir so langsam aber sicher Makros zusammenzuschnorren, statt selbst zu versuchen die Aufgabe zu lösen, gefällt, zumindest mir, nicht. Es gibt zig Beispiele hier im Forum, und den Hinweis auf Dannenhöfer hast du auch bekommen.
Ich bin also raus.
R

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von Ouagadougou » Sa, 04.02.2017 16:49

Vielen vielen Dank. Es hat funktioniert!!! Es lag wohl an dem fehlenden "dfw".

Dann habe ich noch eine Frage: Was muss man für einen Befehl eingeben, wenn man möchte, dass die Felder auf jeden Fall ausgefüllt sein müssen und im richtigen Format. Bei Textfeldern nur Text und anders.
Und wo muss dieser Befehl genau hingeschrieben werden?

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von F3K Total » Sa, 04.02.2017 16:31

So, zum Beispiel

Code: Alles auswählen

Sub Setze_Datum()
    With ThisComponent.CurrentController.getActiveSheet
	    dpf = .Drawpage.Forms
	    dfw = dpf.getByName("Formular").GetByName("Währungsfeld 1").Value
	    .getCellRangeByName("A1").Value = dfw
    End With
End Sub
R

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von Ouagadougou » Sa, 04.02.2017 16:24

Wie hat der Code demnach genau auszusehen?
Bei mir funktioniert es nicht.

Wie soll "CDateFromIso(dfn)" passend ersetzt werden?

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von Stephan » Sa, 04.02.2017 16:14

Mir fehlt jetzt eig nur noch der Befehl ein Währungsfeld (Steuerungselement) so auszulesen, dass der Inhalt auch in einer Zelle geschrieben wird.
das erfordert genau den gleichen Code, wie beim Date-Feld, einzig heißt die Eigenschaft nicht .date sondern .value.

man muss sowas auch nicht wissen, man kann es nachschlagen, z.B. hier:
http://www.openoffice.org/api/docs/comm ... html#Value


Gruß
Stephan

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von Ouagadougou » Sa, 04.02.2017 15:21

Hallo,
ich habe nun ein bisschen ausprobiert und acu ein wenig hinbekommen ;)

Mir fehlt jetzt eig nur noch der Befehl ein Währungsfeld (Steuerungselement) so auszulesen, dass der Inhalt auch in einer Zelle geschrieben wird.

Equivalent zu folgendem Beispiel mit dem Datumsfeld.

Code: Alles auswählen

Sub Setze_Datum()
With ThisComponent.CurrentController.getActiveSheet
	dpf = .Drawpage.Forms
	dfn = dpf.getByName("Formular").GetByName("datum1").date
	.getCellRangeByName("A1").FormulaLocal = CDateFromIso(dfn)
End With
End Sub

Ich brauche allerdings etwas einen Befehl zum Währungsfeld. Meine ganzen Versuche sind kläglich gescheitert.

Über ein paar Vorschläge würde ich mich sehr freuen!!

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von mikeleb » Do, 02.02.2017 18:19

Hallo,
naja so einfach mit 'drauf kommen ist da auch nichts. Es erfordert schon einiges an Programmierarbeit. Die Quellen liefern dir dabei schon die notwendigen Bausteine.
- Steuerelemente auslesen
- Daten in Zellen schreiben (vorher den richtigen Bereich dafür finden)
- Steuerelemente (Listbox) mit Daten füllen
- ...
Was hast du davon schon (ansatzweise) realisiert?

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von Ouagadougou » Do, 02.02.2017 17:59

Juhuu, jetzt habe ich schonmal ein Button richtig belegt. Beim Klicken auf Beenden wird das Dokument nun abgespeichert und anschließend komplett geschlossen. Danke mikeleb!!!!!!

Auf die anderen komme ich aber leider nicht :(

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von mikeleb » Do, 02.02.2017 17:44

Hallo,
anbei mal ein erster Schritt (praktisch ein zusammenkopierter Code aus der bereits genannte Quelle http://www.dannenhoefer.de/faqstarbasic/index.html)
Dateianhänge
Beispiel_Ouagadougou.ods
(22.36 KiB) 270-mal heruntergeladen

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von Ouagadougou » Do, 02.02.2017 16:07

Hallo

Danke für deine Recherche, jedoch schaffe ich nicht diese Code-Schnipsel in mein Dokument zu integrieren, sodass es funktioniert.
Kann mir jemand weiterhelfen? (Eine Beispieldatei wurde ein paar Beiträge vorher hochgeladen)

Vielen Dank!

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von Stephan » Mi, 01.02.2017 20:08

habe allerdings keine Möglichkeit gesehen die Befehle des Dialogs anzusehen....
mmh, ja ... mir war garnicht bewusst das in dieser Extension der Dialog zur Laufzeit erzeugt wird. Da das geschieht steht das natürlich alles lediglich im Basic-Code und ist nicht über den Dialog zugewiesen.

Im Konkreten werden die Button über das Makro Sub DlgTool_Button (siehe LibDataForm) erzeugt und mit Funktion belegt, im Einzelnen sind das die Aufrufe (siehe BasicModul "DataForm") :

Code: Alles auswählen

 DlgTool_Button(oDlg, -5, 17, btnWidth, 14, "btnNuovo", strLocale(CMDNEW))
DlgTool_Button(oDlg, -5, 35, btnWidth, 14, "btnElimina", strLocale(CMDDELETE))
DlgTool_Button(oDlg, -5, 54, btnWidth, 14, "btnRipristina", strLocale(CMDRESTORE))
DlgTool_Button(oDlg, -5, 75, btnWidth, 14, "btnPrec", strLocale(CMDFINDPREV))
DlgTool_Button(oDlg, -5, 93, btnWidth, 14, "btnSucc", strLocale(CMDFINDNEXT))
DlgTool_Button(oDlg, -5, 110, btnWidth, 14, "btnCriteri", strLocale(CMDCRITERIA))
DlgTool_Button(oDlg, -5, 133, btnWidth, 14, "btnChiudi", strLocale(CMDCLOSE))
die entsprechenden Ereignis-Makros zu diesen Buttons sind:

Code: Alles auswählen

Sub btnNuovo_actionPerformed(oEvent)
	if salvaRecord = True Then ' se non ci sono errori nel salvataggio
		With oDlg.getControl("scrlBarra")
			.Value = .Maximum
		End With
		nuovoRecord()
	End If
End Sub

Sub btnElimina_actionPerformed(oEvent)
	Dim oRighe as Object
	Dim i as Integer
	Dim oAddr

	Select Case modalita
	Case CRITERI ' azzera i criteri
	
		For i = 1 to nCols
			oDlg.getControl("txtCampo" & i).Text = ""
		Next
		
	Case MODULO	' rimuove il record corrente

		if msgbox(strLocale(MSGDELRECORD), 1 + 48) = 2 Then
			' l'utente ha premuto "Annulla"
			Exit Sub
		End If

		oAddr = oRange.getRangeAddress
		oAddr.StartRow = oAddr.StartRow + indiceRecord
		oAddr.EndRow = oAddr.StartRow
		oFoglio.removeRange(oAddr, com.sun.star.sheet.CellDeleteMode.UP) 
		
		' aggiorno nRows (le dimensioni di oRange vengono
		' aggiornate automaticamente)
		nRows = oRange.getRows.Count
		
		' decremento limite massimo della barra
		With oDlg.getControl("scrlBarra")
			.Maximum = .Maximum - 1
		End With
	
		if indiceRecord = nRows Then
			' è stato eliminato l'ultimo record
			With oDlg.getControl("scrlBarra")
				.Value = .Maximum
			End With
			nuovoRecord()
		Else
			scorriRecord(indiceRecord)
		End If
		
	End Select
End Sub

Sub btnRipristina_actionPerformed(oEvent)
	Dim i as Integer
	
	Select Case modalita
	Case CRITERI ' ripristina criteri
	
		For i = 1 to nCols
			oDlg.getControl("txtCampo" & i).Text = arrCriteri(i)
		Next
	
	Case MODULO ' ripristina valori record
		
		if indiceRecord = nRows Then
			' si tratta di un nuovo record ancora non salvato
			For i = 1 to nCols
				' azzera tutti i campi
				oDlg.getControl("txtCampo" & i).Text = ""
			Next
		Else
			' rilegge il record corrente dal foglio
			scorriRecord(indiceRecord)
		End If
		
		oDlg.getControl("btnRipristina").Enable = False
		
	End Select
	
	selezionaTxt(oDlg.getControl("txtCampo1"))
End Sub

Sub btnPrec_actionPerformed(oEvent)
	trovaPrecSucc(PREC)
End Sub

Sub btnSucc_actionPerformed(oEvent)
	trovaPrecSucc(SUCC)
End Sub

Sub btnCriteri_actionPerformed(oEvent)
	cambiaModalita
	selezionaTxt(oDlg.getControl("txtCampo1"))
End Sub


Gruß
Stephan

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von F3K Total » Mi, 01.02.2017 18:34

Upps,
da war noch ein Relikt, dein Makro-Eintrag auf dem Button "Neuer Eintrag", habe ich in der Version anbei gelöscht.
Jetzt funktioniert es.
Gruß R
Dateianhänge
Ouagadougou.odb
(13.27 KiB) 183-mal heruntergeladen

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von Ouagadougou » Mi, 01.02.2017 18:33

Hallo R,
Das man das auch anders umsetzen kann ist mir bewusst, ich möchte jedoch alles zusammen in Calc machen. In Excel geht das ja auch. Ich brauch ja "nur" die Befehle, die ja auch überall hinterliegen aber nicht zugänglich sind...

Re: Befehle/ Makros für Steuerungelemente, wie Speichern, Löschen

von F3K Total » Mi, 01.02.2017 18:08

Hallo,
vielleicht ist eine kleine BASE-Datenbankdatei da besser, anbei eine kleine Version, die alles kann, was du willst, bis auf das Beenden.
Alles ohne ein Makro.
Öffne das Formular per Doppelklick und los gehts.
Gruß R
Dateianhänge
Ouagadougou.odb
(13.47 KiB) 216-mal heruntergeladen

Nach oben