Autor Thema: eine ini Datei über Notes füllen  (Gelesen 3170 mal)

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
eine ini Datei über Notes füllen
« am: 19.07.06 - 13:45:16 »
Hallo zusammen,

wir haben für unsere Office Vorlagen eine User.ini Datei, die folgende Daten enthält:

uz= XYP
tel=111
email=abc@def.de   

usw.

Im moment liegt sie noch nicht auf den Homelaufwerken, soll aber.


Nun meine Frage:
Wir würden gerne über eine eMail an alle einen Knopf in der Mail zuschicken, auf die die User draufklicken können und über eine Eingabeaufforderung im Hintergrund die Felder in der User.ini Datei ausfüllen können.

Ist sowas möglich?
Und wenn ja, wie?
Und, könnte man im Zuge der Eingabeaufforderung und Schreiben in die ini - Datei, gleich diese User.ini bei den Usern auf dem Homelaufwerk ablegen?

Bitte um Hife

Danke + Gruß
Selin
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: eine ini Datei über Notes füllen
« Antwort #1 am: 19.07.06 - 13:49:54 »
Das geht ganz einfach. Schau Dir dazu in der DesignerHelp mal unter "LotusScript Language" den Abschnitt "File Handling" an - dort ist alles incl. Beispiele beschrieben.

Bernhard

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: eine ini Datei über Notes füllen
« Antwort #2 am: 19.07.06 - 13:56:46 »
Hallo,

am einfachsten geht es über die Windows-API such mal in der Microsoft Knowledge-Base nach WritePrivateProfileString unter dem Produkt Visual Basic 6.

Rainer
Rainer Zaske

MCSD - C#

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: eine ini Datei über Notes füllen
« Antwort #3 am: 20.07.06 - 11:36:19 »
Hallöchen,

danke für die Antworten.

Habe es wie folgt gelöst:

Die Eingaben lasse ich in einer Notes Maske machen statt über eine Inpubox und über eine Schaltfläche erstelle ich eine ini Datei und fülle sie mit den eingegebenen Werten.

Sub Click(Source As Button)
   Dim var1, var2 As String
   
   
   Open Environ$("HOMEDRIVE") & "\Datei.ini" For Output As #1   
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Set uidoc = ws.CurrentDocument
   

   
   var1= uidoc.FieldGetText("name")
   Print #1, "name= " & var1
   
   var2= uidoc.FieldGetText("abt")
   Print #1, "abteilung= " & var2
         
   Close #1
         
   Call uidoc.Close
End Sub

Danke + Gruß
Selin
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
noch eine Frage
« Antwort #4 am: 20.07.06 - 11:43:31 »
den Aufruf der Maske mache ich über einen Knopf in einer eMail
Kann ich denn auch über einen adneren Knopf z.B. "Ändern" auf das bereits vom User ausgefüllte Dokument zugreifen?
Könnte ich z.B. die DocID beim Speichern der Maske zurück in die Mail schreiben oder so ähnlich?

Habt ihr eine Idee?

Danke + Gruß
Selin
Windows XP
Notes 6.5

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: eine ini Datei über Notes füllen
« Antwort #5 am: 20.07.06 - 13:32:21 »
... das geht alles - schau mal in der Designer-Hilfe bezüglich schreiben und lesen von Dateien.
Um einen einzelenen Schlüssel in der ini-Datei zu ändern wäre allerdings die Win-Api besser geeignet => s.o. GetProfileString...
Grüßle Toni :)

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: eine ini Datei über Notes füllen
« Antwort #6 am: 20.07.06 - 13:37:04 »
Hallöchen,

ich will eigentlich über die Mail auf das bereits erstellte Notes Dokument zugreifen und nicht auf die ini Datei.
Oder ist das der selbe Weg?

Grüsse
Selin
Windows XP
Notes 6.5

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: eine ini Datei über Notes füllen
« Antwort #7 am: 20.07.06 - 14:38:09 »
... vielleicht ist es heute auch zu heiß - aber ich habe dein Anliegen noch nicht ganz verstanden...

1. Du versendest eine Mail mit einem Button
2. Beim Drücken des Buttons wird "Datei.ini" mit bestimmten Informationen im Home-Verzeichnis generiert.
3. Du möchtest mit einem weiteren Button in der Mail auf ein erstelltes Notes-Dokument (???) zugreifen?

Zitat
ich will eigentlich über die Mail auf das bereits erstellte Notes Dokument zugreifen und nicht auf die ini Datei.

Bisher ist lediglich die Mail ein NotesDocument. Die ini-Datei ist eine ganz normale Datei im File-System, aber kein Notes-Dokument - also hier steh ich nun auf dem Schlauch - willst du auf die ini-Datei zugreifen, oder was hast du genau vor? Von welchem Notes-Dokument sprichst du?

Toni
Grüßle Toni :)

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: eine ini Datei über Notes füllen
« Antwort #8 am: 20.07.06 - 15:03:40 »
ok, sorry.

ich versuche es noch mal:

Ich habe in einer Notes Datenbank eine Maske.
In einer Mail habe ich einen Knopf "ini erstellen" und einen "ini bearbeiten"
Der Knopf "ini erstellen" öffnet die eine Maske:
@Command([Compose];"ServerONIK" : "DB.nsf"; "Maskenname")

Der User füllt die Maske aus und über einen Knopf "Abschicken" wird eine ini datei im Homeverzeichnis angelegt und die Werte in dem soeben angelegten Notes Dokument werden in die ini Datei geschrieben.
Hierzu der Code im vorigen Posting.

Nun meine Frage:
Ich möchte, dass der User die Möglichkeit hat über den anderen Knopf in seiner Mail "ini bearbeiten" auf sein bereits angelegtes Dokument in der Datenbank zugreift und ggf. die Daten ändert und wieder in die ini Datei schreibt.

Ist sowas möglich?

Ich hoffe, dass ich jetzt verständlicher mein Problem schildern konnte.
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: eine ini Datei über Notes füllen
« Antwort #9 am: 20.07.06 - 15:07:12 »
Da Du ja sicher im Dokument den Usernamen gespeichert hast, holst Du Dir das Dokument mit NotesView.GetDocumentByKey. Vor dem Speichern löschst Du die INI und baust sie wie in Button 1 neu auf.

Ob der User später allerdings die betreffende Mail noch wiederfindet ...

Bernhard

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: eine ini Datei über Notes füllen
« Antwort #10 am: 20.07.06 - 15:10:36 »
Wird das Dokument mit der die ini-Datei bearbeitet wird, überhaupt gespeichert?

Warum machst du es denn nicht mit einer Dialogbox. Beim Bearbeiten einer bestehenden ini-Datei liest du dir die Werte bei Aufruf der Dialogobx aus. Der User kann sie anpassen und beim Schließen des Dialoges schreibst du die Werte wieder in die ini-Datei.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: eine ini Datei über Notes füllen
« Antwort #11 am: 20.07.06 - 15:16:19 »
im moment wird es zwar nicht gespeichert aber das kann man ja ändern.
das mit der Dialogbox hört sich gut an aber wie kann ich die Werte aus der ini in mein Dokument einlesen?

Danke + Grüsse
Selin
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: eine ini Datei über Notes füllen
« Antwort #12 am: 20.07.06 - 15:20:12 »
Du gehst genau den umgekehrten Weg wie beim Schreiben:

Open Environ$("HOMEDRIVE") & "\Datei.ini" For Input As #1

Das "As #1" ist aber ungeschickt und gefährlich - der Handle könnte ja schon belegt sein. Freefile ist Dein Freund.

Bernhard

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: eine ini Datei über Notes füllen
« Antwort #13 am: 20.07.06 - 15:43:44 »
ok, danke Bernhard.
Werde es mal versuchen.

Grüsse
Selin
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: eine ini Datei über Notes füllen
« Antwort #14 am: 20.07.06 - 16:55:15 »
Fehlermeldung: "Dialogbox kann nicht in diesem Kontext verwendet werden. Es muss ein Dokument ausgewählt werden"

Diese Meldung kommt beim Versuch über eine Schaltfläche in der Mail eine Dialogbox aufzurufen

Sub Click(Source As Button)
   
   Dim WS As New NotesUIWorkspace
   Dim doc As NotesDocument
   
   Set doc = WS.CurrentDocument.Document
   
   Call WS.Dialogbox("Maskenname", True, True, False, False, False, False, "Titel",doc )
   
   
End Sub

Was mache ich falsch???
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: eine ini Datei über Notes füllen
« Antwort #15 am: 20.07.06 - 17:08:47 »
Erstelle ein neues Dokument auf Basis Deiner Dialogbox-Maske und verwende dann dieses. Das gerade offene Doc wird ja nicht das sein, das Du für die Dialogbox brauchst, oder?

Bernhard

Driri

  • Gast
Re: eine ini Datei über Notes füllen
« Antwort #16 am: 20.07.06 - 17:09:42 »
Wieso willst Du denn aus einem Dokument heraus das gleiche Dokument noch einmal in einer Dialogbox öffnen ? Zumal Du dann den Parameter "doc" auch einfach weglassen kannst.

Hast Du schonmal im Debugger geprüft, ob doc überhaupt existiert ?


Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: eine ini Datei über Notes füllen
« Antwort #17 am: 21.07.06 - 08:46:50 »
Das Aufrufen eines neuen Dokumentes in einer Dialogbox kann z.B. so aussehen:


Sub Click(Source As Button)
   
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim docdlg As NotesDocument
   
   Set db = ws.CurrentDatabase

   Set docdlg = New NotesDocument(db)
   docdlg.Form = "Maskenname"

   'Hier können die Felder der Dialogobx gefüllt werden

   If ws.Dialogbox("Maskenname", True, True, False, False, False, False, "Titel",docdlg) Then

       'Hier stehen die Anweisungen, die ausgeführt werden sollen, wenn OK angeklickt wurde
   
   Else

       'Hier stehen die Anweisungen, die ausgeführt werden sollen, wenn Abbrechen angeklickt wurde
   
   End If   
   
   
End Sub


Axel

Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: eine ini Datei über Notes füllen
« Antwort #18 am: 21.07.06 - 11:22:03 »
Hallo Zusammen,

nach einigen Gehversuchen nun hier der Letze, der aber leider auch nicht funktioniert ;-(

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)

   Dim fileNum As Integer
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = ws.CurrentDocument
   
   filePath=Environ$("HOMEDRIVE") & "\Datei.ini"
      fileNumber = Freefile()
      Open filePath For Input As fileNumber
      Do Until Eof (fileNumber)
         uidoc.FieldGetText( "name" )
         Set name=  filePath.name
         uidoc.FieldGetText ("abt")
         Set abt =  filePath.abt
      Loop
   End If
End Sub

Wie kann ich denn die Werte aus der ini auslesen?
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re: eine ini Datei über Notes füllen
« Antwort #19 am: 24.07.06 - 16:38:10 »
Hallo,

habe es wie folgt gelöst.
Kann sein, dass die Lösung nicht ganz sauber ist, aber es funktioniert.

Ich habe noch eine Frage.
ich habe Feldhinweise hinterlegt. Diese werden auch angezeigt, wenn ich die Maske aufrufe nicht aber wenn die Maske über die Dialogbox aufgerufen wird.
Geht es prinzipiell nicht oder kann ich das irgendwie einstellen?

danke+ gruß
Selin

Sub Postopen(Source As Notesuidocument)
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Set uidoc = ws.CurrentDocument
   Dim text As String
   Dim fileNum As Integer
   Dim linecounter As Integer
   
   fileNum = Freefile()
   linecounter = 1   
   Open Environ$("HOMEDRIVE") & "\Datei.ini"  For Input As fileNum
   Do While Not Eof(fileNum)
      
      Line Input #fileNum, text
      
      Select Case linecounter
         
      Case 2:   
         uz = Mid$( text, 4, 4)
         Print name         
         Call source.FieldSetText("name", name)
         
         
      Case 2:
         abt = Mid$( text, 5, 7)
         Print abt
         Call source.FieldSetText("abt", abt)
         
      'usw..   
            End Select   
      
      If linecounter = 12 Then
       linecounter = 1
      Else
      linecounter = linecounter + 1
      End If
      
   Loop
   Close fileNum
      
End Sub
Windows XP
Notes 6.5

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz