Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: lainin am 21.03.04 - 00:00:11

Titel: Importieren durch "Button"
Beitrag von: lainin am 21.03.04 - 00:00:11
Hallo....

Wie ist es möglich, durch einen Button die Funktion "Importieren" auszuführen?!?

Gruß Lainen
Titel: Re:Importieren durch "Button"
Beitrag von: koehlerbv am 21.03.04 - 10:43:47
Meinst Du @Command ([FileImport]) ?
Titel: Re:Importieren durch "Button"
Beitrag von: lainin am 21.03.04 - 11:09:41
Genau,das meine ich.
TMC hat eine Anleitung  in der Rubrik "Best Parctise" erstellt, nur die funktioniert nicht so ganz.

Der Button ruft zwar die File-Box auf, nur kannn ich leider keine Dateien mit den entsprechenden Endungen auswählen. Anstatt gif, jpg oder bmp wird mit

%§$&
"!//
"§$(/"
0815

angezeigt.


Zitat:
6. Praxis

Hier ein Beispiel-Script, welches für eine Aktion in einer Maske gedacht ist:

Code:Sub Click(Source As Button)
  Dim uiws As New NotesUIWorkspace
  Dim uidoc As NotesUIDocument    
  Dim session As New NotesSession
  Dim db As NotesDatabase
  Dim doc As NotesDocument
  Dim vFilepath As Variant
  Dim szFilepath As String  
  Dim szEndung As String
 
  Set db = session.CurrentDatabase
  Set uidoc = uiws.CurrentDocument
  Set doc = uidoc.Document
 
  vFilepath = uiws.OpenFileDialog( True, db.Title, "Supported Images|*.cgm;*.jpg;*.bmp;*.gif;*.jpeg", "D:\")
 
 
  If Isempty(vFilepath) Then Exit Sub      ' Script verlassen falls User keine Datei auswählt
 
 
 
  Forall ImageList In vFilepath ' Durch die ausgewählten Dateien loopen
     
      szFilepath = ImageList
     
      'Holt die Dateiendung in den String, dabei mit LowerCase auf Kleinschreibung umgestellt
      szEndung = Lcase$(Right$(szFilepath, 3))
     
      Select Case szEndung
      Case "gif":
        Call uidoc.Import("GIF Image",szFilepath)
      Case "jpg":
        Call uidoc.Import("JPEG Image",szFilepath)
      Case "cgm":
        Call uidoc.Import("CGM Image",szFilepath)      
      Case "peg":
        Call uidoc.Import("JPEG Image",szFilepath)      
      Case "pcx":
        Call uidoc.Import("PCX Image",szFilepath)      
      Case "bmp":
        Call uidoc.Import("BMP Image",szFilepath)            
      End Select
     
  End Forall
 
End Sub
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 21.03.04 - 12:29:47
Als, ich hab mir das nochmal angesehen.

Es klappt genau so wie beschrieben, es werden im Filerequester alle Bildformate angezeigt die im Script so definiert sind.

Was hier nicht geht, ist eine bestimmte Auswahl (z.B. nur bmp anzeigen) und war auch nicht gewollt (siehe Beschreibung in Best Practices).

Getestet gerade nochmal mit R5.0.11 und 6.5.1.

Etwas unschön ist nur, wenn man die Dateiauswahl aufklappt in R5:
(http://217.160.137.156/user/bp/tmc/_threaduploads/suppimages.gif)

In R6 wird das (vernünftigerweise) gar nicht mehr angeboten.

Welche Version setzt Du ein lainin?

Ich habe das ganze in einer DB zum testen erstellt, siehe Anhang.

Matthias
Titel: Re:Importieren durch "Button"
Beitrag von: lainin am 21.03.04 - 12:42:23
Genau so sieht das aus.     R5.0.10

Die Auswahl der einzelnen Dateitypen ist nicht eindeutig.
Und wenn ich die Auswahl auf "Supported Images" stehen lasse und ein bild einfügen möchte, kommt die Fehlermeldung:

"Document command is not available"

 ???

Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 21.03.04 - 12:52:15
Kommt die Fehlermeldung auch in der von mir angehängten Datenbank?

Das "Document Command is not available" kann auch hier im Beispiel kommen, wenn Du versuchst ein Bild in ein normales Textfeld einzufügen. Das muss ein Richtextfeld sein.

Matthias
Titel: Re:Importieren durch "Button"
Beitrag von: lainin am 21.03.04 - 13:00:13
nein... da ist alles klar!

Ich hab danach auch nochmal deinen Skipt-Text in meine db kopiert.
Die Fehlermeldung bleibt bestehen!

Lainin
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 21.03.04 - 13:01:37
Hatte oben im Beitrag noch was ergänzt. Wo fügst Du das Bild ein? Das muss ein Richtextfeld sein, in normale Textfelder kannst Du kein Bild einfügen.

Matthias
Titel: Re:Importieren durch "Button"
Beitrag von: lainin am 21.03.04 - 13:06:47
Es ist leider ein Rich-Textfeld!!!  :(

Lainin
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 21.03.04 - 13:09:17
Dann poste doch mal Deine Datenbank (neue Kopie erstellen, ohne Dokumente), dann schau ich mir das mal an.
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 21.03.04 - 13:26:06
Und wo tritt der Fehler auf?

- Ich klicke auf "Neues Hauptthema"
- Cursor setze ich in das Inhalts-Feld
- Dann Button "Bild importieren"

Es wird sauber ein Bild importiert.

Titel: Re:Importieren durch "Button"
Beitrag von: lainin am 21.03.04 - 13:31:25
O M F G


das ist ja schon PEINLICH!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  :o

Man sollte schon den Cursor ins Textfeld setzen und nicht in der Titel-Leiste lassen!!!!!  *!"$"!§$"§$!"§!!§!*

Sorry für diesen SAUBLÖDEN Fehler!!!




PS: Könnte man bitte dieses Thema hier löschen?!?!?   ;D
Könnt ihr auch stehen lassen... dann haben die Leute hier wenigstens was zu lachen!  :P

TMC.... Vielen Dank für deine Zeit & Hilfe
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 21.03.04 - 13:36:53
Kein Problem, kann jedem mal passieren :)

Damit dies Deinen Anwendern nicht passiert, könntest Du zusätzlich noch abfragen, in welchem Feld sich der Cusror befindet:

http://www.atnotes.de/index.php?board=7;action=display;threadid=13838

Matthias
Titel: Re:Importieren durch "Button"
Beitrag von: Semeaphoros am 21.03.04 - 13:38:05
Nana, nun mal nicht gleich heulend in die Ecke gehen .....

Denke positiv, was glaubst Du, wieviele Leute jetzt erleichtert aufatmen und sagen "Ach ..... das passiert nicht nur mir?"

All denen hast Du jetzt eine perfekte Wohltat serviert .......

Denk mal darüber nach und sei stolz auf Deine Hilfeleistung .....  ;)
Titel: Re:Importieren durch "Button"
Beitrag von: lainin am 21.03.04 - 14:01:33
LOL

so kann man das auch sehen!!!!!   ;D

Ich mach zu das Ding!!!!

Gruß Lainin
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 21.03.04 - 17:05:44
Habe nun noch ein kleines Errorhandling ergänzt und eine Abfrage eingebaut, ob sich Cursor in einem Richtextfeld befindet.

Werde ich gelegentlich noch in Best Practices Artikel aufnehmen.


Code
Sub Click(Source As Button)
   On Error Goto errHandler
   Dim uiws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim vFilepath As Variant
   Dim strFilepath As String
   Dim strEndung As String

   Set db = session.CurrentDatabase
   Set uidoc = uiws.CurrentDocument
   Set doc = uidoc.Document

   'Abfrage ob Cursor in Richtextfeld
   Dim rti As Variant
   Set rti = doc.GetFirstItem(uidoc.CurrentField )
   If ( rti.Type <> RICHTEXT ) Then
      Msgbox "Bitte setzen Sie den Cursor in ein Richtextfeld," & Chr(10) & "um ein Bild einzufügen.",64 , db.title
      Exit Sub
   End If

SkipRTAbfrage:


   vFilepath = uiws.OpenFileDialog( True, db.Title, "Supported Images|*.cgm;*.jpg;*.bmp;*.gif;*.jpeg", "X:\")


   If Isempty(vFilepath) Then Exit Sub      ' Script verlassen falls User keine Datei auswählt

   Forall ImageList In vFilepath ' Durch die augewählten Dateien loopen

      strFilepath = ImageList

       'Hole die Dateiendung in den String, dabei mit LowerCase auf Kleinschreibung umgestellt
      strEndung = Lcase$(Right$(strFilepath, 3))

      Select Case strEndung
      Case "gif":
         Call uidoc.Import("GIF Image",strFilepath)
      Case "jpg":
         Call uidoc.Import("JPEG Image",strFilepath)
      Case "cgm":
         Call uidoc.Import("CGM Image",strFilepath)
      Case "peg":
         Call uidoc.Import("JPEG Image",strFilepath)
      Case "pcx":
         Call uidoc.Import("PCX Image",strFilepath)
      Case "bmp":
         Call uidoc.Import("BMP Image",strFilepath)
      End Select

   End Forall

exitScript:
   Exit Sub

errHandler:
   Select Case Err
   Case 91
      Resume SkipRTAbfrage
   Case Else
      Msgbox "Es ist ein Fehler aufgetreten." & Chr(10)  & Chr(10) _
      & "Fehlermeldung: " & Error$ & Chr(10) _
      & "Fehlernummer: " & Err & Chr(10) _
      & "Codezeile: " & Erl & Chr(10) _
      ,64,"Error"
      Resume exitScript
   End Select

End Sub
Titel: Re:Importieren durch "Button"
Beitrag von: eknori am 21.03.04 - 17:16:15
„Aus Fehlern wird man klug“
mit meinem kleinen Latrinum kann ich das leider nicht ins Lateinische übersetzen ( obwohl ich das eigentlich können müsste) ; aber dafür haben wir ja Jens  ;D

Ulrich
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 21.03.04 - 17:33:28
genau  ;D

Ich für mich habe hier gelernt, nur noch Scripts in Best Practices zu verwenden, wo zumindest ein kleines Errorhandling enthalten ist  ;)

Hoffe ich halte mich auch dran....

Matthias
Titel: Re:Importieren durch "Button"
Beitrag von: eknori am 21.03.04 - 17:37:45
<oT>
hab es zusammengebastelt : QUAE NOCENT, DOCENT ( @Jens: hoffe, ich habe nicht allzu tief ins Klo ggriffen )
</oT>
Titel: Re:Importieren durch "Button"
Beitrag von: Semeaphoros am 21.03.04 - 21:36:23
Ulrich: Note 1 ......  ;D


Ganz wörtlich: was schadet, lehrt
Titel: Re:Importieren durch "Button"
Beitrag von: koehlerbv am 21.03.04 - 22:22:26
Ich glaub',
EXPERTUS METUIT (Erfahrung macht bedenklich)
passt auch. Sagte mir ein "Lateiner" auf die Frage nach dem Sprichwort "Aus Fehlern wird man klug", ein anderer hat's bestätigt.
Für mich jedenfalls:
Alea ejacta est.

Bernhard (Erfahrung in einigen Sprachen - nur nicht Latein ;-(
Titel: Re:Importieren durch "Button"
Beitrag von: Semeaphoros am 21.03.04 - 23:24:35
Nana, "der Erfahrene fürchtet sich" .....  da ist dann die Interpretation  "Gebrannte Kinder scheuen das Feuer" schon treffender. Ich frage mich, ob dieses Horaz-Zitat nicht irgendwie mittelalterlich verbogen wird mit der Interpretation "Aus Erfahrung wird man klug", das passt nicht zu der Zeit des Horaz, kann das aber im Moment nicht verifizieren, da ich zwar den Autor, aber nicht die genaue Stelle finde (solche Fehlinterpretationen gibt es zu Hauf, eine der bekanntesten ist das Iuvenal-Zitat "ein gesunder Geist in einem gesunden Körper" [mens sana in corpore sano], da wurde einfach "optandum est", das davor steht, weggelassen: "es ist zu wünschen, dass" .... und damit dreht es die Bedeutung um 180 Grad).

"Alea iacta esto", der Würfel sei geworfen, soll Cäsar ziemlich sicher im griechischen Original zitiert haben, als er im Jahr 49 den Rubicon überschritt und damit den Bürgerkrieg gegen seinen Rivalen Pompeius auslöste. Damit gemeint "Die Entscheidung soll fallen". Die Zitierweise "Alea iacta est", "Der Würfel ist gefallen", macht eigentlich nicht wirklich Sinn, auch wenn selbst gewisse Philologen diese Variante vertreten (unter Missachtung, dass das ja am Kriegsanfang gesagt wurde und nicht nach der Entscheidung, wo es hinpassen würde).

Bernhard: eiecta (also mit e, nicht mit a) würde "ausgeworfen" heissen.
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 21.03.04 - 23:32:36
Wie auch immer, ich hatte noch eine böse Sache im 2. Codebeispiel:

Bei
>> Case 91
hatte ich statt "91" die direkte Fehlerbeschreibung drin. Klappt auch, wenn man nicht Option Declare gesetzt hat.

Hätte ich das nicht zufällig bemerkt, wäre es schon wieder auf mich zurückgekommen: "Wie, Du kannst das Script nicht speichern? Bei mir klappt das".

Wie das der Lateiner sieht, weiß ich nicht  ;)


Matthias
Titel: Re:Importieren durch "Button"
Beitrag von: animate am 21.03.04 - 23:57:11
Nana, "der Erfahrene fürchtet sich" .....  da ist dann die Interpretation  "Gebrannte Kinder scheuen das Feuer" schon treffender. Ich frage mich, ob dieses Horaz-Zitat nicht irgendwie mittelalterlich verbogen wird mit der Interpretation "Aus Erfahrung wird man klug", das passt nicht zu der Zeit des Horaz, kann das aber im Moment nicht verifizieren, da ich zwar den Autor, aber nicht die genaue Stelle finde (solche Fehlinterpretationen gibt es zu Hauf, eine der bekanntesten ist das Iuvenal-Zitat "ein gesunder Geist in einem gesunden Körper" [mens sana in corpore sano], da wurde einfach "optandum est", das davor steht, weggelassen: "es ist zu wünschen, dass" .... und damit dreht es die Bedeutung um 180 Grad).

"Alea iacta esto", der Würfel sei geworfen, soll Cäsar ziemlich sicher im griechischen Original zitiert haben, als er im Jahr 49 den Rubicon überschritt und damit den Bürgerkrieg gegen seinen Rivalen Pompeius auslöste. Damit gemeint "Die Entscheidung soll fallen". Die Zitierweise "Alea iacta est", "Der Würfel ist gefallen", macht eigentlich nicht wirklich Sinn, auch wenn selbst gewisse Philologen diese Variante vertreten (unter Missachtung, dass das ja am Kriegsanfang gesagt wurde und nicht nach der Entscheidung, wo es hinpassen würde).

höllisch interessant (keine Ironie!)
danke für diesen Exkurs
Titel: Re:Importieren durch "Button"
Beitrag von: Semeaphoros am 22.03.04 - 00:08:14
Hätte ich das nicht zufällig bemerkt, wäre es schon wieder auf mich zurückgekommen: "Wie, Du kannst das Script nicht speichern? Bei mir klappt das".

Wie das der Lateiner sieht, weiß ich nicht  ;)


Matthias

"Quod? Tune non potes salvare scriptum? Ego possum"
(etwas volkstümlich)

Thomas: Danke, man merkt bestimmt, dass mir das selber höllisch spass macht :)
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 22.03.04 - 00:24:21
"Quod? Tune non potes salvare scriptum? Ego possum"
(etwas volkstümlich)

