Table Level in Navision 2009 R2

jsshivalik
Member Posts: 67
Hi
I have 3 fields Amount,CAmount,Balance. CAmount is Flowfield . Is it possible to define Balance = Amount - CAmount at Table level.
I have written below code at Table Level but not working. Do i need to write Modify also.
CAmount - OnValidate()
"Balance Amount" := Amount - CAmount;
Thanks
I have 3 fields Amount,CAmount,Balance. CAmount is Flowfield . Is it possible to define Balance = Amount - CAmount at Table level.
I have written below code at Table Level but not working. Do i need to write Modify also.
CAmount - OnValidate()
"Balance Amount" := Amount - CAmount;
Thanks
0
Best Answer
-
Your code added to CAmount - OnValidate is not going to work. The OnValidate trigger can be activated (called) either from code, by calling VALIDATE(CAmount), or when CAmount is exposed on the Page and is made editable, so the user can change value in it. CAmount - OnValidate trigger is never called be the system when data in other tables changes in a way which would change the content in CAmount
Take the code out of CValidate trigger, and move it to Amount - OnValidate. also add CALCFIELDS(CAmount) call before using it in your calculation:Amount - OnValidate() CALCFIELDS(CAmount) "Balance Amount" := Amount - CAmount;
Your balance will only be updated if you validate/change Amount field. Changes in CAmount will not be automatically reflected in your "Balance Amount".
Slawek Guzek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-035
Answers
-
this should work.0
-
Your code added to CAmount - OnValidate is not going to work. The OnValidate trigger can be activated (called) either from code, by calling VALIDATE(CAmount), or when CAmount is exposed on the Page and is made editable, so the user can change value in it. CAmount - OnValidate trigger is never called be the system when data in other tables changes in a way which would change the content in CAmount
Take the code out of CValidate trigger, and move it to Amount - OnValidate. also add CALCFIELDS(CAmount) call before using it in your calculation:Amount - OnValidate() CALCFIELDS(CAmount) "Balance Amount" := Amount - CAmount;
Your balance will only be updated if you validate/change Amount field. Changes in CAmount will not be automatically reflected in your "Balance Amount".
Slawek Guzek
Dynamics NAV, MS SQL Server, Wherescape RED;
PRINCE2 Practitioner - License GR657010572SG
GDPR Certified Data Protection Officer - PECB License DPCDPO1025070-2018-035
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions