>>I am looking for a rule able to prevent user to enter new rows or change
>>existing rows such as the sum of Weight-Percentage stay less or equal to
100 %

RAStarkey, Dennis, Bennie ...

Thanks for your help

The solution is more difficult than I expected ...

Reason is that a view or a SELECT SUM(Weight_percentage) INTO ... apply
only to existing rows BEFORE the curent row is being updated : it don't
take into account the new being created/updated.

As you seems interested by this problem, here is a solution that works :

1) I added a new column (Total_percentage DOU)  in table COMPONENT, and a
rule that prevent it to hold more than 100 :

RULES 'Total_percentage must be less than 100' FOR component SUCCEEDS +
     WHERE Total_percentage  <= 100

2) I added 3 expressions in the form :
  1. TEXT     vFccompo = ccomposant
  2. DOUBLE   vFtotal = (.vFtotal)
  3. DOUBLE  Total_percentage = ( Weight_percentage + .vFtotal)
vFccompo is index for the current row
 Total_percentage will contains the  SUM of Weight_percentage for every row
of the receipt INCLUDING  the current one

3) An eep is run when exiting column Weight_percentage.
Variable vFtotal will contain SUM of Weight_percentage for every row of the
receipt EXCEPT the current one :

SELECT SUM(tauxpoids) INTO vFtotal FROM component +
   WHERE (cproduit = .vFcourant) AND ccomposant <> .vFccompo

May be this will help somebody in the future ....

Best regards,

J.M. GRATIAS, Logimatique
================================================
TO SEE MESSAGE POSTING GUIDELINES:
Send a plain text email to [EMAIL PROTECTED]
In the message body, put just two words: INTRO rbase-l
================================================
TO UNSUBSCRIBE: send a plain text email to [EMAIL PROTECTED]
In the message body, put just two words: UNSUBSCRIBE rbase-l
================================================
TO SEARCH ARCHIVES:
http://www.mail-archive.com/rbase-l%40sonetmail.com/

Reply via email to