protected virtual string GetGenerationRuleSample <Field, Rule>(PXSelectBase <Rule> view, string userMessage) where Field : IBqlField where Rule : INMatrixGenerationRule, new() { if (Item.Current == null) { return(null); } string oldValue = (string)Item.Cache.GetValue <Field>(Item.Current); if (oldValue != null) { return(oldValue); } var value = GetGenerationRuleSample(view.SelectMain()); var userValue = PXLocalizer.LocalizeFormat(userMessage, value); Item.Cache.SetValue <Field>(Item.Current, userValue); view.View.RequestRefresh(); return(userValue); }