Cool, hatte jetzt nicht mit einer Latein-Umsetzung der Frage gerechnet  8)

Matthias
Titel: Re:Importieren durch "Button"
Beitrag von: Don Pasquale am 22.03.04 - 07:56:39
Ich müßte Euch hier ja eigentlich zur Ordnung rufen,
wenns mir nicht so ausserordentlich gut gefallen würde.

Ciao
Don Pasquale
Titel: Re:Importieren durch "Button"
Beitrag von: sloe am 22.03.04 - 13:08:48
sorry, noch was zum ursprünglichen Thema  ;)
Statt:
Zitat
vFilepath = uiws.OpenFileDialog( True, db.Title, "Supported Images|*.cgm;*.jpg;*.bmp;*.gif;*.jpeg", "x:\")
die Einträge abtrennen mit:
Code
vFilepath = uiws.OpenFileDialog( True, db.Title, "cgm-Bild|*.cgm|JPG-Bild|*.jpg;*.jpeg|BMP-Bild|*.bmp|GIF-Bild|*.gif", "x:\")
dann dürfte es auch mit dem Filter funktionieren (funzt jedenfalls bei mir mit Notes 5.07)
Gruß
sloe
Titel: Re:Importieren durch "Button"
Beitrag von: lainin am 22.03.04 - 13:17:01
ahhh...was zum Thema!!!   ;D
Lüppt einwandfrei!

Thx Sloe
Titel: Re:Importieren durch "Button"
Beitrag von: TMC am 23.03.04 - 22:13:55
Sloe, vielen Dank für den Hinweis.

Habe ich entsprechend übernommen im BP-Artikel:
http://www.atnotes.de/index.php?board=26;action=display;threadid=13839

Allerdings ist die Default-Auswahl nach wie vor "alle Bilder", denn das war mein eigentliches Ziel.

Matthias