Show / Hide Table of Contents

Class SoField

Field description according to the deployed dictionary.

Inheritance
object
SoField
Implements
IEquatable<SoField>
Inherited Members
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetType()
Namespace: SuperOffice.Data.Dictionary
Assembly: SoDataBase.dll
Syntax
public sealed class SoField : IEquatable<SoField>

Fields

_hashFlags

Field description according to the deployed dictionary.

Declaration
public HashFlags _hashFlags
Field Value
Type Description
HashFlags

Properties

AdditionalValues

AdditionalValues key/value dictionary from the DatabaseModel

Declaration
public Dictionary<string, string> AdditionalValues { get; }
Property Value
Type Description
Dictionary<string, string>

AutoGenerateGuid

Should this field be auto-populated with a GUID on insert? The parent SoTable should also have this flag set, if true

Declaration
public bool AutoGenerateGuid { get; }
Property Value
Type Description
bool

ConceptualType

The type of the field

Declaration
public DictFieldType ConceptualType { get; }
Property Value
Type Description
DictFieldType

DbName

Name of the field as in the database

Declaration
public string DbName { get; }
Property Value
Type Description
string

DefaultActiveUser

If the field is an ej_user FK, and null, then it should be set to the current associate.ej_userId; this functionality is only applicable to CS ExtraFields

Declaration
public bool DefaultActiveUser { get; }
Property Value
Type Description
bool

DefaultNow

If the field is a date/time, and null, then it should be set to DateTime.Now; this functionality is only applicable to CS ExtraFields

Declaration
public bool DefaultNow { get; }
Property Value
Type Description
bool

DefaultValue

Default value for new records, from the database model

Declaration
public object DefaultValue { get; }
Property Value
Type Description
object

DisplayDescription

Friendly description, if set, can be multi-language string

Declaration
public string DisplayDescription { get; }
Property Value
Type Description
string

DisplayName

Friendly name, if set, can be multi-language string

Declaration
public string DisplayName { get; }
Property Value
Type Description
string

DoNotTrimTrailingWhitespace

Trailing whitespace (' ', '\t', '\r', '\n') is usually trimmed by StringTrimmerUpdater; unless this flag has been set by an AdditionalValue from SuperOffice.CD.DSL.Database.DbModelConstants.DoNotTrimTrailingWhitespace

Declaration
public bool DoNotTrimTrailingWhitespace { get; }
Property Value
Type Description
bool

FieldNumber

The complete field number as used by SODBIF in the win 32 client (e.g. TableNumber << 8 + Index).

Declaration
public int FieldNumber { get; }
Property Value
Type Description
int

GenerationState

Relation between the generated code in NetServer and the actual database state, applies to both tables and fields

Declaration
public CodeGenerationState GenerationState { get; }
Property Value
Type Description
CodeGenerationState

Index

Relative index of the field in the table. The first field (e.g. primary key) is 0

Declaration
public int Index { get; }
Property Value
Type Description
int

IsEjournalExtraField

Is this an eJournal extra field (fields added to existing tables through the CS Admin user interface)

Declaration
public bool IsEjournalExtraField { get; }
Property Value
Type Description
bool

IsForeignKey

Field description according to the deployed dictionary.

Declaration
public bool IsForeignKey { get; }
Property Value
Type Description
bool

IsFreetextSource

Is this field marked as a source for freetext indexing

Declaration
public bool IsFreetextSource { get; }
Property Value
Type Description
bool

IsHashField

Is this field the container of a row-level hash checksum?

Declaration
public bool IsHashField { get; }
Property Value
Type Description
bool

IsHashSource

Is this field a source for a row-level hash checksum?

Declaration
public bool IsHashSource { get; }
Property Value
Type Description
bool

IsNotNull

Is the field NOT NULL in the database?

Declaration
public bool IsNotNull { get; }
Property Value
Type Description
bool

IsPrimaryKey

Is the field a primary key

Declaration
public bool IsPrimaryKey { get; }
Property Value
Type Description
bool

IsRecordId

Is this field the record id part of a 'universal relation' (consisting of table number + record id)

Declaration
public bool IsRecordId { get; }
Property Value
Type Description
bool

IsRegisteredAssociate

Is this the automatically updated registered by (associate id) field

Declaration
public bool IsRegisteredAssociate { get; }
Property Value
Type Description
bool

IsRegisteredDate

Is this the automatically updated registered date field

Declaration
public bool IsRegisteredDate { get; }
Property Value
Type Description
bool

IsRegisteredEjUser

Is this the automatically updated created by (ejUser id) field

Declaration
public bool IsRegisteredEjUser { get; }
Property Value
Type Description
bool

IsRequiredForFreetext

Is this field marked as "required for freetext indexing"

Declaration
public bool IsRequiredForFreetext { get; }
Property Value
Type Description
bool

IsSoundexSource

Is this field marked as a source for soundex (metaphone) calculations

Declaration
public bool IsSoundexSource { get; }
Property Value
Type Description
bool

IsSoundexTarget

Is this field marked as a target for soundex (metaphone) calculations

Declaration
public bool IsSoundexTarget { get; }
Property Value
Type Description
bool

IsTableNumber

Is this field the table number part of a 'universal relation' (consisting of table number + record id)

Declaration
public bool IsTableNumber { get; }
Property Value
Type Description
bool

IsUpdatedAssociate

Is this the automatically updated last updated by (associate id) field

Declaration
public bool IsUpdatedAssociate { get; }
Property Value
Type Description
bool

IsUpdatedCount

Field description according to the deployed dictionary.

Declaration
public bool IsUpdatedCount { get; }
Property Value
Type Description
bool

IsUpdatedDate

Is this the automatically updated last updated field

Declaration
public bool IsUpdatedDate { get; }
Property Value
Type Description
bool

IsUpdatedEjUser

Is this the automatically updated last updated by (ejUser id) field

Declaration
public bool IsUpdatedEjUser { get; }
Property Value
Type Description
bool

IsValidFrom

Is this a 'valid from' field

Declaration
public bool IsValidFrom { get; }
Property Value
Type Description
bool

IsValidTo

Is this a 'valid to' field

Declaration
public bool IsValidTo { get; }
Property Value
Type Description
bool

Length

The length of the field

Declaration
public int Length { get; }
Property Value
Type Description
int

Name

Conceptual name of the field

Declaration
public string Name { get; }
Property Value
Type Description
string

PartOfFulltextIndex

Is this field part of a fulltext index/search mechanism? Valid only for databases that support fulltext indexing

Declaration
public bool PartOfFulltextIndex { get; }
Property Value
Type Description
bool

PrivacyTags

Set of privacy tags from the DatabaseModel

Declaration
public HashSet<string> PrivacyTags { get; }
Property Value
Type Description
HashSet<string>

RelationTarget

Gets the first relation table where foreignkey matches this SoField, or null if none exists.

Declaration
public SoTable RelationTarget { get; }
Property Value
Type Description
SoTable

Table

Parent Table, the table which the field belongs to.

Declaration
public SoTable Table { get; }
Property Value
Type Description
SoTable

TextExtension

Is this a name or tooltip field in a list table, that may have its value extended through (max 2) text records? This property is only populated if the preference is ON, so no further tests are needed.

Declaration
public SoField.TextExtensionType TextExtension { get; }
Property Value
Type Description
SoField.TextExtensionType

TimeZoneConvert

DateTime fields may be subject to Timezone-related conversions, which is a quite tricky subject. Functionality is enabled by the AdditionalValue SuperOffice.CD.DSL.Database.DbModelConstants.TimeZoneConvert. More precisely, this attribute marks fields that should be converted to the USER'S PREFERRED TIME, i.e., the timezone dropdown in the Diary. It does not apply to many fields.

Declaration
public bool TimeZoneConvert { get; }
Property Value
Type Description
bool

TimeZoneInterpretation

How should this DateTime value be interpreted when reading from the database. Has no meaning for non-date/time fields

Declaration
public TimeZoneInterpretation TimeZoneInterpretation { get; }
Property Value
Type Description
TimeZoneInterpretation

Type

Get base-type of the field within NetServer. Enumerators are usually of type Int16.

Declaration
public Type Type { get; }
Property Value
Type Description
Type

ViewInSearch

Should this field be indexed by Freetext indexer

Declaration
public bool ViewInSearch { get; }
Property Value
Type Description
bool

Methods

Equals(SoField)

Overrided equals comparer that is valid accross database sessions

Declaration
public bool Equals(SoField other)
Parameters
Type Name Description
SoField other

Object to compare too

Returns
Type Description
bool

True if equal

Equals(object)

Overrided equals comparer that is valid accross database sessions

Declaration
public override bool Equals(object obj)
Parameters
Type Name Description
object obj

Object to compare too

Returns
Type Description
bool

True if equal

Overrides
object.Equals(object)

GetDefaultValue()

Field description according to the deployed dictionary.

Declaration
public object GetDefaultValue()
Returns
Type Description
object

GetEffectiveTextLength()

Field description according to the deployed dictionary.

Declaration
public int GetEffectiveTextLength()
Returns
Type Description
int

GetHashCode()

Hash code valid accross database sessions.

Declaration
public override int GetHashCode()
Returns
Type Description
int

Hash code valid accross database sessions.

Overrides
object.GetHashCode()

ToString()

Name of the field for debug purposes.

Declaration
public override string ToString()
Returns
Type Description
string

Name of the field for debug purposes.

Overrides
object.ToString()

Operators

operator ==(SoField, SoField)

Field description according to the deployed dictionary.

Declaration
public static bool operator ==(SoField x, SoField y)
Parameters
Type Name Description
SoField x
SoField y
Returns
Type Description
bool

operator !=(SoField, SoField)

Field description according to the deployed dictionary.

Declaration
public static bool operator !=(SoField x, SoField y)
Parameters
Type Name Description
SoField x
SoField y
Returns
Type Description
bool

Implements

IEquatable<T>

Extension Methods

EnumUtil.MapEnums<From, To>(From)
Converters.MapEnums<From, To>(From)
© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top