コード例 #1
0
        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);
            }
        }