Я пытаюсь вывести селектор (Formula CD) для фильтра данных на главном экране формулы, - PullRequest
0 голосов
/ 06 июня 2018

FormulaID - это поле идентификации и новый экран, но я не могу получить селектор.Я испробовал все известные мне способы достижения этого:

  1. Поддержание родительских и дочерних отношений
  2. Просмотр данных с помощью BQL Query

Ниже приведены определенияFormulaID и FormulaCD от DAC:

#region FormulaID
public abstract class formulaID : PX.Data.IBqlField
{
}
protected int? _FormulaID;

[PXDBIdentity(IsKey =true)]
[PXUIField(Enabled = false)]
public virtual int? FormulaID
{
    get
    {
        return this._FormulaID;
    }
    set
    {
        this._FormulaID = value;
    }
#endregion

#region FormulaCD
public abstract class formulaCD : PX.Data.IBqlField
{
}
protected string _FormulaCD;

[PXDBString(30,IsUnicode = true)]
[PXUIField(DisplayName = "Formula ID", Visibility = PXUIVisibility.SelectorVisible)]
[PXSelector(typeof(Search<TSFormula.formulaCD>),
       typeof(TSFormula.descr),SubstituteKey = typeof(TSFormula.formulaCD), ValidateValue = false)]
public virtual string FormulaCD
{
    get
    {
        return this._FormulaCD;
    }
    set
    {
        this._FormulaCD = value;
    }
}
#endregion

1 Ответ

0 голосов
/ 07 июня 2018

В моем примере ниже целочисленное поле PXDBIdentity не включено и не отображается.Поле String помечено isKey = true с помощью описанного PXSelector.Разметка страницы ASPX предлагает тег px: PXSelector для поля String, как показано:

      <px:PXSelector ID="edContractNumber" runat="server" DataField="ContractNumber"
            AutoRefresh="True" DataSourceID="ds" NullText="<NEW>">
            <GridProperties FastFilterFields="ShortName">
                <Columns>
                    <px:PXGridColumn DataField="ContractNumber" Width="90px"></px:PXGridColumn>
                    <px:PXGridColumn DataField="ShortName" Width="120px"></px:PXGridColumn>
                </Columns>
            </GridProperties>
        </px:PXSelector>

Вот поля DAC:

    #region ContractID
    public abstract class contractID : PX.Data.IBqlField
    {
    }
    [PXDBIdentity()]
    [PXDefault(0)]
    [PXUIField(Visible = false, Enabled = false)]
    public virtual int? ContractID
    {
        get;
        set;
    }
    #endregion

    #region ContractNumber
    public abstract class contractNumber : PX.Data.IBqlField
    {
    }
    [PXDBString(IsKey = true)]
    [PXDefault()]
    [PXSelector(typeof(Search3<MyDAC.contractNumber,
                OrderBy<Desc<MyDAC.contractID>>>),
        new Type[] {           
        typeof(MyDAC.shortName),
        typeof(MyDAC.contractNumber)},
        DirtyRead = true)]
    [PXUIField(DisplayName = "Contract Number", Required = true)]
    public virtual string ContractNumber { get; set; }
    #endregion
...