コード例 #1
0
        protected virtual void BuildFullLookup
        (
            ElaboratedReference reference,
            string[] columnNames,
            string[] lookupColumnNames,
            string[] masterKeyNames,
            string[] detailKeyNames,
            string pageType,
            string titleSeed,
            bool readOnly
        )
        {
            if (reference.IsEmbedded)
            {
                string             lookupGroupName    = _derivationInfo.ElaboratedExpression.Groups.ResolveGroupName(String.Format("{0}{1}", reference.ElaboratedName, "Group"));
                LookupGroupElement lookupGroupElement = _rootElement.FindElement(lookupGroupName) as LookupGroupElement;
                if (lookupGroupElement == null)
                {
                    lookupGroupElement             = new LookupGroupElement(lookupGroupName);
                    lookupGroupElement.ElementType = DerivationUtility.GetTag(reference.GroupMetaData, "ElementType", pageType, reference.ReferenceType.ToString(), DerivationUtility.GetTag(reference.Reference.MetaData, "ElementType", pageType, reference.ReferenceType.ToString(), "FullLookup"));

                    CreateContainerElement(lookupGroupElement, _derivationInfo.ElaboratedExpression.Groups[lookupGroupName], titleSeed, pageType, readOnly);

                    MetaData metaData = DerivationUtility.ExtractTags(reference.Reference.MetaData, lookupGroupElement.ElementType, pageType, reference.ReferenceType.ToString());
                    PrepareElement(lookupGroupElement, metaData, reference.Reference.MetaData, titleSeed, pageType, reference.ReferenceType.ToString(), readOnly);

                    lookupGroupElement.Properties.SafeAdd(new Tag("Source", _derivationInfo.MainSourceName));
                    lookupGroupElement.Source = lookupGroupElement.Properties.GetTag("Source").Value;
                    lookupGroupElement.Properties.SafeAdd(new Tag("ColumnNames", StringArrayToNames(columnNames)));
                    lookupGroupElement.ColumnNames = lookupGroupElement.Properties.GetTag("ColumnNames").Value;
                    lookupGroupElement.Properties.SafeAdd(new Tag("LookupColumnNames", StringArrayToNames(lookupColumnNames)));
                    lookupGroupElement.LookupColumnNames = lookupGroupElement.Properties.GetTag("LookupColumnNames").Value;
                    lookupGroupElement.Properties.SafeAdd(new Tag("Document", GetLookupDocument(reference, masterKeyNames, detailKeyNames)));
                    lookupGroupElement.LookupDocument = lookupGroupElement.Properties.GetTag("LookupDocument").Value;
                    if (masterKeyNames.Length > 0)
                    {
                        lookupGroupElement.Properties.SafeAdd(new Tag("MasterKeyNames", StringArrayToNames(masterKeyNames)));
                        lookupGroupElement.MasterKeyNames = lookupGroupElement.Properties.GetTag("MasterKeyNames").Value;
                        lookupGroupElement.Properties.SafeAdd(new Tag("DetailKeyNames", StringArrayToNames(detailKeyNames)));
                        lookupGroupElement.DetailKeyNames = lookupGroupElement.Properties.GetTag("DetailKeyNames").Value;
                    }
                    AddElement(lookupGroupElement, GetParentGroupName(lookupGroupName), titleSeed, pageType, readOnly);
                }
            }
        }
コード例 #2
0
 protected override void BuildQuickLookup
 (
     ElaboratedTableVarColumn column,
     ElaboratedReference reference,
     string[] columnNames,
     string[] lookupColumnNames,
     string[] masterKeyNames,
     string[] detailKeyNames,
     string pageType,
     string titleSeed,
     bool readOnly
 )
 {
     if (reference.IsEmbedded)
     {
         string lookupGroupName = _derivationInfo.ElaboratedExpression.Groups.ResolveGroupName(String.Format("{0}{1}", reference.ElaboratedName, "Group"));
         EnsureGroups(lookupGroupName, titleSeed, pageType, readOnly);
     }
     BuildColumnElement(column, pageType, titleSeed, readOnly);
 }
コード例 #3
0
        protected virtual void BuildQuickLookup
        (
            ElaboratedTableVarColumn column,
            ElaboratedReference reference,
            string[] columnNames,
            string[] lookupColumnNames,
            string[] masterKeyNames,
            string[] detailKeyNames,
            string pageType,
            string titleSeed,
            bool readOnly
        )
        {
            // Prepare the quick lookup group
            if (reference.IsEmbedded)
            {
                string lookupGroupName = _derivationInfo.ElaboratedExpression.Groups.ResolveGroupName(String.Format("{0}{1}", reference.ElaboratedName, "Group"));
                EnsureGroups(lookupGroupName, titleSeed, pageType, readOnly);
                GroupElement groupElement = _rootElement.FindElement(lookupGroupName) as GroupElement;

                MetaData groupMetaData = DerivationUtility.ExtractTags(reference.Reference.MetaData, groupElement.ElementType, pageType, reference.ReferenceType.ToString());
                PrepareElement(groupElement, groupMetaData, reference.Reference.MetaData, titleSeed, pageType, reference.ReferenceType.ToString(), readOnly);
            }
            LookupColumnElement lookupGroup = new LookupColumnElement(String.Format("{0}Column{1}_Lookup", _derivationInfo.MainSourceName, column.ElaboratedName));

            lookupGroup.ElementType = DerivationUtility.GetTag(reference.Reference.MetaData, "ElementType", pageType, reference.ReferenceType.ToString(), "QuickLookup");
            DerivationUtility.ExtractProperties(reference.Reference.MetaData, lookupGroup.ElementType, pageType, lookupGroup.Properties);
            lookupGroup.Properties.SafeAdd(new Tag("Source", _derivationInfo.MainSourceName));
            lookupGroup.Source = lookupGroup.Properties.GetTag("Source").Value;
            lookupGroup.Properties.SafeAdd(new Tag("ColumnName", Schema.Object.Qualify(column.Column.Name, column.ElaboratedTableVar.ElaboratedName)));
            lookupGroup.ColumnName = lookupGroup.Properties.GetTag("ColumnName").Value;
            lookupGroup.Properties.SafeAdd(new Tag("LookupColumnName", Schema.Object.Qualify(reference.Reference.TargetKey.Columns[reference.Reference.SourceKey.Columns.IndexOf(column.Column.Name)].Name, DerivationUtility.MainElaboratedTableName)));
            lookupGroup.LookupColumnName = lookupGroup.Properties.GetTag("LookupColumnName").Value;
            lookupGroup.Properties.SafeAdd(new Tag("Document", GetLookupDocument(reference, masterKeyNames, detailKeyNames)));
            lookupGroup.LookupDocument = lookupGroup.Properties.GetTag("Document").Value;
            if (masterKeyNames.Length > 0)
            {
                lookupGroup.Properties.SafeAdd(new Tag("MasterKeyNames", StringArrayToNames(masterKeyNames)));
                lookupGroup.MasterKeyNames = lookupGroup.Properties.GetTag("MasterKeyNames").Value;
                lookupGroup.Properties.SafeAdd(new Tag("DetailKeyNames", StringArrayToNames(detailKeyNames)));
                lookupGroup.DetailKeyNames = lookupGroup.Properties.GetTag("DetailKeyNames").Value;
            }

            if (column.ReadOnly || readOnly || Convert.ToBoolean(DerivationUtility.GetTag(column.Column.MetaData, "ReadOnly", pageType, "False")))
            {
                lookupGroup.Properties.AddOrUpdate("ReadOnly", "True");
            }

            MetaData metaData = DerivationUtility.ExtractTags(reference.Reference.MetaData, lookupGroup.ElementType, pageType, reference.ReferenceType.ToString());

            PrepareElement(lookupGroup, metaData, reference.Reference.MetaData, titleSeed, pageType, reference.ReferenceType.ToString(), readOnly);

            if (!Boolean.Parse(DerivationUtility.GetTag(metaData, "Visible", pageType, "True")))
            {
                lookupGroup.Properties.AddOrUpdate("Visible", "False");
            }

            AddElement(lookupGroup, column.GroupName, titleSeed, pageType, readOnly);

            // Build the element
            column.GroupName = lookupGroup.Name;
            Element controlElement = BuildColumnElement(column, pageType, titleSeed, readOnly);

            if (!controlElement.Properties.Contains("TitleAlignment"))
            {
                switch (controlElement.ElementType)
                {
                case "TextBox":
                case "DateTimeBox":
                case "NumericTextBox": controlElement.Properties.Add(new Tag("TitleAlignment", "None")); break;
                }
            }

            // Use the column's title for the group (only in the case of a quick lookup)
            lookupGroup.Title = controlElement.Title;

            // If the control has a flow break specified, push it onto the lookup group (only in the case of a quick lookup)
            if (controlElement.FlowBreak)
            {
                lookupGroup.FlowBreak = true;
            }
        }
コード例 #4
0
        protected string GetLookupDocument(ElaboratedReference reference, string[] masterKeyNames, string[] detailKeyNames)
        {
            string pageType =
                Boolean.Parse
                (
                    DerivationUtility.GetTag
                    (
                        reference.Reference.MetaData,
                        "UseList",
                        "",
                        reference.ReferenceType.ToString(),
                        DerivationUtility.GetTag
                        (
                            reference.TargetElaboratedTableVar.TableVar.MetaData,
                            "UseList",
                            "False"
                        )
                    )
                ) ? DerivationUtility.List : DerivationUtility.Browse;

            string query =
                DerivationUtility.GetTag
                (
                    reference.Reference.MetaData,
                    "Query",
                    pageType,
                    reference.ReferenceType.ToString(),
                    DerivationUtility.GetTag
                    (
                        reference.TargetElaboratedTableVar.TableVar.MetaData,
                        "Query",
                        pageType,
                        reference.Reference.TargetTable.Name
                    )
                );

            string localMasterKeyNames =
                DerivationUtility.GetTag
                (
                    reference.Reference.MetaData,
                    "MasterKeyNames",
                    pageType,
                    reference.ReferenceType.ToString(),
                    StringArrayToNames(masterKeyNames)
                );

            string localDetailKeyNames =
                DerivationUtility.GetTag
                (
                    reference.Reference.MetaData,
                    "DetailKeyNames",
                    pageType,
                    reference.ReferenceType.ToString(),
                    StringArrayToNames(detailKeyNames)
                );

            bool elaborate =
                Boolean.Parse
                (
                    DerivationUtility.GetTag
                    (
                        reference.Reference.MetaData,
                        "Elaborate",
                        pageType,
                        reference.ReferenceType.ToString(),
                        DerivationUtility.GetTag
                        (
                            reference.TargetElaboratedTableVar.TableVar.MetaData,
                            "Elaborate",
                            pageType,
                            "True"
                        )
                    )
                );

            if (localMasterKeyNames != String.Empty)
            {
                return
                    (DerivationUtility.GetTag
                     (
                         reference.Reference.MetaData,
                         "Document",
                         pageType,
                         reference.ReferenceType.ToString(),
                         _derivationInfo.BuildDerivationExpression
                         (
                             pageType,
                             query,
                             localMasterKeyNames,
                             localDetailKeyNames,
                             elaborate
                         )
                     ));
            }
            else
            {
                return
                    (DerivationUtility.GetTag
                     (
                         reference.Reference.MetaData,
                         "Document",
                         pageType,
                         reference.ReferenceType.ToString(),
                         DerivationUtility.GetTag
                         (
                             reference.TargetElaboratedTableVar.TableVar.MetaData,
                             "Document",
                             pageType,
                             _derivationInfo.BuildDerivationExpression
                             (
                                 pageType,
                                 query,
                                 "",
                                 "",
                                 elaborate
                             )
                         )
                     ));
            }
        }