Give AL language `const var`, i.e. ability to pass/receive function arguments by constant reference
We currently can only pass by copy a.k.a. by value, or by modifiable reference (var). Passing by copy is problematic for things that are expensive to copy and which only need to be observed by the called function. This can range from strings to complete records. Why waste CPU cycles cop...
Enable specifying objects by name in properties like SourceTableView, CalcFormula, etc.
from https://github.com/microsoft/AL/issues/6163 -- Describe the bug When setting up SourceTableViews, TableRelations, and so on - that relate to other tables by table IDs (or, far less frequently, specify codeunit IDs to run, etc.) - we still have to use the raw integer ID, which is ugly, opa...
DataCaptionExpression should be shown in View mode if no records/rows exist on the List Page
from closed https://github.com/microsoft/AL/issues/6388 **Describe the bug** The title says it all: if a `List` page is in View mode, and no records are within its Table/filter, then the `DataCaptionExpression` the developer sets is ignored and not shown at the top. A `DataCaptionExpression` th...
Add Record methods to check for existence, w/ standard error if not, to replace/optimise uses of Get() & FindFirst()
from closed AL issue https://github.com/microsoft/AL/issues/5727 *** Summary: There are standard AL warnings if FindFirst() is used without then checking any fields from the found record. But it is in my experience very common to see both Microsoft and third-party devs like myself using FindFi...
Export Budget To Excel report should support Accounting Periods, as the page view does
We have a client who views their G/L Budgets by Accounting Period. Their Accounting Periods are not calendar months or otherwise consistent; they are very specific. When they use the Export Budget To Excel report, expecting an equivalent result, just in Excel instead of on-screen, they find they ...
Make it possible to get a FieldNo without having to declare a local variable of Record type
In generic code, we often need to do something like: CallSomeGenericFunction(Database::Customer, Customer.FieldNo(Name)) The problem with this is that to get the FieldNo, we need a local Customer: Record variable. Often that is the only thing said rec is needed for. So having to declare it is b...
system event request: Page object type: OnBeforeOpenCardPage(var Rec; var CardPageId)
from closed https://github.com/microsoft/AL/issues/6440#issuecomment-792290006 related to this highly voted Idea, but IMO my proposal might be more comprehensive, although of course it could be great for both to co-exist as the other version of just using a property per extension (nor per record...
Code analysis diagnostic if Page methods are called with wrong Record/Table type (i.e. not SourceTable)
See also https://github.com/microsoft/AL/issues/6438 https://github.com/microsoft/AL/issues/6525 (closed, but see my follow-up comment) See screenshot: https://user-images.githubusercontent.com/63455896/110925501-2dc25c00-831b-11eb-9c8c-c82046202ebd.png None of these should compile. But they do...
Add a way to mark event parameters/arguments as deprecated/obsolete on the publisher side
This AlAppExtensions issue concerned an event parameter that was added hastily without thinking and is not actually useful for anything: https://github.com/microsoft/ALAppExtensions/issues/11996 Stan P explains there how parameters can't just be removed because users might be taking them, even i...
Allow passing List/Dictionary constructed in the call, eg DoSomethingWith( [4, 8, 15, 26, 23, 42] ) for List of [Integer]
I often find myself needing to declare a function like ``` local procedure DoSomethingWith(Ints: List of [Integer]) ``` ...where Ints is, e.g., a list of fields to pass to AddLoadFields(), or a list of Applied Entry Nos, or whatever. However, for just a small number of (not dynamic) elements, ...