Decimal field returns always zero

Tomas_Crespo
Member Posts: 6
Hi there. I'm having my first experiences with C/SIDE.
I'm trying to make an CodeUnit that only reads values from a table (21 Cust. Ledger Entry) and sends it by email.
All is working ok, I read some fields and put them into a text string without problems.
However, if I run this table from Development Enviroment this both fields have numeric values (money).
I've tried almost any value with the FORMAT() function without success.
Could you help me???
Thanks in advance.
I'm trying to make an CodeUnit that only reads values from a table (21 Cust. Ledger Entry) and sends it by email.
All is working ok, I read some fields and put them into a text string without problems.
EmailBody := 'Document: ' + UPPERCASE(SalesLedger."Document No.") + 'Date: ' + FORMAT(SalesLedger."Posting Date") + 'Customer: ' + SalesLedger."Customer No." + 'Remaining amount:' + FORMAT(SalesLedger."Remaining Amount",0,'<Integer><Decimals,3>');The problem is with the field "Remaing Amount". Is a decimal typer field which ALWAYS returns 0. Same thing happens with "Amount" field.
However, if I run this table from Development Enviroment this both fields have numeric values (money).
I've tried almost any value with the FORMAT() function without success.
Could you help me???
Thanks in advance.
0
Answers
-
If you look at the properties of these fields in the Table Designer, you'll see that the FieldClass is "FlowField". This means that these are fields which are calculated automatically by NAV. When you use these fields in C/AL code, you need to use CALCFIELDS first:
SalesLedger.CALCFIELDS(Amount,"Remaining Amount")
before they contain a value.No support using PM or e-mail - Please use this forum. BC TechDays 2024: 13 & 14 June 2024, Antwerp (Belgium)0 -
Luc Van Dyck wrote:If you look at the properties of these fields in the Table Designer, you'll see that the FieldClass is "FlowField". This means that these are fields which are calculated automatically by NAV. When you use these fields in C/AL code, you need to use CALCFIELDS first:
SalesLedger.CALCFIELDS(Amount,"Remaining Amount")
before they contain a value.
That did the trick!
I haven't realised it was a calculated field. Thanks very much0
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