public virtual void dataSourceFieldSelecting(PXFieldSelectingEventArgs e, string field) { RMReport report = (RMReport)e.Row; RMDataSource dataSource = report != null?Base.DataSourceByID.Select(report.DataSourceID) : null; if (dataSource == null) { object defValue; if (Base.DataSourceByID.Cache.RaiseFieldDefaulting(field, null, out defValue)) { Base.DataSourceByID.Cache.RaiseFieldUpdating(field, null, ref defValue); } Base.DataSourceByID.Cache.RaiseFieldSelecting(field, null, ref defValue, true); e.ReturnState = defValue; } else { e.ReturnState = Base.DataSourceByID.Cache.GetStateExt(dataSource, field); } //Fix AmountType Combo for PM: if (report != null && report.Type == RMType.PM && field.Equals(typeof(RMDataSource.amountType).Name, StringComparison.InvariantCultureIgnoreCase)) { e.ReturnState = PXIntState.CreateInstance(e.ReturnValue, field, false, 0, null, null, new int[] { BalanceType.NotSet, BalanceType.Amount, BalanceType.Quantity, BalanceType.TurnoverAmount, BalanceType.TurnoverQuantity, BalanceType.BudgetAmount, BalanceType.BudgetQuantity, BalanceType.RevisedAmount, BalanceType.RevisedQuantity, BalanceType.OriginalCommittedAmount, BalanceType.OriginalCommittedQuantity, BalanceType.CommittedAmount, BalanceType.CommittedQuantity, BalanceType.CommittedOpenAmount, BalanceType.CommittedOpenQuantity, BalanceType.CommittedReceivedQuantity, BalanceType.CommittedInvoicedAmount, BalanceType.CommittedInvoicedQuantity }, new string[] { Messages.GetLocal(Messages.NotSet), Messages.GetLocal(Messages.ActualAmount), Messages.GetLocal(Messages.ActualQuantity), Messages.GetLocal(Messages.AmountTurnover), Messages.GetLocal(Messages.QuantityTurnover), Messages.GetLocal(Messages.BudgetAmount), Messages.GetLocal(Messages.BudgetQuantity), Messages.GetLocal(Messages.RevisedAmount), Messages.GetLocal(Messages.RevisedQuantity), Messages.GetLocal(Messages.OriginalCommittedAmount), Messages.GetLocal(Messages.OriginalCommittedQuantity), Messages.GetLocal(Messages.CommittedAmount), Messages.GetLocal(Messages.CommittedQuantity), Messages.GetLocal(Messages.CommittedOpenAmount), Messages.GetLocal(Messages.CommittedOpenQuantity), Messages.GetLocal(Messages.CommittedReceivedQuantity), Messages.GetLocal(Messages.CommittedInvoicedAmount), Messages.GetLocal(Messages.CommittedInvoicedQuantity) }, typeof(short), 0); ((PXFieldState)e.ReturnState).DisplayName = Messages.GetLocal(Messages.AmountType); } Base1.dataSourceFieldSelecting(e, field); if (e.ReturnState is PXFieldState) { ((PXFieldState)e.ReturnState).SetFieldName("DataSource" + field); ((PXFieldState)e.ReturnState).Visible = Base.IsFieldVisible(field, report); } }