[ORACLE Forms] Wie kan me helpen met deze trigger?

Pagina: 1
Acties:

  • Flipmo2K
  • Registratie: April 2000
  • Niet online
Ik moet voor school een schoonheidssalon (ja lach maar) maken in Oracle en Oracle Developer Forms 8.
Op zich lukt dat vrij aardig alleen d'r is een probleempje. Ik moet een trigger maken die controleert dat één medewerker slecht 2 'Hoog-Niveau Behandelingen' op één dag mag doen .
Dus d'r moet op de datum, op de medewerker die de afspraak behandeld en op de behandeling gecontroleerd worden...

BTW: alle dingen op 't form staan in de tabel/datablok AFSPRAAK.

Ik heb onderstaand bijgevoegd om 't te verduidelijken, de witte blokjes langs de tekstvelden zijn LOV's.
Afbeeldingslocatie: http://silo.gamepoint.net/forms0.jpg

  • TMDevil
  • Registratie: Mei 2002
  • Laatst online: 30-08 14:20

TMDevil

Blaat

Op dinsdag 11 juni 2002 18:37 schreef Flipmo2K het volgende:
Ik moet een trigger maken die controleert dat één medewerker slecht 2 'Hoog-Niveau Behandelingen' op één dag mag doen .
Dus d'r moet op de datum, op de medewerker die de afspraak behandeld en op de behandeling gecontroleerd worden...

BTW: alle dingen op 't form staan in de tabel/datablok AFSPRAAK.
Nou heb ik niet heel lang gewerkt met Form 8.0 maar goed... ik zal d'r ff een gewoon statement van maken.. (misschien zie je het licht dan :) )
if (afspraak.medewerker[x].

ik zit me eigenlijk een beetje aftevragen hoe je DB er uitziet... Hoe sla je een 'Hoog-Niveau Behandelingen' eigenlijk op? heeft dat een eigen kolom? ik neem aan dat het een DataaseB is...
Ik heb onderstaand bijgevoegd om 't te verduidelijken, de witte blokjes langs de tekstvelden zijn LOV's.
Ik denk dat er toch iets fout is want d'r staat nix...

n54 power!


  • Flipmo2K
  • Registratie: April 2000
  • Niet online
Hmm ik ben de link vergeten toe te voegen :D. Maar toen ik 't bericht (fout) gewijzigd had kon ik 't niet meer opnieuw wijzigen??
Dus hier is 't plaatje dan maar:
Afbeeldingslocatie: http://silo.gamepoint.net/forms0.JPG

De namen van behandeling worden gewoon als varchar2 opgeslagen, dus in die trigger kan 't volgens mij iets zijn met "if :afspraak.behandeling = 'Hoog-Niveau Behandeling' " en dan de rest nog...
Maja, die rest daar kom ik dus niet bepaald uit.

  • TMDevil
  • Registratie: Mei 2002
  • Laatst online: 30-08 14:20

TMDevil

Blaat

Ik neem aan dat je SQL code gebruikt bij het uitlezen van de tabel... (da's voor mij namelijk het makelijkst :))

Als eerste zou je een query moeten maken voor het uitfilteren van een bepaalde datum en het de Hoog-niveau behandeling. Dat zou dan iets van:
SELECT afspraaknr,afspraakdtm,behandeling,medewerker2 FROM tabel WHERE (afspraakdtm="vandaag" )AND (afspraak.behandeling = 'Hoog-Niveau Behandeling');
moeten worden of zo iets.

Vervolgens moet je dan het aantal gevonden records optellen... als dat hoger is dan 2 dan heeft die d'r al 2 gehad.. is het minder dan 2 dan niet....
Ik heb alleen geen idee hoe je het aantal gevonden records telt met Forms
[edit]
Overigens zou ik 2 tabelen maken waarbij de afspraak in een tweede tabel staat die je koppelt.. je kan dan namelijk gaan optellen. ff een voorbeeld:
Tabel afspraak:
AfspraakID, Afspraak
de afspraakID kan je dan bv de volgende waardes geven:
normaal 1, iets hooger: 100, heel hoog: 10000
ik neem aan dat iemand niet 100 klanten van 1 type heeft heeft.
Vervolgens zijn de normale klanten >100
hooger is 100< >10000
Hoog is dan 1000<
(en dan nog een klein stukki code dat je deelt door 100 of 10000 maar dat snap je hoop ik wel... )

n54 power!


  • OProg
  • Registratie: Juli 2001
  • Laatst online: 06-01-2022

OProg

Molletje

--> [P&W] :)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op dinsdag 11 juni 2002 18:37 schreef Flipmo2K
het volgende:

Ik moet voor school een schoonheidssalon (ja lach maar) maken in Oracle en Oracle Developer Forms 8.
Op zich lukt dat vrij aardig alleen d'r is een probleempje. Ik moet een trigger maken die controleert dat één medewerker slecht 2 'Hoog-Niveau Behandelingen' op één dag mag doen .
Dus d'r moet op de datum, op de medewerker die de afspraak behandeld en op de behandeling gecontroleerd worden...

BTW: alle dingen op 't form staan in de tabel/datablok AFSPRAAK.

Ik heb onderstaand bijgevoegd om 't te verduidelijken, de witte blokjes langs de tekstvelden zijn LOV's.
[afbeelding]
Je hebt een aggregatie nodig over medewerker en datum met in de where clause de selectie op hoog-niveau en een having clause met count( * ) > 2
Pagina: 1