Jump to content
  • 0

Opzoeken


Piet Stilma

Question

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

Edited by Guest
Link to comment

5 answers to this question

Recommended Posts

  • 0

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

Link to comment
  • 0

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

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...