Autor Thema: Felder automatisch anlegen  (Gelesen 1923 mal)

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Felder automatisch anlegen
« am: 04.12.03 - 11:12:01 »
Hallo,

ich möchte aus einem View, der nach Abteilungen kategorisiert ist, die Mitarbeiter in eine Tabelle eintragen. D.h. nach der Auswahl der Abteilung sollen alle Mitarbeiter in diese Tabelle geschrieben werden.
Da die Anzahl immer verschieden ist, ist jetzt meine Frage, kann ich es realisieren das benötigte Felder in dieser Tabelle automatisch angelegt werden?

Offline mahonri

  • Aktives Mitglied
  • ***
  • Beiträge: 128
  • Geschlecht: Männlich
  • Schon mal Domino mit Servern gespielt
Re:Felder automatisch anlegen
« Antwort #1 am: 04.12.03 - 11:17:11 »
Warum machst du das nicht mit einem Mehrfachwerte-Feld.
Einem für alle Werte (Verborgen durch das Auslesen gefüllt) und für jede Spalte eins (berechnet zur Anzeige)

Thomas

P-CLP Development 4,5,6
P-CLP Admin 5
CLP Admin 6

Glombi

  • Gast
Re:Felder automatisch anlegen
« Antwort #2 am: 04.12.03 - 11:17:29 »
Was meinst Du mit Tabelle? Handelt es sich um eine Tabelle in einem Notesdokument, welches vorhanden ist/neu erstellt werden soll oder um einen Export nach Excel/Lotus 1-2-3 ???

[Kaffeesatzlesen]
Du willst eine dynamische Tabelle in Notes machen !?
[/Kaffeesatzlesen]

Andreas

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re:Felder automatisch anlegen
« Antwort #3 am: 04.12.03 - 11:25:13 »
Es handelt sich um eine Tabelle in einem anderem Notesdokument.
Im Moment werden die Mitarbeiter einzeln ausgewählt.
Eine dynamische Tabelle wäre genau das Richtige.

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re:Felder automatisch anlegen
« Antwort #4 am: 04.12.03 - 11:29:31 »
Fürchte, das wird nicht gehen.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re:Felder automatisch anlegen
« Antwort #5 am: 04.12.03 - 11:30:24 »
Also ohne die Buttons könntest Du es mit einer embedded view versuchen.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Glombi

  • Gast
Re:Felder automatisch anlegen
« Antwort #6 am: 04.12.03 - 11:36:14 »
Das hatten wir bereits öfter hier im Forum. Es geht nur (wenn es eine reine Notes Anwendung und keine Web Anwendung ist) nur "halbdynamisch".
Du kannst sagen wir mal 50 Zeilen in der Tabelle vorsehen, mit Verbergenformeln aber nur Die anzeigen, deren Felder gefüllt sind.

Andreas

Offline mahonri

  • Aktives Mitglied
  • ***
  • Beiträge: 128
  • Geschlecht: Männlich
  • Schon mal Domino mit Servern gespielt
Re:Felder automatisch anlegen
« Antwort #7 am: 04.12.03 - 11:41:53 »
Wenn mann die Spaltenbreite kennt kann man wie schon beschrieben alle Informationen in ein Feld packen

Die Darstellung läuft dan über zur Anzeige berechnete Felder die Jeweils nur eine Spalte repräsentieren und die Mehrfachwerte zeilenweise dastellen.

Grenzen
     64K
     Spaltenbreite (kann man aber auch durch @Left begrenzen)

Thomas

P-CLP Development 4,5,6
P-CLP Admin 5
CLP Admin 6

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re:Felder automatisch anlegen
« Antwort #8 am: 04.12.03 - 11:51:48 »
Also d.h. ich erweitere meine Tabelle z.B. um 20 Zeilen, muss für jede Zeile Felder vorsehen und dann die über verbergen die nicht gefüllten Felder ausblenden.
Nur wie kann ich mir die Felder füllen lassen? Über DbLookup geht es nicht?

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re:Felder automatisch anlegen
« Antwort #9 am: 04.12.03 - 11:57:41 »
über formula:
field xyz:=....
oder @setfield("feldname";wert)

