Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Autodesk Productstream Professional
  Berechnung eines Datums

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 Autodesk Produkte
  
PDM ERP Integration: 4 Wege für jede Anforderung
Autor Thema:  Berechnung eines Datums (790 mal gelesen)
axeld
Mitglied
Projektingenieur/CAD-Administrator


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

Beiträge: 267
Registriert: 18.11.2002

WIN7, ACAD M2013 , PSP2011, PLANT3D 2013, DBQ-, Lisp- und VBA-Programmierungen

erstellt am: 04. Nov. 2004 11: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

Wie kann ich in COMPASS das Datum von vor einer Woche angeben, also #(SYSDATE)-7?

------------------
Axel

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

WolfgangE
Mitglied



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

Beiträge: 1006
Registriert: 29.01.2003

erstellt am: 05. Nov. 2004 08:22    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 axeld 10 Unities + Antwort hilfreich

Hallo Axel,

Rechnungen in Compass sind zwar möglich, aber speziell beim Datum wird's dann etwas schwierig. Würde dir empfehlen, eine gespeicherte Prozedur stattdessen aufzurufen und dort mit der SQL-Anweisung
Dateadd(dd, -7, GetDate())
zu arbeiten.

Falls dich doch die Compass-Funktion interessiert, hier ein Beispiel, hier wird die Dauer eines Projekts aufgrund von Start- und Enddatum berechnet:

___Environment ( tmpStarted=@(STARTED:t) );
___Environment ( tmpEnded=@(ENDED:t) );
___Shell(___Environment tmpPERIOD=##(=(#(=TIME("$tmpEnded"))-#(=TIME("$tmpStarted")))/86400) );

Ciao,
Wolfgang

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

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

axeld
Mitglied
Projektingenieur/CAD-Administrator


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

Beiträge: 267
Registriert: 18.11.2002

WIN7, ACAD M2013 , PSP2011, PLANT3D 2013, DBQ-, Lisp- und VBA-Programmierungen

erstellt am: 05. Nov. 2004 12:21    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

Mit den gespeicherten Prozeduren kenne ich mich nicht aus.

Dann muß ich wohl die COMPASS-Funktion verwenden. Was bedeutet der Wert #(=TIME("#SYSDATE"))=109960900? Wie kann ich dann 7 Tage abziehen und wie mache ich daraus wieder ein Datumswert?

------------------
Axel

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

WolfgangE
Mitglied



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

Beiträge: 1006
Registriert: 29.01.2003

erstellt am: 05. Nov. 2004 14:30    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 axeld 10 Unities + Antwort hilfreich

Ich zweifle mittlerweile, ob diese Rechnung über Compass so überhaupt machbar ist. Mach's per Prozedur, geht wie folgt:

Der folgende Text ist eine SQL-Anweisung. Kopieren diese in den QueryAnalyzer, wähle die Compass-Datenbank aus und führe das Skript aus:
/*********************************************************/
CREATE PROCEDURE wec_AddDaysToDate(@NewDate varchar(100) OUTPUT, @AddDays int)
AS
SET NOCOUNT ON

  -- Das Datum muss für Compass im Format yyyymmdd zurückgegeben werden.
  -- Wird hier als Textteile zusammengeschnitten.

  Declare @TempDate datetime

  Set @TempDate = DateAdd(dd, @AddDays, GetDate())
  Set @NewDate =
    Cast(Year(@TempDate) as varchar(10)) +

    Case When Len(Month(@TempDate))=1
      Then Cast(0 as varchar(1)) + Cast(Month(@TempDate) as varchar(10))
      Else Cast(Month(@TempDate) as varchar(10))
    End +

    Case When Len(Day(@TempDate)) = 1
      Then Cast(0 as varchar(1)) + Cast(Day(@TempDate) as varchar(10))
      Else Cast(Day(@TempDate) as varchar(10))
    End

Go
/******************************************************/

Das ist eine Funktion, die zum aktuellen Datum die angegebene Anzahl von Tagen dazu zählt. Zum weg zählen also einfach eine negative Zahl verwenden.

Der Aufruf: hier wird die Variable "NewDate" mit dem Datum von vor 7 Tagen belegt:
___Environment(NewDate=#(XDWSFKT:wec_AddDaysToDate(,-7)))

Das "-7" kannst du jetzt durch eine beliebige Anzahl von Tagen ersetzen.

Ciao und schönes Wochenende,
WolfgangE

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

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

axeld
Mitglied
Projektingenieur/CAD-Administrator


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

Beiträge: 267
Registriert: 18.11.2002

WIN7, ACAD M2013 , PSP2011, PLANT3D 2013, DBQ-, Lisp- und VBA-Programmierungen

erstellt am: 05. Nov. 2004 15:40    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

@Wolfgang:

Super, das hat gleich funktioniert. Ich habe es in die Routine eingebaut, die meine Anzeige steuert, ähnlich des Filterbefehles.
Vielleicht hast Du da noch eine Idee: Wie kann ich zeigen, daß da ein Filter aktiv ist, der über mein Programm gesteuert wird? COMPASS macht es ja so, daß die Kopfzeile rot markiert ist. Kann man so etwas ähnliches auch erreichen?

------------------
Axel

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

WolfgangE
Mitglied



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

Beiträge: 1006
Registriert: 29.01.2003

erstellt am: 08. Nov. 2004 07:45    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 axeld 10 Unities + Antwort hilfreich

Du steuerst also die DBWhere-Bedingung damit? Wenn du mit DBP arbeitest, könntest du eine Variable oder einen Konfigurationseintrag belegen. In einern eigenen Spalten der Liste könnte man dort dann auf diesen Eintrag abfragen und ein Symbol einbauen.

Oder in einem der Menüs (z.B. Ansicht) einen neuen Eintrag hinzufügen und mit entsprechenden Symbol versehen bzw. je nach Status des Filters aktivieren oder deaktivieren. Könnten dann auch 2 Befehle sein, die heißen z.b. "Filter aktivieren" und "Filter deaktivieren" und nur jeweils 1 ist aktiv.

Wenn du das ganze in einem eigenen Dialog machst und dieser z.B. aus VisualBasic stammt, müsste es noch wesentlich mehrere Möglichkeiten zur Visualisierung geben.

Ciao,
WolfgangE

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

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

axeld
Mitglied
Projektingenieur/CAD-Administrator


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

Beiträge: 267
Registriert: 18.11.2002

WIN7, ACAD M2013 , PSP2011, PLANT3D 2013, DBQ-, Lisp- und VBA-Programmierungen

erstellt am: 08. Nov. 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

Ja, die DBWhere-Bedingung ändere ich. Ein Symbol in eine neue Spalte einfügen ist hier nicht sinnvoll, da der Filter für die ganze Liste funktionieren soll. Irgend eine Farbänderung hätte ich gerne.
Einen eigenen Dialog habe ich nicht erzeugt, ich ändere nur in der Listendarstellung.

------------------
Axel

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

WolfgangE
Mitglied



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

Beiträge: 1006
Registriert: 29.01.2003

erstellt am: 08. Nov. 2004 09: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 axeld 10 Unities + Antwort hilfreich


Menue_Ansicht.jpg

 
Geht so nicht, glaube ich.
Wenn die entsprechende Schriftfarbe in der Konfiguration hinterlegt wäre, gäb's eine Möglichkeit, dem ist aber meines Wissens nicht so (lasse mich aber gern eines besseren belehren).

Würde dann am ehesten den Weg über's Menü gehen, mit 2 Einträgen. Könnte dann in etwa so aussehen wie im Screenshot anbei, hier wurde das Menü "Ansicht" erweitert. Auch hier wird per Menü die Anzeige-Bedingung gesteuert.

Ciao,
WolfgangE

------------------
An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!

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)2024 CAD.de | Impressum | Datenschutz