Ga naar inhoud
  • 0

Extend found set met script


JeanWM

Vraag

Geplaatst:

We zitten nog in de 'behangpapier' fase...

 

We moeten alle records vinden voor een opgegeven maand en een opgegeven item (Criteria01) - dat op zich is geen probleem.

 

1. Binnen deze Found set moet een totaal gemaakt worden van bedragen van records die beantwoorden aan een vooropgesteld criteria (waarde A), in dit geval de waarde "Yes" in een bepaald veld.

 

2. Iedere maand wordt een variable bedrag vooropgesteld (waarde B).

 

3. Indien waarde A kleiner is dan waarde B moet telkens een record uit de Found set van Criteria01 toegevoegd worden (waar géén "Yes" in staat) tot het totaal bedrag van de Found set groter is dan B.

 

Iemand een idee hoe dat script eruit moet zien ?

3 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

Punt 1 doe je zo:

 

Maak twee velden aan: eerst een calculerend veld bijv. cWaarde: if(bepaaldveld="yes";waardeA;0), dan een summary-field met de optelsom van alle cWaarde. Summary-fields hebben de eigenschap dat ze alleen de records uit de found set 'bekijken', dus daar ben je snel klaar mee.

 

Wat bedoel je precies onder 3 met toevoegen? Begrijp ik goed dat je twee found sets hebt? Of wil je een record van buiten de found set aan de found set toevoegen totdat het totaal van waardeA uit de found set groter is dan waardeB? Misschien wordt het wat duidelijker als je het wat concreter kunt maken.

  • 0
Geplaatst:

Zoiets?

 

target_price is een globaal veld met het maandbedrag ('waarde B')

sum_price is een summary field dat de bedragen (van de Found Set) bij elkaar optelt.

 

Show All Records
Perform Find [Restore] //hier vinden we de 'yes' records ('waarde A')
Loop
 If [target_price < sum_price]
   Exit Script []
 Else
   Show Omitted Only
   Omit Record
   Show Omitted Only
 End If
End Loop

 

Er komt dus elke keer een 'niet-yes' record bij, in de volgorde van aanmaken van de records, totdat het doelbedrag bereikt is. Je zou voor de Omit Record stap een sortering kunnen doen (grootste bedrag eerst, bijvoorbeeld, zodat je het snelst aan/over je doelbedrag heen gaat, of juist het kleinste bedrag eerst, zodat je zoveel mogelijk records in je set hebt. Het is maar, wat je wilt.)

  • 0
Geplaatst:

@ Captain Haddock; concreter kan moeilijk op dit ogenblik, het geheel zit in de behangpapier fase.

 

We zitten met eerste Found set waarbinnen een tweede Found set zit. Aan die tweede Found set moeten records toegevoegd worden die in de eerste Found set zitten en nog niet in de tweede.

 

@Durk; de loop neemt dan wel records die niet in de eerste Found set zitten, maar neemt die wel uit de omitted records van het totale bestand.

 

___

 

We hebben het voorlopig opgelost door een eerste algemene Found set te maken, via een relatie de tweede Found set te isoleren en de overblijvende records van de algemene Found set in een tweede relationele portaal te droppen.

Via script kunnen we nu records uit het tweede portaal halen en die in de eerste Found set droppen.

 

De summary van Captain Haddock bracht ons op het idee om twee maal relationeel te gaan....

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...