Autor Thema: embeddedobject geht nicht mehr  (Gelesen 3396 mal)

Offline yaka999

  • Frischling
  • *
  • Beiträge: 13
embeddedobject geht nicht mehr
« am: 06.06.08 - 14:14:33 »
Hallo Forum,

ich habe da ein kleines Problem.  Ich habe ein Script im Querysafe das mir die Dateigrößen von Dateianhängen abfragt. Das hat jetzt monatelang einwandfrei funktiniert und funktioniert teilweise noch immer. Der Server und einige Clients laufen noch auf Version 6.5..., Einige wurde auf 7 umgestellt. und bei denen gehts nicht mehr (Zufall???)

Ich unterschiede, ob das DOk neu ist oder nicht. Unten steht der Teil, der für 'nicht neu' zuständig ist. Wenn Das Dokument ohne Anhang einmal gespeichert wurde und ich später ein neues hinzufügen will, oder nur ein Dateianhang gespeichert wurde ist rt einfach leer. Ich sehe den Anhang beim  debuggen aber im $file. Wenn ich nun also einen Anhang hinzufügen möchte produziert er mir in ' Forall o In rt.EmbeddedObjects' einen Type mismatch.

Könnte mir vll jemand sagen woran das liegt???

Viele Grüße
Phil


   Call uidoc.Refresh
      Set rt = doc.GetFirstItem("Bild")
      If Not doc.HasEmbedded Then
         Call source.FieldSetText("ok", "ok")
      Else
         idx = 0
         Forall o In rt.EmbeddedObjects
            Redim Preserve strdateiinfo(idx)
            strdateiinfo(idx) = Trim$(Str(o.filesize))
            If o.filesize > 515000 Then
               Msgbox "Es muss mindestens ein Bild verkleinert werden!", , "Hinweis"
               continue = False
               Exit Sub
            End If
            idx = idx + 1
         End Forall
         Call source.FieldSetText("ok", "ok")
      End If
Viele Grüße
Phil

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: embeddedobject geht nicht mehr
« Antwort #1 am: 06.06.08 - 15:44:56 »
... was sagt der Debugger denn zu den Types?

Toni
Grüßle Toni :)

Offline yaka999

  • Frischling
  • *
  • Beiträge: 13
Re: embeddedobject geht nicht mehr
« Antwort #2 am: 06.06.08 - 15:57:43 »
Hallo,

da sagt er Type = 1, was immer das heißen mag. Er findet dort aber auch nix, weil das rt-feld 'Bild' für ihn ja leer ist. In '$file' steht 1084. Da sehe ich die Datei ja auch.

Bahnhof Total!!!!

Gruß
Phil
Viele Grüße
Phil

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: embeddedobject geht nicht mehr
« Antwort #3 am: 06.06.08 - 16:20:20 »
Zitat
strdateiinfo(idx) = Trim$(Str(o.filesize))

... ist das die Fehlerzeile?

Toni
Grüßle Toni :)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: embeddedobject geht nicht mehr
« Antwort #4 am: 06.06.08 - 16:27:02 »
... wenn dem so ist, dann müsstest du das Object mit dem richtigen Type abfangen

If o.Type = 1454 Then ' # Attachments
   ...
End If

Toni
Grüßle Toni :)

Offline yaka999

  • Frischling
  • *
  • Beiträge: 13
Re: embeddedobject geht nicht mehr
« Antwort #5 am: 06.06.08 - 17:33:53 »
Hallo,

nein, leider nicht. Wie oben geschrieben läuft der Fehler auf dieser ZEile auf:

  Forall o In rt.EmbeddedObjects

Ich verstehe ja auch nicht, warum es nicht mehr geht. MEin Verdachtist, dass es mit VErsion 7 irgendwie anders geht. Aber ich bin da auch nur Laie

Gruß
Phil
Viele Grüße
Phil

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 248
  • Geschlecht: Männlich
Re: embeddedobject geht nicht mehr
« Antwort #6 am: 06.06.08 - 18:26:00 »
Ich glaube, das hatte ich auch mal.

Versuch mal folgendes:
If Not Isempty(rt.EmbeddedObjects) Then
    Forall o In item.EmbeddedObjects
        ...
    End forall
end if

-Werner

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: embeddedobject geht nicht mehr
« Antwort #7 am: 09.06.08 - 08:25:47 »
Zitat
Forall o In rt.EmbeddedObjects

... in dem Fall ist es, wie Werner Götz dir antwortet - das Array ist leer und muß abgefangen werden...

Toni
Grüßle Toni :)

Offline yaka999

  • Frischling
  • *
  • Beiträge: 13
Re: embeddedobject geht nicht mehr
« Antwort #8 am: 09.06.08 - 09:47:18 »
Guten Morgen,

Vielen Dank für die Antworten, dochj leider ist es nocht nicht das, wonach ich suche.

Aber ich gleube ich habe mich auch ein wenig missverständlich ausgedrückt. Sorry, mein Fehler.

Ich habe dieses Problem nur dann, wenn das Dokument bereits einmal gespeichert wurde ohne
Dateianhang. Und zwar nur dann. Wenn ich dann ein Bild etc Anhängen möchte und wieder speichere läuft er mir auf den Fehler. Der Vorschlag von Werner ist ja gut, aber er löst mein Problem nicht. Da geht er ja einfach über die eine Datei drüber ohne die Größe zu prüfen. Und genau das will ich ja vermeiden.  ???

Viele Grüße
Phil

Offline yaka999

  • Frischling
  • *
  • Beiträge: 13
Re: embeddedobject geht nicht mehr
« Antwort #9 am: 09.06.08 - 10:03:50 »
Hallo,

ich bin es noch einmal.

ICh habe mir jetzt mit nem Schuljungentrick geholfen. Ich greife das Richtextitem ght nicht mehr direkt an. Ich habe in dem Dokument eh schon ein Feld, in das die Größen der Dateianhänge reingeschrieben werden. ICh nehme jetzt einfach dieses Feld und Frage die Werte der Reihe nach ab.
Fertig.

Ich bin mir sicher das hier der ein oder andere die gleichen oder zumindest ähnlichen  Probleme hat wie ich. Darum hier der Code:

   Call uidoc.Refresh
      If uidoc.fieldgettext("fsize") = "" Then
         Call source.FieldSetText("ok", "ok")
      Else
         idx = 0
         j = 0
         For idx = 0 To Ubound(doc.fsize)
            If doc.fsize(idx) > 515000 Then
               Msgbox "Es muss mindestens ein Bild verkleinert werden!", , "Hinweis"
               continue = False
               Exit Sub
            End If
         Next
         idx = idx + 1
         Call source.FieldSetText("ok", "ok")
      End If

Das Feld dach ich Abfrage heißt bei mir fsize und enthält folgende Formel :
   @is(@Attachments > 0; @AttachmentLEngths; "")

Warum soll ich mich da verbiegen, wenns auch so geht.  ;D

Viele Grüße
Phil

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz