Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  Abgerundetes Datum mit VB

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge
Autor Thema:  Abgerundetes Datum mit VB (370 mal gelesen)
Lemurian
Mitglied



Sehen Sie sich das Profil von Lemurian an!   Senden Sie eine Private Message an Lemurian  Schreiben Sie einen Gästebucheintrag für Lemurian

Beiträge: 95
Registriert: 20.11.2002

PROCIM
Systemtechnik GmbH

erstellt am: 26. Jun. 2004 12:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

Ich habe einige Problemchen in SE V15 mit den Benutzerdefinierten Datei-Eigenschaften.
Wenn ich mir eine Eigenschaft anlege wie bspw. "Bearbeitungsdatum" dieser den typ date verpasse und den Wert dieser Eigenschaft über VB6
auslese oder ändere, wird das eingetragene Datum permanent einen Tag zurückgesetzt.
----------------------------------------------
Dim SEApp As SolidEdgeFramework.Application
Dim SEADoc As SolidEdgeDraft.DraftDocument
Dim SEPropS As PropertySets
Dim SEProp As Properties
----------------------------------------------
Private Sub Form_Load()
Dim i As Long
Set SEApp = GetObject(, "SolidEdge.Application")
If SEApp.ActiveDocument.Type <> igDraftDocument Then
  MsgBox "Dieses Makro arbeitet nur mit einem Draft-Dokument zusammen."
Else
  Set SEADoc = SEApp.ActiveDocument
  Set SEPropS = SEADoc.Properties
  Set SEProp = SEPropS.Item("Custom")
End If
End Sub
----------------------------------------------
Private Sub cmdRD_Click() 'liest Datum
Dim i As Long
  For i = 1 To SEProp.Count
    If SEProp.Item(i).Name = "Bearbeitungsdatum" Then
      Form1.txtDate.Text = SEProp.Item(i).Value
      i = SEProp.Count
    End If
  Next i
End Sub
---------------------------------------------
liest mir das richtige Datum aus (26.06.2004) in der überwachung steht auch das richtige Datum drin.
Schaue ich aber in die Dateieigenschaften der draft, in die ich das aktuelle datum mit now() reingeschrieben habe, steht dort der 25.06.2004

Da passt doch was nicht zusammen? An welcher Stelle rundet denn hier wer und wiso ab ??

Danke Lemmi

[Diese Nachricht wurde von Lemurian am 26. Jun. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Arne Peters
Ehrenmitglied V.I.P. h.c.
CAD Dokumentation / Training / Programmierung / Datenbanken


Sehen Sie sich das Profil von Arne Peters an!   Senden Sie eine Private Message an Arne Peters  Schreiben Sie einen Gästebucheintrag für Arne Peters

Beiträge: 7321
Registriert: 05.2002.24

Solid Edge Seminarunterlagen
Training, Beratung, Programmierung

erstellt am: 26. Jun. 2004 13:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lemurian 10 Unities + Antwort hilfreich

Hab ich auch festgestellt und den Grund leider nicht gefunden. Ich denke das muß ein Fehler in der APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) sein. Zu runden gibt es da ja nix, da das Datum der ganzzahlige Anteil ist.

------------------
APeters@BSS-Online.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 26. Jun. 2004 16:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lemurian 10 Unities + Antwort hilfreich

Moin,

sehr wahrscheinlich wird intern auf absolutes datum konvertiert
(fuer datumsberechnungen) und das waere fuer den 26 der Tag = 731760
bzw. der 178. Tag im Jahr.
Moeglich das in V15 vergessen wird das 2004 ein Schaltjahr ist.
Test: PC-datum auf ein datum vor dem 28.2.2004 oder auf das Jahr
2005 setzten und dann sehen was rauskommt. In V14 keine Probleme.

Klaus

[Diese Nachricht wurde von modeng am 26. Jun. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lemurian
Mitglied



Sehen Sie sich das Profil von Lemurian an!   Senden Sie eine Private Message an Lemurian  Schreiben Sie einen Gästebucheintrag für Lemurian

Beiträge: 95
Registriert: 20.11.2002

PROCIM
Systemtechnik GmbH

erstellt am: 26. Jun. 2004 17:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

Ein Jahr vorstellen hatte ich schon probiert, kam das gleiche bei raus.

Gruß Lemmi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 26. Jun. 2004 17:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lemurian 10 Unities + Antwort hilfreich

hmm, wenn V15 zur Basis 0 statt 1 arbeitet waeren alle Tage
falsch, was ja wohl nicht der Fall ist, und an der VB Funktion
Date bzw. now() sollte es ja nicht liegen ...
Ein workaround waere das Feld in Custom als Text zu definieren
und das Setzen per VB dann so zu definieren:

SEProp.Item(i).Value = CStr(Date) oder Cstr(now()) wenn Zeit auch gespeichert werden soll


Klaus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

pablo
Mitglied
Techniker


Sehen Sie sich das Profil von pablo an!   Senden Sie eine Private Message an pablo  Schreiben Sie einen Gästebucheintrag für pablo

Beiträge: 453
Registriert: 23.01.2002

Win10
Office 365
SE 2019

erstellt am: 27. Jun. 2004 09:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lemurian 10 Unities + Antwort hilfreich

Hallo Lemurian,
bei den systeminternen Datumsangaben in SE (SummaryInformation- Erstellt und Zuletzt Gespeichert liefert Erstellt eine Angabe, die mit dem Wert im Eigenschaftsfenster IMHOIn my humble opinion = Meiner bescheidenen Meinung nach überhaupt nichts zu tun hat.
Zuletzt Gespeichert liefert mit den FileProperties ausgelesen einen Wert, der mit dem Wert im Eigenschaftsfenster übereinstimmt, liest man dieselbe Eigenschaft mit Document-Properties aus, ist der Wert bei mir um ziemlich genau 2 Stunden kleiner.
Leider gibt es bei UGS jemand, der seine Zeit damit verbringt, die deutschen Properties-Namen (Document.PropertySets(Trim("SummaryInformation").Properties(Trim("Zuletzt Gespeichert").Value) gelegentlich zu ändern und mit neuen Rechtschreibfehlern zu versehen. (das Trim ist erforderlich, da sonst SE nicht erkennt, das es sich um einen String handelt, damit kannst du dir die Schleife ersparen), das macht den Zugriff mit VB nicht unbedingt einfacher.
Ich würde sagen, die APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) für die Dateieigenschaften könnte man noch optimieren und halte deinen Ansatz, es mit benutzerdefinierten Eigenschaften und modeng's Tip, das ganze mit String-Werten zu machen für das vernünftigste.
pablo


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 27. Jun. 2004 09:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lemurian 10 Unities + Antwort hilfreich

... nochmal zum Datum allgemein:
Ueblicherweise wird das Datum als Double gespeichert und beinhaltet
die Sekunden seit einem definierten Datum. Es kann also sein, dass
sich die, hier verwendete, Routine um 24h verrechnet falls der
Divisionsrest (./. 86400) unberuecksichtigt bleibt. Dann wuerde sich
beim Tag 1 + X Sekunden nur eine 1 ergeben obwohl es bereits Tag 2 ist
Wenn dies so programmiert ist, ist das Ergebnis immer um 1 Tag zu
klein obwohl der ermittelte Wert bei 0 um 1 erhoeht werden muss.

Ein Fehler durch Konvertierung Double --> Single duerfte ausscheiden,
da der Verlust an Genauigkeit erheblich groesser ist (64Bit zu 32Bit)


Klaus

[Diese Nachricht wurde von modeng am 27. Jun. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

modeng
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von modeng an!   Senden Sie eine Private Message an modeng  Schreiben Sie einen Gästebucheintrag für modeng

Beiträge: 7061
Registriert: 10.12.2003

erstellt am: 27. Jun. 2004 09:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Lemurian 10 Unities + Antwort hilfreich

@Pablo,

die 2 Stunden koennten richtig sein wenn:

a) der PC auf GMT (UTC) eingestellt ist
oder
b) intern auf GMT Basis gearbeitet wird

Und hiermit habe ich, auch ohne Trim() in V14 keine Probleme:
Datum = objDraftDoc.Properties.Item("Custom")("Bearbeitungsdatum").Value

Klaus

[Diese Nachricht wurde von modeng am 27. Jun. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz