/// <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); }