AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Terminserie mit InterBase

Ein Thema von cugar · begonnen am 22. Jul 2009 · letzter Beitrag vom 22. Jul 2009
Antwort Antwort
cugar

Registriert seit: 6. Jan 2007
149 Beiträge
 
Delphi XE Professional
 
#1

Terminserie mit InterBase

  Alt 22. Jul 2009, 09:15
Datenbank: InterBase • Version: 7.5 • Zugriff über: Delphi TIB Kompos
Hi,
möchte in mein Prog. etwas einbinden und weiß noch nicht wirklich wie die Tabellen-Struktur etwa aussehen müßte...
Mit meinem Programm verwalte ich meine Kunden und schreibe Rechnungen, eine Sache fehlt mir aber:
Es gibt Aufgaben die ich regelmäßig und automatisch ausführen muss z.B:
Kunde 1 muss jeden Di und Do angefahren werden
Kunde 2 1x im Monat und so weiter.

Hab etwas im Outlook gesehen, man kann im Kalender Serien einrichten und möchte es ähnlich lösen. Etwa so:
1.Täglich -> alle -Zahl- Tage
2.Wöchentlich jede/alle -Zahl- Woche(n) Mo Di Mi Do Fr Sa So
3.Monatlich am -Zahl- jedes Monats
4.Jährlich jeden -Zahl- . -Monat-

Mit einer Tabelle ist es sicherlich nur schwer machbar, sollte ich da event. 4 Tabellen für jede Art einrichten oder wie muss ich da vorgehen?

Viele Grüsse
Andreas
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Terminserie mit InterBase

  Alt 22. Jul 2009, 09:23
Hallo,

wie du schon richtig erkannt hast, sind es verschiedene Terminarten.
Jede Art hat bestimmte Parameter.

Art 1:
ein Termin, nicht wiederkehrend
Parameter: Tag, Kunde(?)

Art 2:
ein Termin, wiederkehrend am gleichen Wochentag
Parameter: Wochentag, Kunde

Art 3:
ein Termin, wiederkehrend an 2 Wochentagen
Das ist Art2, aber 2mal

Zur Defintion brauchst du mind. 2 Tabellen
Tab1: Terminarten, ArtTypId, ArtTypeName
Tab2: ArtTypId, Parameter-Liste

Hat ein Typ 2 Parameter, kommen zwei Einträge in die Tab2.


Heiko
Heiko
  Mit Zitat antworten Zitat
cugar

Registriert seit: 6. Jan 2007
149 Beiträge
 
Delphi XE Professional
 
#3

Re: Terminserie mit InterBase

  Alt 22. Jul 2009, 09:32
Alles klar, dann werde ich mal langsam anfangen.
Danke für die schnelle Hilfe
  Mit Zitat antworten Zitat
cugar

Registriert seit: 6. Jan 2007
149 Beiträge
 
Delphi XE Professional
 
#4

Re: Terminserie mit InterBase

  Alt 22. Jul 2009, 10:15
Verdammt , irgendwie komme ich nicht weiter....
Also fange mit der Tabelle für die wöchentlichen Aufgaben an:

ID Integer
KdMasterID Integer
Intervall Integer
Wochentage event. als boolean:
xMon
xDie
xMit
und so weiter

Beispiel:
ID 1
KdMasterID 15
Intervall 1 (1 für jede Woche, 2 alle 2wochen usw)
xMon False
xDie True
xMit False
xDon True
xFre False
xSam False
xSon False

Jetzt gebe ich zB Startdatum= 01.07.2009 und Enddatum =31.07.2009

Wie muss jetzt die Select-abfrage aussehen?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Terminserie mit InterBase

  Alt 22. Jul 2009, 11:20
Hallo,

nein, nicht so

Zitat:
Also fange mit der Tabelle für die wöchentlichen Aufgaben an:
Die programmierst dir einen Wolf,
wenn du pro Type eine Tabelle machst.

Alle Typen kommen in die gleiche Tabelle.
Die Parameter in die 2. Tabelle.

Tab1 Art
Id Integer
Typ Integer (0= ein Tag, 2=Woche usw.)
Name

Tab2 ArtParam
Id Integer
ArtId Integer T-> Ref auf Art.Id
ParamName
bParamValue Char(1)


Bsp für Woche

Tab1 Art
Id Typ
20 2

Tab2 ArtParam
Id ArtId ParamName bParamValue
100 20 bMonday 0
101 20 bThuesday 1


So würde ich das machen
Vorteil: Die Parameter lassen sich beliebig erweitern
Nachteil: Das "Select" ist schwieriger, läuft entweder auf Client Coding oder SP hin


Heiko
Heiko
  Mit Zitat antworten Zitat
cugar

Registriert seit: 6. Jan 2007
149 Beiträge
 
Delphi XE Professional
 
#6

Re: Terminserie mit InterBase

  Alt 22. Jul 2009, 11:53
Das macht wirklich mehr Sinn
bin mir noch nicht im Klaren wie der Ablauf sein soll, also zur Verfügung habe ich folgendes:
Das Enddatum z.B. 31.08.2009 per Auswahl
Startdatum wäre das Datum der letzten Lieferung z.B 20.07.2009 (gibt es kein Startdatum wurde der Kunde vergessen, also sofort sonst Gameover) ), aber angenommen es ist der 20.07.09.
In der Tabelle "wochenaufgaben" habe ich zb jede Woche am Dienstag und Donnerstag ausgewählt.

Jetzt soll meine Tabelle zB "NeueAufgaben" gefüllt werden, d.h. alle Tage rein die zwischen Start und Enddatum liegen.
Dachte dabei nicht an Select sondern die Tabelle "wochenaufgaben" mit while not eof durchlaufen lassen, Kunden raussuchen und passende Tage abspeichern.
Es wird sicherlich paar Sekunden dauern...

oder eine temporäre Tabelle erstellen und sagen Zeige mir alle Tage die =>startdatum und <=enddatum sind und es ist ein dienstag oder donnerstag, sowas in der art...
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Terminserie mit InterBase

  Alt 22. Jul 2009, 13:15
Also ich hab das folgendermaßen gelöst:
- Tabelle Touren (Tour Montag, Tour Dienstag, Tour Dienstag abend, usw.)
- Tabelle KD_Touren (hier werden den kunden touren zugeordnet)
- einzeltermine werden mit dem auftrag gespeichert

abfrage bzw. select mittels SP
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz