Ga naar inhoud
  • 0

Opzoeken


Piet Stilma

Vraag

Geplaatst: (aangepast)

Hallo,

 

In FM6 maak ik veelvuldig gebruik van scripts zoals, als voorbeeld, hieronder is aangegeven:

 

Case(

(tabel1::B >= GetRepetition(tabel2::Bv;1) and tabel1::B < GetRepetition(tabel2::Bt;1)) and

(tabel1::L >= GetRepetition(tabel2::Lv;1) and tabel1::L < GetRepetition(tabel2::Lt;1)) ; GetRepetition(tabel2::ToeslagKorting;1) ;

(tabel1::B >= GetRepetition(tabel2::Bv;2) and tabel1::B < GetRepetition(tabel2::Bt;2)) and

(tabel1::L >= GetRepetition(tabel2::Lv;2) and tabel1::L < GetRepetition(tabel2::Lt;2)) ; GetRepetition(tabel2::ToeslagKorting;2) ;

(tabel1::B >= GetRepetition(tabel2::Bv;3) and tabel1::B < GetRepetition(tabel2::Bt;3)) and

(tabel1::L >= GetRepetition(tabel2::Lv;3) and tabel1::L < GetRepetition(tabel2::Lt;3)) ; GetRepetition(tabel2::ToeslagKorting;3) ;

(tabel1::B >= GetRepetition(tabel2::Bv;4) and tabel1::B < GetRepetition(tabel2::Bt;4)) and

(tabel1::L >= GetRepetition(tabel2::Lv;4) and tabel1::L < GetRepetition(tabel2::Lt;4)) ; GetRepetition(tabel2::ToeslagKorting;4) ;

(tabel1::B >= GetRepetition(tabel2::Bv;5) and tabel1::B < GetRepetition(tabel2::Bt;5)) and

(tabel1::L >= GetRepetition(tabel2::Lv;5) and tabel1::L < GetRepetition(tabel2::Lt;5)) ; GetRepetition(tabel2::ToeslagKorting;5) ;

0 )

 

Dit script werkt goed, alleen neem dit naast het vele typewerk, in de praktijk ook veel rekentijd in totale kalkulatie berekening.

 

In tabel 1 worden 2 waarden ingevuld: L (lengte) en B (breedte)

nu moet uit tabel 2 de ToeslagOfKorting worden gehaald die de leverancier hanteerd als dit formaat wordt besteld.

 

Ik heb een voorbeeld meegezonden om de zaak te verduidelijken.

 

Dus mijn vraag is, nu ik overstap op FM7: kan dit anders .....

 

Piet

opzoeken.fp7

aangepast door Gast

5 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

Ik kan je voorbeeld niet downloaden, want Safari blijft nog steeds op 99.9% hangen. Dus als je je voorbeeld kan zippen heel graag.

 

Enkele suggesties

Case-functies hanteren een afvalsysteem, dus je groter dan test kan volgens mij komen te vervallen

In FM7 kan je GetRepitition(veld;waarde) vervangen door veld[waarde]

FM7 heeft de Let() functie waarmee veel voorkomende berekeningen binnen een berekening vooraf als waarde kunnen worden gedefinieerd.

Verder kan je met Extend() een gewoon veld gebruiken in een berekening met een herhalend veld, waarbij het gewone veld op alle herhalingen wordt toegepast. Hierdoor zou je een berekend veld met herhalingen kunnen maken waarin alleen de geldige herhaling een waarde krijgt. Met Last() kan je dan de ingevulde herhaling ophalen.

 

HTH

 

rmw

  • 0
Geplaatst:

Hallo Pjotter,

 

Ik gebruik o.a. dit soort scripts om kalkulaties te maken. Bovenstaand voorbeeld is in de praktijk met 20 herhaalvelden i.p.v. 5

 

Per kalkulatie - 5 prijsstaffels (in FM7 naar 10 staffels) - per staffel wordt de na maatbepaling via scripts; contructie zoeken en controleren, kwaliteit zoeken, materiaal uit voorraad of grondstof leverancier (= m2 prijsstaffel) + toeslag/korting (op L en B) zoeken, machine zoeken en controleren, palletstapeling, vrachtmeters en -prijzen zoeken. Zo is elk item een opzoek en/of vergelijkingsklusje in de bestaande tabellen.

 

Dit, op nu 15.745 actuele kalkulaties en 15 gebruikers, resulteerd bij het bekijken van groepen kalkulaties in zandlopertjes als dit via berekeningsvelden zou gaan en is dus alles behalve snel. Daarom laat ik bij een nieuwe kalkulatie of een repeat order 'even' de scripts doorlopen .... Als er een korter en sneller alternatief is kunnen inderdaad een aantal scripts in een berekeningveld worden opgenomen.

 

Dankjewel rmw,

 

Dit is zeker een mooie oplossing, alleen zijn de beginwaarden in mijn voorbeeld gemakshalve even op 0 gezet, helaas hebben alle leveranciers andere begin-, voorwaarden en prijzen. Dus moet ik in jouw voorbeeld nog 2 berekeningsvelden toevoegen en kom ik op 5 berekeningvelden voor 1 gezochte waarde x nu 5 staffels (elke staffel kan een andere leverancier hebben) = 25 berekeningsvelden voor 1 kalkulatie item: ToeslagOfKorting.

 

Gezien bovenstaand lijkt mij dit niet de oplossing, of zie ik dit verkeerd en kan FM7 al die berekeningsvelden juist allemaal met gemak aan? - Want tentijde van FM3 liep alles al behoorlijk te 'kraken' en heb ik juist toen alles omgezet naar scripts ..... Natuurlijk is snelheid afhankelijk van Servers en PC, maar die zijn in dit geval optimaal. Misschien iets voor een ander onderwerp?

 

Piet

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...