public void PreLookup(IFormInterface form) { if (HasMasterSource()) { form.CheckMainSource(); form.MainSource.MasterKeyNames = _lookup.MasterKeyNames; form.MainSource.DetailKeyNames = _lookup.DetailKeyNames; form.MainSource.Master = _lookup.Source; } }
public static void DoLookup(ILookup lookupNode, FormInterfaceHandler onFormAccept, FormInterfaceHandler onFormReject, System.Collections.IDictionary state) { bool isReadOnly = (lookupNode is ILookupElement) && ((ILookupElement)lookupNode).ReadOnly; if (!isReadOnly && (lookupNode.Document != String.Empty) && (lookupNode.Source != null) && (lookupNode.Source.DataView != null)) { lookupNode.Source.DataView.Edit(); lookupNode.Source.DataView.RequestSave(); IFormInterface form = lookupNode.HostNode.Session.LoadForm(lookupNode, lookupNode.Document, new FormInterfaceHandler(new LookupContext(lookupNode).PreLookup)); try { // Append the specified state if (state != null) { foreach (KeyValuePair <string, object> entry in state) { form.UserState.Add(entry.Key, entry.Value); } } lookupNode.LookupFormInitialize(form); string[] columnNames = GetColumnNames(lookupNode.MasterKeyNames, lookupNode.GetColumnNames()); string[] lookupColumnNames = GetColumnNames(lookupNode.DetailKeyNames, lookupNode.GetLookupColumnNames()); form.CheckMainSource(); LookupUtility.FindNearestRow ( form.MainSource.DataSource, lookupColumnNames, lookupNode.Source.DataSource, columnNames ); form.Show ( (IFormInterface)lookupNode.FindParent(typeof(IFormInterface)), onFormAccept, onFormReject, FormMode.Query ); } catch { form.HostNode.Dispose(); throw; } } }
protected void InternalBeforeActivateForm(IFormInterface form) { if (form.MainSource != null) { if (!String.IsNullOrEmpty(_filter)) { form.MainSource.Filter = _filter; } if (_mainSourceParams != null) { form.MainSource.Params = _mainSourceParams; } form.MainSource.Default += new DataLinkHandler(DefaultData); } if (_sourceLink != null) { _sourceLink.TargetSource = form.MainSource; } switch (_mode) { case FormMode.Insert: if (_useOpenState || _manageRefreshAfterPost || _manageWriteOnly) { form.CheckMainSource(); if (_useOpenState) { form.MainSource.OpenState = DAE.Client.DataSetState.Insert; } if (_manageRefreshAfterPost) { form.MainSource.RefreshAfterPost = false; } if (_manageWriteOnly) { form.MainSource.IsWriteOnly = true; } } break; case FormMode.Edit: if (_useOpenState || _manageRefreshAfterPost) { form.CheckMainSource(); if (_useOpenState) { form.MainSource.OpenState = DAE.Client.DataSetState.Edit; } if (_manageRefreshAfterPost) { form.MainSource.RefreshAfterPost = false; } } break; } if (_beforeFormActivated != null) { _beforeFormActivated.Execute(this, new EventParams("AForm", form)); } }