Eingabefeld vor Eingabe sperren

Das Textverarbeitungsprogramm

Moderator: Moderatoren

manu-b
Beiträge: 3
Registriert: Fr, 28.01.2005 12:55

Eingabefeld vor Eingabe sperren

Beitrag von manu-b »

hi liebe OOo community,

ich habe folgendes problem...
ich habe über einfügen -> feldbefehl -> andere -> funktionen ein paar eingabefelder in meinem dokument erstellt...diesen weiße ich über lotus notes werte zu, das funtzt auch prima...nur soll der user den inhalt der felder nicht mehr bearbeiten können...

gibt es beim erstellen oder im nachhinein irgendeine funktion das der user nichts mehr an dem inhalt ändern kann (das script muss aber noch ändern können)...

danke

edit: das script sieht folgendermaßen aus:

Code: Alles auswählen

...
		Set objServiceManager = CreateObject("com.sun.star.ServiceManager")
		Set objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop") 
		Set objDocument = objDesktop.CurrentComponent()	
		'Textobjekt erstellen
		Set objText= objDocument.getText()
		
		Dim FeldForm List As String
		'Name der Eingabefelder
		FeldForm(0)="Bezeichnung"
		FeldForm(1)="Typ"
		FeldForm(2)="Kategorie"
		
		Forall f In FeldForm
			Set Felder = objDocument.getTextFields()
			Set Feldaufzaehlg = Felder.createEnumeration()
			
			Do While Feldaufzaehlg.hasMoreElements()
				Set Feld = Feldaufzaehlg.nextElement()
				service =  "com.sun.star.text.TextField.Input"
				
				If Feld.supportsService(service) And feld.hint=f Then
					wert=uidoc.FieldGetText(f)
					Feld.Content=wert

				End If
				
			Loop		
			
		End Forall		
		Call Felder.Refresh()
...
Zuletzt geändert von manu-b am Fr, 28.01.2005 15:42, insgesamt 1-mal geändert.
...am 26.1.2005 wurde mir nicht nur ein board genommen, sondern auch ein paar freunde...
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

ich habe über einfügen -> feldbefehl -> andere -> funktionen ein paar eingabefelder in meinem dokument erstellt...diesen weiße ich über lotus notes werte zu, das funtzt auch prima...nur soll der user den inhalt der felder nicht mehr bearbeiten können...
Ich weiß nicht ob der Inhalt überhaupt nicht manuell zu ändern sein soll, oder nur nicht wenn er bereits schon einmal per Makro geändert wurde

überhaupt nicht manuell ändern:
verwende eine Textmarke statt des Feldes

sowohl als auch:
verwende statt des Eingabefeldes ein Makrofeld und starte bei manueller Auslösung des Feldes ein Makro das prüft ob der derzeitige Feldinhalt per Makro erzeugt/ oder manuell erzeugt ist. Wenn per Makro, dann verweigere manuelle Eingabe, also tue nichts (oder Hinweisfenster), sonst blende Eingabefenster ein.



Gruß
Stephan
manu-b
Beiträge: 3
Registriert: Fr, 28.01.2005 12:55

Beitrag von manu-b »

nachtrag:

mit textmarken hab ich das auch schon, das problem ist, dass wenn der user das dok zum 2. mal auf ruft der text dahinter geschrieben wird...das problem hab ich bei dem feld nicht...

ich sitze zur zeit noch dran und versuch mich grade dran den wert variablen zu zuweißen...jedoch hab ich da 0 erfolg...setze ich eine variable mit meinem wert, zeigt er mir 0 an...lasse ich die gesetzte variable anzeigen...auch 0...bin da noch nicht hinter gestiegen...verwende OOo erst seit montag...

edit:
Bild

Bild

da bin ich grad dran...warum das so ist...
...am 26.1.2005 wurde mir nicht nur ein board genommen, sondern auch ein paar freunde...
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

mit textmarken hab ich das auch schon, das problem ist, dass wenn der user das dok zum 2. mal auf ruft der text dahinter geschrieben wird
das liegt doch aber ausschließlich an Deinem Makro

(a)
verwende den Vorschlag mit dem Makrofeld

(b)
bleibe bei der Textmarke und ändere Dein Makro
zum Beispiel:
die Textmarke heißt "meine"
das Makro muß
1. die Marke suchen
2. prüfen ob ein bestimmtes Zeichen im Namen der Textmarke vorkommt
2a. wenn Zeichen nicht vorkommt, den Text eintragen und den Namen der Textmarke ändern in "meine" & <Trennzeichen> & <Länge des gerade eingetragenen Textes> ändern
2.b wenn Zeichen vorkommt, den reinen Namen der Textmarke abtrennen und die Zahl abtrennen, die bestimmt wie lang der Eintrag ist. Die Anzahl der Zeichen ab Textmarke löschen die der (alten) Eintragslänge entspricht und Neueintrag vornehmen und Namen der Textmarke anpassen in "meine" & <Trennzeichen> & <Länge des gerade eingetragenen Textes>


Gruß
Stephan
Antworten