首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我在Acumatica处理页面实现中遗漏的内容

我在Acumatica处理页面实现中遗漏的内容
EN

Stack Overflow用户
提问于 2017-04-13 16:32:05
回答 3查看 717关注 0票数 0

我尝试创建Acumatica处理页面。我有以下aspx代码:

代码语言:javascript
运行
复制
<%@ Page Language="C#" MasterPageFile="~/MasterPages/TabView.master" AutoEventWireup="true" 
    ValidateRequest="false" CodeFile="SM102000.aspx.cs"
    Inherits="Page_SM102000" Title="Untitled Page" %>

<%@ MasterType VirtualPath="~/MasterPages/TabView.master" %>
<asp:Content ID="cont1" ContentPlaceHolderID="phDS" runat="Server">
    <px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" 
        PrimaryView="StackOverflowProcess" TypeName="StackOverflowSync.UsrStackOverflowProcess">
    </px:PXDataSource>
    </asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phF" runat="server">
    <px:PXGrid ID="grid" runat="server" 
        Height="400px" 
        Width="100%" 
        AllowPaging="True" 
        AdjustPageSize="Auto" 
        AutoAdjustColumns="True" 
        AllowSearch="True"
        SkinID="Inquire" 
        DataSourceID="ds" 
        NoteIndicator="true"
        TabIndex="3300" 
        TemporaryFilterCaption="Filter Applied">
        <Levels>
            <px:PXGridLevel DataMember="StackOverflowProcess">
                <Columns>
                    <px:PXGridColumn DataField="Selected" TextAlign="Center" Width="20px" Type="CheckBox" AllowCheckAll="True">
                    </px:PXGridColumn>
                    <px:PXGridColumn DataField="FailInfo" Width="20px">
                    </px:PXGridColumn>
                    <px:PXGridColumn DataField="SynchronizationType" Width="80px">
                    </px:PXGridColumn>
                    <px:PXGridColumn DataField="LastFullSync" TextAlign="Right" Width="100px">
                    </px:PXGridColumn>
                    <px:PXGridColumn DataField="LastRunCmt" Width="80px">
                    </px:PXGridColumn>
                    <px:PXGridColumn DataField="LastRunFld" TextAlign="Right" Width="100px">
                    </px:PXGridColumn>
                </Columns>
            </px:PXGridLevel>
        </Levels>
        <AutoSize Container="Window" Enabled="True" MinHeight="400" />
    </px:PXGrid>
</asp:Content>

以下为发援会类别:

代码语言:javascript
运行
复制
using PX.Data;
using System;

namespace StackOverflowSync.DAC
{
    [Serializable()]
    public class UsrStackOverflowSettingItem: IBqlTable
    {
        #region SettingID
        public abstract class settingID : PX.Data.IBqlField
        {
        }

        protected int _SettingID;
        [PXDBIdentity(IsKey = true)]
        public virtual int SettingID
        {
            get
            {
                return this._SettingID;
            }
            set
            {
                this._SettingID = value;
            }
        }
        #endregion

        #region FailInfo 
        public abstract class failInfo : PX.Data.IBqlField
        {
        }
        protected string _FailInfo;

        [PXDBString(255, IsUnicode = true)]
        [PXDefault()]
        [PXUIField(DisplayName = "")]

        public virtual string FailInfo
        {
            get
            {
                return this._FailInfo;
            }
            set
            {
                this._FailInfo = value;
            }
        }
        #endregion
        #region Selected
        public abstract class selected : IBqlField
        {
        }
        protected bool? _Selected = false;

        /// <summary>
        /// Indicates whether the record is selected for mass processing.
        /// </summary>
        [PXBool]
        [PXDefault(false)]
        [PXUIField(DisplayName = "Selected")]
        public bool? Selected
        {
            get
            {
                return _Selected;
            }
            set
            {
                _Selected = value;
            }
        }
        #endregion
        #region SynchronizationType 
        public abstract class synchronizationType : PX.Data.IBqlField
        {
        }
        protected string _SynchronizationType;

        [PXDBString(255, IsUnicode = true)]
        [PXDefault()]
        [PXUIField(DisplayName = "Synchronization Type")]

        public virtual string SynchronizationType
        {
            get
            {
                return this._SynchronizationType;
            }
            set
            {
                this._SynchronizationType = value;
            }
        }
        #endregion
        #region LastFullSync 
        public abstract class lastFullSync : PX.Data.IBqlField
        {
        }
        protected DateTime? _LastFullSync;

        [PXDBDate()]
        [PXDefault()]
        [PXUIField(DisplayName = "Last Full Sync")]

        public virtual DateTime? LastFullSync
        {
            get
            {
                return this._LastFullSync;
            }
            set
            {
                this._LastFullSync = value;
            }
        }
        #endregion
        #region LastRunCmt 
        public abstract class lastRunCmt : PX.Data.IBqlField
        {
        }
        protected decimal? _LastRunCmt;
        [PXDBDecimal(2)]
        [PXDefault(TypeCode.Decimal, "0.0")]
        [PXUIField(DisplayName = "Last Run: Records Commited")]
        public virtual decimal? LastRunCmt
        {
            get
            {
                return this._LastRunCmt;
            }
            set
            {
                this._LastRunCmt = value;
            }
        }
        #endregion
        #region LastRunFld 
        public abstract class lastRunFld : PX.Data.IBqlField
        {
        }
        protected decimal? _LastRunFld;
        [PXDBDecimal(2)]
        [PXDefault(TypeCode.Decimal, "0.0")]
        [PXUIField(DisplayName = "Last Run: Records Failed")]
        public virtual decimal? LastRunFld
        {
            get
            {
                return this._LastRunFld;
            }
            set
            {
                this._LastRunFld = value;
            }
        }
        #endregion

        #region CreatedByID
        public abstract class createdByID : PX.Data.IBqlField
        {
        }
        protected Guid? _CreatedByID;
        [PXDBCreatedByID()]
        public virtual Guid? CreatedByID
        {
            get
            {
                return this._CreatedByID;
            }
            set
            {
                this._CreatedByID = value;
            }
        }
        #endregion
        #region Tstamp
        public abstract class tstamp : PX.Data.IBqlField
        {
        }
        protected byte[] _Tstamp;
        [PXDBTimestamp()]
        public virtual byte[] Tstamp
        {
            get
            {
                return this._Tstamp;
            }
            set
            {
                this._Tstamp = value;
            }
        }
        #endregion
        #region CreatedByScreenID
        public abstract class createdByScreenID : PX.Data.IBqlField
        {
        }
        protected string _CreatedByScreenID;
        [PXDBCreatedByScreenID()]
        public virtual string CreatedByScreenID
        {
            get
            {
                return this._CreatedByScreenID;
            }
            set
            {
                this._CreatedByScreenID = value;
            }
        }
        #endregion
        #region CreatedDateTime
        public abstract class createdDateTime : PX.Data.IBqlField
        {
        }
        protected DateTime? _CreatedDateTime;
        [PXDBCreatedDateTime()]
        public virtual DateTime? CreatedDateTime
        {
            get
            {
                return this._CreatedDateTime;
            }
            set
            {
                this._CreatedDateTime = value;
            }
        }
        #endregion
        #region LastModifiedByID
        public abstract class lastModifiedByID : PX.Data.IBqlField
        {
        }
        protected Guid? _LastModifiedByID;
        [PXDBLastModifiedByID()]
        [PXUIField(DisplayName = "Last Modified By")]
        public virtual Guid? LastModifiedByID
        {
            get
            {
                return this._LastModifiedByID;
            }
            set
            {
                this._LastModifiedByID = value;
            }
        }
        #endregion
        #region LastModifiedDateTime
        public abstract class lastModifiedDateTime : PX.Data.IBqlField
        {
        }
        protected DateTime? _LastModifiedDateTime;
        [PXDBLastModifiedDateTime()]
        [PXUIField(DisplayName = "Modified At")]
        public virtual DateTime? LastModifiedDateTime
        {
            get
            {
                return this._LastModifiedDateTime;
            }
            set
            {
                this._LastModifiedDateTime = value;
            }
        }
        #endregion
        #region LastModifiedByScreenID
        public abstract class lastModifiedByScreenID : PX.Data.IBqlField
        {
        }
        protected string _LastModifiedByScreenID;

        [PXDBLastModifiedByScreenID()]
        public virtual string LastModifiedByScreenID
        {
            get
            {
                return this._LastModifiedByScreenID;
            }
            set
            {
                this._LastModifiedByScreenID = value;
            }
        }
        #endregion
    }
}

下图如下:

代码语言:javascript
运行
复制
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using PX.Data;
    using PX.SM;
    using StackOverflowSync.DAC;

    namespace StackOverflowSync
    {
        public class UsrStackOverflowProcess:PXGraph<UsrStackOverflowProcess>
        {
            [PXFilterable]
            public PXProcessing<UsrStackOverflowSettingItem> StackOverflowProcess;
            public PXCancel<UsrStackOverflowSettingItem> Cancel;


            public UsrStackOverflowProcess()
            {
                StackOverflowProcess.SetProcessDelegate(Process);
            }

            public static void Process(List<UsrStackOverflowSettingItem> syncItems)
            {
                foreach (UsrStackOverflowSettingItem usrStackOverflowPrcSt in syncItems)
                {
                    //
                }
            }

            public override bool IsDirty => false;
        }
    }

如果在Acumatica实例中编译并打开所有这些按钮,就会看到三个按钮: Process、Process和Cancel,这是预期的行为。当我检查"Process“时,方法流程将接收所有项。但是,如果我选择了几个项,并在进程中按下,则方法进程将不会收到任何项(我已签入调试器)。为了使按钮进程正常工作,我还应该在代码中添加/删除哪些内容?

EN

Stack Overflow用户

回答已采纳

发布于 2017-04-14 15:44:30

报告的问题是由不可空的SettingID字段引起的。所有DAC字段必须为可空类型。在将SettingID属性和_SettingID字段的类型更改为Nullable<int> (int?)后,您的自定义屏幕应该按预期操作:

代码语言:javascript
运行
复制
[Serializable()]
public class UsrScanCoSettingItem : IBqlTable
{
    #region SettingID
    public abstract class settingID : PX.Data.IBqlField
    {
    }

    protected int? _SettingID;
    [PXDBIdentity(IsKey = true)]
    public virtual int? SettingID
    {
        get
        {
            return this._SettingID;
        }
        set
        {
            this._SettingID = value;
        }
    }
    #endregion
    ...
}
票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43397433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档