public SubAccountMaskAttribute(bool ignoreSrvOrdType)
            : base()
        {
            FSDimensionMaskAttribute attr = new FSDimensionMaskAttribute(DIMENSION_NAME, CONTRACT_MASK_NAME, FSAcctSubDefault.MaskCustomerLocation, new FSAcctSubDefault.ClassListAttribute(true).AllowedValues, new FSAcctSubDefault.ClassListAttribute(true).AllowedLabels);

            attr.ValidComboRequired = false;
            _Attributes.Add(attr);
            _SelAttrIndex = _Attributes.Count - 1;
        }
 public static string MakeSub <Field>(PXGraph graph, string mask, object[] sources, Type[] fields, bool contract = false)
     where Field : IBqlField
 {
     try
     {
         string[] allowedValues = contract == false ? new FSAcctSubDefault.ClassListAttribute().AllowedValues : new FSAcctSubDefault.ClassListAttribute(true).AllowedValues;
         return(FSDimensionMaskAttribute.MakeSub <Field>(graph, mask, allowedValues, 0, sources));
     }
     catch (PXMaskArgumentException ex)
     {
         PXCache cache     = graph.Caches[BqlCommand.GetItemType(fields[ex.SourceIdx])];
         string  fieldName = fields[ex.SourceIdx].Name;
         throw new PXMaskArgumentException(new FSAcctSubDefault.ClassListAttribute().AllowedLabels[ex.SourceIdx], PXUIFieldAttribute.GetDisplayName(cache, fieldName));
     }
 }