Hi guys,
I am using D365FO.
I want to make a customized field editable on the Posted vendor invoice journal.
For this, I am implementing LedgerJournalTable form's datasource Activated event handler.
And I am able to achieve the requirement up to make only one field(customized field) editable and all other non-editable for posted invoice journal records.
But getting below error on modifying,
"Journal has already been posted and, consequently, is not open."
Code for Event handler as below,
[FormDataSourceEventHandler(formDataSourceStr(LedgerJournalTable, LedgerJournalTable), FormDataSourceEventType::Activated)]
public static void LedgerJournalTable_OnActivated(FormDataSource sender, FormDataSourceEventArgs e)
{
LedgerJournalTable ledgerJournalTable;
DictTable dictTable = new DictTable(ledgerJournalTable.TableId);
int i;
int fieldNumber;
LedgerJournalTable currentLedgerJournalTable = sender.cursor();
FormRun formRun = sender.formRun();
FormDataSource LedgerJournalTable_ds = formRun.dataSource(formDataSourceStr(LedgerJournalTable,LedgerJournalTable));
if(currentLedgerJournalTable.Posted)
{
LedgerJournalTable_ds.allowEdit(true);
for(i = 1;i <= dictTable.fieldCnt();i++)
{
fieldNumber = dictTable.fieldCnt2Id(i);
if(LedgerJournalTable_ds.object(fieldNumber))// && fieldNumber != fieldNum(LedgerJournalTable,COC_Remark1))
{
LedgerJournalTable_ds.object(fieldNumber).allowEdit(false);
}
}
LedgerJournalTable_ds.object(fieldNum(LedgerJournalTable,COC_Remark1)).allowEdit(true);
}
}