Jump to content
  • 0

berekening relaties


Sylvia112

Question

Posted

Hallo, ben net begonnen met filemaker 7 en wil de volgende berekening maken:

- drie cijfers relatienr, verwijst naar relatienr. 2e bestand + 1 of 2 of geen nullen ervoor, wil in totaal 3 cijfers,

- dan jaar dat is gelukt,

- dan opdrachtnr. die oplopend moet zijn gerelateerd aan het type opdracht, daar heb ik 6 types van. Dus bv 1e gele opdracht 001, dan een 1e blauwe opdracht 001, dan een blauwe opdracht 002 etc.

 

Wie wil mij helpen en alvast bedankt,

Sylvia

6 answers to this question

Recommended Posts

  • 0
Posted

Als je van een getal dat uit max 3 cijfers bestaat sowieso altijd 3 cijfers wil maken dan kan je voorlopende nullen toevoegen door:

 

Right("000" & getal; 3)

 

Dit was een gok naar je eerste behoefte hier :lol:

 

Die laatste heb ik ergens een fp5 file voor, maar dat was een heel ingewikkelde, dus dat ga ik best aan anderen overlaten, want tegenwoordig is dat mss simpeler :)

  • 0
Posted
... maar dat was een heel ingewikkelde

 

…ingewikkeld ? toch niet…

 

Ruwe benadering

 

Een veldje om het oplopend nummer in te zetten (numeroke) en een finaal veld dat type opdracht & nummer geeft.

 

Relatie tussen Type opdracht (typeOp)

 

Wat je wil hebben is de max van die relatie + 1.

 

Simpel indien je nieuwe records script, voeg een regeltje toe:

 

Set Field[numeroke, Case(typeOP::numeroke > 0,numeroke+1,1)]

 

Nadat type opdracht werd ingegeven, in < 7

  • 0
Posted

Waar ik het over had was wellicht deze:

Serialize by Category

www.filemakerpros.com/Serialize_by_Category.zip

http://www.filemakerpros.com/SerialCat.sit

 

Toch best wel ingenieus en "ingewikkeld", vind ik nog steeds :lol:

Maar er zit dan ook ineens zo'n last serial correctie in die niet op een trage Max(sj) berust (ik hoor toch dat dit traag begint te worden bij meer dan 1000 records). Maar wie kan nog zoveel facturen maken tegenwoordig..? :lol::wink:

 

En de komma's zijn ";" tegenwoordig, geloof ik :wink:

  • 0
Posted

Vandaar de scripted versie.

 

Indien je geen script gebruikt loop je het gevaar in een circular terecht te komen bij het opzoeken van max.

 

Om daaruit te geraken dien je op een bepaalde manier te sorteren.

 

Ik geef dus de voorkeur aan de script versie. Die tenandere de 'opvolger' was van je voorbeeld.

  • 0
Posted

• Misschien heb je hier nog iets aan :

http://www.adequaat.be/techniekfiles/AutoSerial.fp7.zip

• En dit is ook een mooie oplossing wat betreft de voorloopnullen :

/* ----------------------------------------------------------
Returns a string containing the number with as many 
leading "0" characters as needed to reach the given
total length.

In:  number - the number to format
      len - the total length of the
              returned string

Return type: Text
Syntax: ZeroNum ( number ; len )
Voorbeeld : ZeroNum (123;7) geeft 0000123

Theo Ros
----------------------------------------------------------*/

// speed things up by prefilling a buffer with 32 zeroes
Let ( [ num = GetAsNumber ( number ) ; 
          zero = "00000000000000000000000000000000" ] ; 
 Case ( Length ( num ) >= len ; num ;
            len > Length ( num ) + 32 ; 
              zero & ZeroNum ( number ; len - 32 ) ; 
            Right ( zero & num ; len ) 
 )
)

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