Autor Thema: User soll Feld selbst in Maske hinzufügen können....  (Gelesen 8008 mal)

Offline Kaljamam

  • Aktives Mitglied
  • ***
  • Beiträge: 234
  • Geschlecht: Männlich
Hallo zusammen,

wer könnte mir helfen? Habe folgendes Problem:

Habe eine Maske. In dieser Maske soll der User quasi mit einer Art + Symbol ein neues Feld hinzufügen können. Problem ist nämlich, in der Maske werden eventuell 10 Felder gebraucht, aber das muss nicht sein. So sind auf dem Ausdruck dann 2 Felder benutzt und 8 nicht...sieht blöd aus...

Ich kann leider nur Formelsprache, LotusScript nur bedingt....gibt es mit Formelsprache die Möglichkeit. Für einen Hinweis, wo ich in der Hilfe suchen soll, wäre ich auch schon dankbar. Oder eventuell gibt es bei OpenNTF was Bekanntes?! Brauche nur eine Fährte, die ich aufnehmen kann, momentan fehlt diese leider....

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #1 am: 26.09.13 - 15:34:25 »
Der Anwender kann da selbst gar nichts machen. Das muss bereits der Programmierer berücksichtigen.

Und wenn man keinen Stunt mit DXL-Manipulation und Hoffen auf einer Roundtrip etc. pp. machen möchte, bleiben nur zwei Wege:
Arbeiten mit Hide-whens oder Einzeldokumenten für die Werte, die über eine embedded view eingebunden werden.

Vielleicht findet kennt noch Weg 3 oder 4 oder vielleicht sogar 5, aber schlußendlich geht alles in die oben beschriebene grobe Richtung.

Bernhard

PS: Genauere Empfehlungen könnte man ggf. geben, wenn die Anforderung detaillierter beschrieben wird.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #2 am: 26.09.13 - 15:57:50 »
Das einfachste ist, wie Bernhard schon geschrieben hat, mit Hide-When.

Du definierst in Deiner Maske die maximal mögliche Anzahl von Feldern (z.B. 10). Ein weiteres Feld enthält die Anzahl der gewünschten Felder. Mit dem Plus (z.B. als Hotspot oder Schaltfläche) erhöhst Du diese Anzahl.

Die überflüssigen Felder verbirgst Du in Abhängigkeit von der Anzahl. Das funktioniert eigentlich sehr zuverlässig, ist nur etwas lästig zu bauen.

Offline Bastel123

  • Senior Mitglied
  • ****
  • Beiträge: 355
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #3 am: 26.09.13 - 16:14:08 »
Für den Ausdruck würde ich eine Druckmaske erstellen, in der nur die gefüllten Felder angezeigt und damit ausgedruckt werden werden.

Dann kanst Du in der Eingabemaske immer noch Korrekturen vornehmen und musst da keine Stunts vornehmen wie Feld "anzeigen wenn im Edit-Mode" oder "anzeigen wenn nicht leer aber Read Mode"

Sebastian
Gruß Sebastian
-----------------------------------------------------
Kaum macht man's richtig, schon funktioniert's.

Offline Kaljamam

  • Aktives Mitglied
  • ***
  • Beiträge: 234
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #4 am: 26.09.13 - 16:20:55 »
super, danke für die Tipps...da werde ich mich mal versuchen.... :)

Offline Kaljamam

  • Aktives Mitglied
  • ***
  • Beiträge: 234
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #5 am: 27.09.13 - 14:37:34 »
....hab es versucht, aber leider nur Teilerfolg eingefahren...

Dialogliste mit Auswahl 1, 2, 3 erstellt + Haken rein bei Felder bei Schlüsselwertveränderung aktualisieren, dann Feld 1, Feld 2, Feld 3. Dort in den Eigenschaften Reiter Absatz verbergen wenn "!Dialogliste ="1" bei Feld 1 und bei Feld 2 und Feld 3 analog weitere Werte. Und siehe da, tatsächlich erscheint Feld 1 nur, wenn ich in der Dialogliste 1 auswähle. Soweit so schlecht......denn, hier habe ich nur entweder oder....d.h. wähle ich 1 aus, kommt auch nur Feld 1, wähle ich 2 aus, dann erscheint eben nur Feld 2....GrundPROBLEM: Feld 1 verschwindet, wenn ich später 2 in der Dialogliste wähle...soll ja aber bestehen bleiben, denn ich möchte ja dem User die Möglichkeit geben, beliebig viele Felder zu ergänzen(bis 10 max)

Gerne hätte ich die Lösung von Peter Klett umgesetzt, aber leider komm ich da nicht ganz rein...halt leider blutiger Anfänger ::)
ich erstelle 10 Felder in meiner Maske, also Feld 1, Feld 2 etc., klar die Felder müssen ja da sein, damit bei Bedarf über eine entsprechende Auswahl der User diese sichtbar werden und befüllt werden können....sie werden aber erst sichtbar, wenn User sagt, ich will 3 Felder, 7 bleiben dann verborgen...

"ein weiteres Feld enthält die Anzahl der gewünschten Felder", also zum Beispiel User gibt in das gewünschte Feld erst einmal 2 Felder ein, dann erscheinen 2, wenn er will kann er dann über die Schaltfläche + ein weiteres einsetzen? Komm ich leider nicht mit....
über weitere Hilfestellung und Tipps wäre ich sehr froh...

Details zum Ziel: Besprechungsprotokoll - > User öffnet Maske -> dort erscheint TOP1 als erst eingestellter Standardwert -> User füllt TOP 1 aus -> dann will er aber noch TOP 2 -> nun kann er auf + drücken und TOP 2 wird sichtbar. Kann ncoh weitere 8 Mal auf + drücken, also weitere 8 Besprechungs TOPS dazufügen, dann ENDE.

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #6 am: 27.09.13 - 15:25:00 »
Verbergeformel ist falsch.
Versuch mal:
Dialogliste < "1"
Dialogliste < "2"
...
Dialogliste < "10"


oder mach das:

Erstelle ein Feld "Anzahl" (Text, berechnet beim Anlegen, Wert "1", immer verborgen)
Verbergeformel für Feld "Top1":
Code
Anzahl < "1"
Verbergeformel für Feld "TopX"
Code
Anzahl < "X"
Erstelle einen Button mit dieser Formel:
Code
@SetField("Anzahl" ; @Text(@ToNumber(Anzahl) + 1));
@Command([RefreshHideFormulas])
Verberge den Button, wenn Anzahl = "x"

Stefan
« Letzte Änderung: 27.09.13 - 15:35:24 von cebolina »
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline Kaljamam

  • Aktives Mitglied
  • ***
  • Beiträge: 234
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #7 am: 27.09.13 - 15:40:34 »
BINGO!!!!Das Wochenende ist gerettet!!!DANKE!

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #8 am: 27.09.13 - 15:43:36 »
Wichtig ist halt auch, dass du verstehst, was du machst  ;)
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline Kaljamam

  • Aktives Mitglied
  • ***
  • Beiträge: 234
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #9 am: 30.09.13 - 09:37:06 »
Hallo Stefan,

der entscheidende Wink mit dem Zaunpfahl war für mich der Operator >, ab da hats geschnaggelt ;D

Habe es nun wie folgt realisiert.

+ Schaltfläche erstellt mit folgendem Code:

varNum := @TextToNumber(Nummer);
@If(Nummer="10";@Prompt([Ok]; "Fehlerhinweis"; "Es können nicht mehr Felder erstellt werden - Max:10 TOPs");"");
v_Zaehler := varNum + 1;

Ausgabe:= @Text(v_Zaehler);

@SetField("Zaehler"; Ausgabe);
@SetField("Nummer"; Ausgabe);
@Command([RefreshHideFormulas])


In der Maske enthalten sind zwei versteckte Felder, Nummer und Zaehler.

Natürlich auch noch eine - Schaltfläche, dass der Anwender ein versehentlich zu viel erstelltes(sichtbar gemachtes) Feld wieder rausnehmen kann. Gleicher Code wie oben, halt mit  -1, statt mit + 1.

Schlussakt:
In der Tabelle Text in Spalte 1 und in Spalte 2 erstelltes Feld mit folgendem Code im Reiter Absatz verbergen, wenn Formel wahr ist: Zaehler < "1" versorgen.

Funktioniert einwandfrei. Anwender geht auf + und schon erscheint ein Zusatzfeld, dass macht der Anwender bis max. 10 TOPs. Drucken funktioniert auch einwandfrei, da er die nur erstellten(sichtbaren) Felder, bzw. Tabellenzeilen anzeigt/druckt.

Danke Allen für die Hilfe. Jetzt hab ich es genau so, wie ich es wollte!

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: User soll Feld selbst in Maske hinzufügen können....
« Antwort #10 am: 30.09.13 - 13:52:25 »
Schön.

Noch ein Gedanke:
Angenommen der User bearbeitet 5 Tops und erfasst fleißig Text. Dann springt er aber von 5 auf 3 Tops zurück.
Werden die in Top4 und Top5 erfassten Texte dann auch wieder gelöscht, oder bleiben die Texte (unsichtbar) erhalten?

Gruß Stefan
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz