Example #1
0
        /// <summary>
        /// compute link
        /// </summary>
        /// <param name="record"></param>
        /// <returns></returns>
        internal override UnitComputeResult Compute(IRecord record, bool checkRange, bool recompute, bool computeInitExpressions)
        {
            bool linkSuccess = false;
            UnitComputeResult unitComputeResult = new UnitComputeResult();

            if (View.DataviewHeader.Mode != LnkMode.Create && View.ShouldPerformLink)
            {
                linkSuccess = FetchLinkedRecord(record, recompute);
            }

            if (!linkSuccess)
            {
                DataviewSynchronizer.InitLinkFields(View.DataviewHeader, record);
            }

            if (checkRange)
            {
                unitComputeResult = CheckRangeLinkFields(record);
            }

            DataviewSynchronizer.SetLinkReturnValue(View.DataviewHeader, record, linkSuccess, recompute);


            return(unitComputeResult);
        }