Über script
via uidocument:
uidoc.fieldsettext("feldname",wert)

via document:
doc.appendItemValue("feldname",wert)
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Glombi

  • Gast
Re:Felder automatisch anlegen
« Antwort #10 am: 04.12.03 - 12:37:28 »
Ich würde die Felder mit einen Index als Suffix versehen, also bspw.

Mitarbeiter_1        Antwort_1
Mitarbeiter_2        Antwort_2
... ... ...
Mitarbeiter_20      Antwort_20

Du markierst die Mitarbeiter in der View und klickst dann auf den Button. Der Button ist in Script programmiert.

Die gewählten Dokumente bekommst Du als Collection. Darüber dann iteriere

dim ... das übliche...
dim dc as NotesDocumentCollection
dim i as integer

set ... das übliche
set dc = db.UnprocessedDocument

... set doc ... irgendwie beschaffen

set dcdoc = dc.GetFirstDocument

for i = 1 to dc.Count
doc.ReplaceItemvalue("Mitarbeiter_" & cstr(i), dcdoc.Name(0) )
next

set dcdoc = dc.GetDocDocument(dcdoc)


Die Verbergenformel für die beiden Felder in Zeile i müssten dann lauten: Verbergen wenn Formel wahr =
Mitarbeiter_i = ""

Andreas

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re:Felder automatisch anlegen
« Antwort #11 am: 04.12.03 - 14:46:30 »
Habe jetzt mal so gemacht. In der Maske mit der Tabelle einen Button mit folgendem Script angelegt.


Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim uidoc As NotesUIDocument
   Dim aktdoc As NotesDocument
   Dim tmp,tmp1 As Variant
   
   Set db = session.CurrentDatabase
   Set view = db.GetView("Mitarbeiter")
   Set uidoc = ws.currentdocument
   Set aktdoc = uidoc.document
   tmp = aktdoc.GetItemValue("t_abt")
   
   Set doc = view.GetFirstDocument
   While Not(doc Is Nothing)
      tmp1=doc.GetItemValue("abteilung")
      If (tmp(0) = tmp1(0))  Then   
         aktdoc.t1=doc.n_name(0) + " " + doc.v_name(0)
      End If
      Set doc = view.GetNextDocument(doc)
   Wend

aktdoc.t1 ist die erste Tabellenzeile.Die Felder in der Tabelle gehen bis t20.
Muss ich jetzt jedes feld angeben, oder kann ich dies automatisieren, das er wenn Feld t1 gefüllt ist ins Feld t2 springt usw?

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re:Felder automatisch anlegen
« Antwort #12 am: 04.12.03 - 14:51:52 »
kannst Du automatisieren:
...
dim feldname as string
for i=1 to....
feldname="hallo_"&str(i)
call doc.replaceitemvalue(feldname,wert)
...
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Glombi

  • Gast
Re:Felder automatisch anlegen
« Antwort #13 am: 04.12.03 - 15:01:33 »
Ich hatte es bereits in meinem Codefragment so:

doc.ReplaceItemvalue("t_" & cstr(i), doc.n_name(0) + " " + doc.v_name(0)
)

Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim uidoc As NotesUIDocument
   Dim aktdoc As NotesDocument
   Dim tmp,tmp1 As Variant
dim i as integer
   
   Set db = session.CurrentDatabase
   Set view = db.GetView("Mitarbeiter")
   Set uidoc = ws.currentdocument
   Set aktdoc = uidoc.document
   tmp = aktdoc.GetItemValue("t_abt")
   
   Set doc = view.GetFirstDocument
i = 1
   While Not(doc Is Nothing)
      tmp1=doc.GetItemValue("abteilung")
      If (tmp(0) = tmp1(0))  Then  
         call aktdoc.ReplaceItemValue("t" &cstr(i),doc.n_name(0) + " " + doc.v_name(0))
      End If
      Set doc = view.GetNextDocument(doc)
i = i + 1
   Wend



Andreas

Offline chock

  • Senior Mitglied
  • ****
  • Beiträge: 337
  • Geschlecht: Männlich
Re:Felder automatisch anlegen
« Antwort #14 am: 04.12.03 - 15:31:02 »
Danke für die schnelle Hilfe

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz