Autor Thema: Wert eines Feldes als Symbol anzeigen  (Gelesen 2353 mal)

Offline Stroker

  • Frischling
  • *
  • Beiträge: 10
  • Ich liebe dieses Forum!
Wert eines Feldes als Symbol anzeigen
« am: 01.01.03 - 14:24:31 »
Hi,
ich möchte den Inhalt eines Richtext-Feldes als Symbol anzeigen lassen und habe folgende Formel benutzt: @If(Cover_Vorne = "";17;0). Leider wird kein Symbol angezeigt. Was mache ich falsch ?

mfg
Heiko

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #1 am: 01.01.03 - 16:35:17 »
... ich gehe davon aus, daß du das Symbol in einer View verwenden willst.

Ihalte von Rich-Text-Feldern können nicht direkt in einer Ansichtsspalte angezeigt werden. @Abstract(...) hilft dir den Text des Feldes zu extrahieren...

ata
Grüßle Toni :)

Offline heini_schwammerl

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 697
  • Geschlecht: Männlich
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #2 am: 01.01.03 - 17:37:59 »
Hi Stroker,

also wenn es das Einzige Rich-Text Feld ist würde ich es mal mit
@If(@AttachmentNames!="" ;17;0)
probieren.
Wenn es wikrlich um den Inhalt eines Richtext Feldes geht. Funktioniert auch, ist aber ein böser Hack. In der Sandbox von notes.net gibts dazu ein Beispielscript.
Gruß

Heini

Offline Stroker

  • Frischling
  • *
  • Beiträge: 10
  • Ich liebe dieses Forum!
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #3 am: 01.01.03 - 17:38:12 »
kannst Du mir @Abstract näher erklären? Vielleicht sollte ich noch erwähnen, daß der Inhalt des Feldes eine Grafik ist.

mfg
Heiko

Offline heini_schwammerl

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 697
  • Geschlecht: Männlich
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #4 am: 01.01.03 - 22:48:40 »
Hi Heiko,

Abstract macht alles was mit Text zu tun hat. Anhänge, Grafiken etc. werden ignoriert. Was kann man mit Abstract machen ?
- Text (und nur diesen) aus RichText Feldern auslesen
- Wörter kürzen oder nur bestimmte Passagen herausfiltern
und noch Einiges mehr aber wie gesagt NUR TEXT.
Gruß

Heini

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #5 am: 02.01.03 - 11:36:49 »
... wenn du auf eine Grafik reagieren möchtest, die in dem Feld liegt, dann fällt mir dazu leider nichts mehr ein...

... @Abstract ist hinreichend erklärt worden...

Sorry...  :(  ata
Grüßle Toni :)

Offline Stroker

  • Frischling
  • *
  • Beiträge: 10
  • Ich liebe dieses Forum!
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #6 am: 02.01.03 - 12:07:26 »
Danke für Eure Antwort. Dann muß ich das mit der Grafik auslassen. Man kann ja auch die Maske öffnen.

mfg
Stroker

Offline Grabby

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Weiblich
  • In der Ruhe liegt die Kraft!
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #7 am: 02.01.03 - 17:53:56 »
Hi Stroker.

Was zeigt er Dir denn überhaupt an? Kann es sein, dass Du in den Spalteninfos Deiner View nur vergessen hast, die Option "Werte als Symbol anzeigen", auszuwählen? Achja, in Deiner Formel soll er glaube ich ein Symbol anzeigen, wenn Cover_vorne leer ist. Ist das so gewollt?

Grabby

Offline Stroker

  • Frischling
  • *
  • Beiträge: 10
  • Ich liebe dieses Forum!
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #8 am: 03.01.03 - 09:31:34 »
"Werte als Symbol anzeigen" habe ich schon markiert. Die Formel soll mir in der View ein Symbol anzeigen, wenn im Richtext-Feld (Cover_vorne) eine Grafik vorhanden ist.

mfg
Heiko

Offline Grabby

  • Aktives Mitglied
  • ***
  • Beiträge: 124
  • Geschlecht: Weiblich
  • In der Ruhe liegt die Kraft!
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #9 am: 03.01.03 - 12:31:57 »
Bei Deiner o.a. Formel  @If(Cover_Vorne = "";17;0) heißt es aber, dass er ein Symbol (17) anzeigen soll, wenn das Feld Cover_Vorne leer ist!! D.h., wenn das Feld Cover_Vorne gefüllt ist, würdest Du KEIN Symbol in der Spalte erhalten!!!

Grabby  ;)

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #10 am: 03.01.03 - 16:17:55 »
hab mir mal was gebastelt, was es ansatzweise löst, ohne API.

btw: über Notespeek kann man erkennen, daß er einen
"record-type   Graphic" auslesen kann, da ich mich aber mit den externen Funktionen nicht auskenne, wüßte ich nicht, wie man á la NotesPeek an diese Info herankommt, ob eine importierte Grafik vorliegt.

Daher ein anderer Weg:
Code
Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   Dim doc As NotesDocument   
   Set doc = uidoc.Document
   Dim rtitem As Variant
   Dim plainText As String
   Dim fileNum As Integer
   Dim laenge As Integer
   Dim laenge1 As Integer
   
   Set rtitem = doc.GetFirstItem( "Body" )
   If ( rtitem.Type = RICHTEXT ) Then
      plainText = rtitem.GetFormattedText( False, 0 )
      laenge = Len(plainText$)
      laenge1 = rtitem.valuelength
   End If      

Entscheidend ist der zu-Fuß-Ansatz:
laenge = Len(plainText$)
laenge1 = rtitem.valuelength

"laenge" gibt mir nur die Länge des Textes an, ohne Anhänge und andere embedded Objects.

"lange1" gibt mir den Size vom RichText an, ohne Anhänge und andere embedded Objects, aber mit Bildern (lt. Help: the number of bytes in the database used to store the item's values. This number includes internal overhead)

Aufgrund des "internal overhead" ist

-bei einem eingebenen String von 15 Zeichen
laenge = 15
laenge1 = 112

-bei einem eingebenen String von 30 Zeichen
laenge = 30
laenge1 = 126

-bei einem eingebenen String von 60 Zeichen
laenge = 60
laenge1 = 156

Importiert man nun in das "60 Zeichen"-Beispiel ein Bild von der Größe 13.619 Byte (jpeg) ergeben sich folgende Werte:

laenge = 60 (vorher: 60 byte)
laenge1 = 13860 (vorher: 156 byte)

btw: das Bild scheint einen weiteren, kleinen Zusatz-Overhead von zusätzlichen 85 Byte zu produzieren, was nicht überraschen mag: laenge1_vorher(156)+bild(13.619)=13.775byte
Differenz: 13.860byte angezeigte ValueLength-13.775 rechnerisch=85 Byte overhead (hängt sicher davon ab, wie Notes intern das jpeg abspeichert bzgl. Farbtiefe etc...)

-bei einem eingebenen String von 60 Zeichen und 1 Grafik von 13.619 byte und 1 Tabelle 1x1 ohne Text:
laenge = 64 (vorher 60 byte, +4 byte)
laenge1 = 14140 (vorher 13.860 byte, +280 byte)

-bei einem eingebenen String von 60 Zeichen und 1 Grafik von 13.619 byte und 1 Tabelle 2x2 ohne Text:
laenge = 68 (vorher 64 byte, +4 byte)
laenge1 = 14318 (vorher 14.140 byte, +178 byte)


Und was soll nun das Ganze?
Anhand des Vergleichs von der Länge des reinen Textes zu ValueLength könnte man logisch darauf zurückschließen, daß im RT ein Image vorliegen könnte. Bzw. mehrere, daß weiß man natürlich nicht. Man muß das Verfahren ins QuerySave hängen zB und kann darüber ein Flag in einem versteckten Feld setzen, daß anzeigt, ob wahrscheinlich importierte Bilder vorliegen.

Anhänge und Embedded Objects spielen hierbei dennoch eine Rolle. Lt. Hilfe filtert ValueLength solche Objekte bei der Messung aus. Stimmt aber nicht ganz, da zB ein eingebettes Element mit Icon in einem meiner Tests ValueLength dennoch erhöht hat, und zwar um ca. 6000 Byte. Aber das Problem kann man sicherlich umgehen, indem man die Anzahl der EmbeddedObjects auszählt und dadurch ValueLength um einen gewissen Faktor bereinigt.

Ein weiterer, gangbarer Weg wäre, über eine Schleife per item.size Methode sämtliche Items des Docs auszulesen, um zuverlässig die Gesamtgröße des Docs zu haben, abzgl. aller Attachements und anderen Embedded Objects. Vergleicht man dann den Wert von GetformattedText zur Gesamtgröße abzgl. aller Item.Sizes, sollte es auch gehen.

Letztlich?
Weiß nicht, ob sich dieser ganze Schmodder lohnt, besser wäre es, mit eine API C++ Methode das ganze auszulesen, so wie es das Midas Tool macht. Denn eines dabei ist n.n. berücksichtigt: wenn man den Text im RichText formatiert, kommen natürliuch weitere Bytes hinzu. Irgendwann wird der Abstand von Getformatted zu ValueLength so groß, daß man fälschlicherweise annehmen würde, daß Bilde im RT importiert sind.
« Letzte Änderung: 03.01.03 - 16:24:00 von Rob Green »
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline wflamme

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 690
  • Geschlecht: Männlich
  • Irgendwie geht das schon...
    • wflamme
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #11 am: 03.01.03 - 16:54:37 »
Wenn Du Grafiken <64k in Deinem RichText hast, kannst Du die direkt in einem View anzeigen lassen. Ein ganz übler Hack - die RTF-Daten werden mit dem IsSummary gewissermaßen in den Bereich gezwungen, auf den Notes unmittelbar im View zugreifen kann
 ;D


How to show an image resource in a column of a Notes view

1.In the PostSave Event of the form gets the RichText Item
and sets the IsSummary Value to true (normally false with
RichText Items). Here in the example the form contain the
rich text field name "Picture"

Sub Postsave(Source As Notesuidocument)
       Dim doc As NotesDocument
       Dim item As NotesItem
       Set doc = Source.Document
       Set item = doc.GetFirstItem("Picture")
       item.IsSummary = True
       Call doc.Save(False,True)
End Sub

2.Compose the Form.
3.Insert an image resource in a rich text field.
(You can do it from the menu as create/Image Resouce)
4.Save the document.
5. Now Create a view for the specific form and map the Rich
text field "Picture" to the first column and don't forget
to tick the column property  "Display value as Icons".
6.Now you can view your image in the first column of the
view.
Grüße,
Wolfgang

"I love deadlines. I love the whooshing sound they make as they pass by..."
DOUGLAS ADAMS

wflamme@mainz-online.de
http://www.sns1.de/partner/flamme/wflamme.nsf

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Wert eines Feldes als Symbol anzeigen
« Antwort #12 am: 03.01.03 - 17:33:40 »
soweit ich es verstanden habe betrifft das doch "lediglich" Image Ressourcen. Ist zwar ein wirklich gutes Hidden Feature, doch hast Du eine Idee, wie man einkopierte Bilder erkennt?
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz