⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 metadatadbprovider.cs

📁 EpiInfo 开源的导航系统远程序,不知道在哪里下的了,分享一下,有兴趣的
💻 CS
📖 第 1 页 / 共 5 页
字号:
                query.Parameters.Add(new QueryParameter("@PageID", DbType.Int32, pageID));
                return db.Select(query);
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not retrieve page check code", ex);
            }
        }

        /// <summary>
        /// Gets a control's check code for the "Before" event
        /// </summary>
        /// <param name="fieldID">Id of the field</param>
        /// <returns>Datatable containing field check code info</returns>
        public DataTable GetFieldCheckCode_Before(int fieldID)
        {
            try
            {
                #region Input Validation
                if (fieldID < 1)
                {
                    throw new ArgumentOutOfRangeException("FieldId");
                }
                #endregion

                Query query = db.CreateQuery("SELECT [CheckCodeBefore], [Name] FROM metaFields " +
                    "WHERE [FieldID] = @FieldID");
                //				DbQuery query = db.CreateQuery("SELECT T.[ControlID], T.[CheckCodeBefore], F.[Name] " +
                //					"FROM metaControls T " +
                //					"LEFT JOIN metaFields F On F.[FieldID] = T.[FieldID] " +
                //					"WHERE T.[FieldID] = @FieldID");
                query.Parameters.Add(new QueryParameter("@FieldID", DbType.Int32, fieldID));
                return db.Select(query);
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not retrieve control check code", ex);
            }
        }

        /// <summary>
        /// Gets a control's check code for the "After" event
        /// </summary>
        /// <param name="fieldID">Id of the field</param>
        /// <returns>Datatable containing field check code info</returns>
        public DataTable GetFieldCheckCode_After(int fieldID)
        {
            try
            {
                #region Input Validation
                if (fieldID < 1)
                {
                    throw new ArgumentOutOfRangeException("FieldId");
                }
                #endregion

                Query query = db.CreateQuery("SELECT [CheckCodeAfter], [Name] FROM metaFields " +
                    //				DbQuery query = db.CreateQuery("SELECT T.[ControlID], T.[CheckCodeAfter], F.[Name] " +
                    //					"FROM metaControls T " +
                    //					"LEFT JOIN metaFields F On F.[FieldID] = T.[FieldID] " +
                    "WHERE [FieldID] = @FieldID");
                query.Parameters.Add(new QueryParameter("@FieldID", DbType.Int32, fieldID));
                return db.Select(query);
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not retrieve control check code", ex);
            }
        }

        /// <summary>
        /// Returns check codes for views, records, and variables
        /// </summary>
        /// <param name="viewID">View ID</param>
        /// <returns>datatable</returns>
        public DataTable GetViewRecordVarCheckCodes(int viewID)
        {
            try
            {
                #region Input Validation
                if (viewID < 1)
                {
                    throw new ArgumentOutOfRangeException("ViewId");
                }
                #endregion

                Query query = db.CreateQuery("SELECT [ViewID], [Name], [CheckCodeBefore], [CheckCodeAfter], " +
                    "[RecordCheckCodeBefore], [RecordCheckCodeAfter], [CheckCodeVariableDefinitions] " +
                    "FROM metaViews " +
                    "WHERE [ViewID] = @ViewID");
                query.Parameters.Add(new QueryParameter("@ViewID", DbType.Int32, viewID));
                return db.Select(query);
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not retrieve check codes for views, records, and variables", ex);
            }
        }

        /// <summary>
        /// Gets a related view based on a relate button
        /// </summary>
        /// <param name="field">The relate button field</param>
        /// <returns>The related view</returns>
        public View GetChildView(RelatedViewField field)
        {
            try
            {
                Query query = db.CreateQuery("SELECT V.[ViewId], V.[Name], V.[CheckCodeBefore], V.[CheckCodeAfter], V.[RecordCheckCodeBefore], V.[RecordCheckCodeAfter], V.[CheckCodeVariableDefinitions], V.[IsRelatedView] FROM metaViews V " +
                    "INNER JOIN metaFields F On F.[RelatedViewId] = V.[ViewId] " +
                    "WHERE F.[FieldId] = @FieldId");
                query.Parameters.Add(new QueryParameter("@FieldId", DbType.Int32, field.Id));
                DataTable table = db.Select(query);
                if (table.Rows.Count > 0)
                {
                    return new View(table.Rows[0], field.GetProject());
                }
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not retrieve related view", ex);
            }
        }

        /// <summary>
        /// Gets all the controls belonging to a page
        /// </summary>
        /// <param name="pageId">Id of the page</param>
        /// <returns>Datatable containing control info</returns>
        public DataTable GetControlsForPage(int pageId)
        {
            try
            {

                #region Input Validation
                if (pageId < 1)
                {
                    throw new ArgumentOutOfRangeException("PageId");
                }
                #endregion

                Query query = db.CreateQuery("SELECT [FieldTypeId], [Name] As FieldName, [ControlTopPositionPercentage] As ControlTop, " +
                    "[ControlLeftPositionPercentage] As ControlLeft, [ControlHeightPercentage], [ControlWidthPercentage], [PromptText], [PromptFontSize], " +
                    "[PromptTopPositionPercentage] AS LabelTop, [PromptLeftPositionPercentage] As LabelLeft, [FieldId] " +
                    "FROM metaFields " +
                    //				DbQuery query = db.CreateQuery("SELECT F.[FieldTypeId], F.[Name] AS FieldName, C.[TopPosition] AS ControlTop, C.[LeftPosition] AS ControlLeft, C.[Height], C.[Width], L.[Text], L.[FontSize], L.[TopPosition] AS LabelTop, L.[LeftPosition] AS LabelLeft, C.[ControlId], L.[LabelId], F.[FieldId] " +
                    //					"FROM (metaFields F LEFT JOIN metaControls C ON C.[FieldId] = F.[FieldId]) LEFT JOIN metaLabels L ON L.[FieldId] = F.[FieldId] " +
                    "WHERE [PageId] = @PageId " +
                    "ORDER BY [FieldTypeId]");
                query.Parameters.Add(new QueryParameter("@PageId", DbType.Int32, pageId));
                return db.Select(query);
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not retrieve controls", ex);
            }
        }

        /// <summary>
        /// Gets the system fields belonging to a view
        /// </summary>
        /// <param name="viewId">Id of the view</param>
        /// <returns>Datatable containing field info</returns>
        public DataTable GetSystemFields(int viewId)
        {
            try
            {
                #region Input Validation
                if (viewId < 1)
                {
                    throw new ArgumentOutOfRangeException("ViewId");
                }
                #endregion

                Query query = db.CreateQuery("SELECT F.[Name], F.[PageId], F.[FieldId], F.[FieldTypeId], F.[CheckCodeAfter] As ControlAfterCheckCode, F.[CheckCodeBefore] As ControlBeforeCheckCode,  " +
                    "F.[ControlTopPositionPercentage], F.[ControlLeftPositionPercentage], F.[ControlHeightPercentage], F.[ControlWidthPercentage] , F.[ControlFontFamily], F.[ControlFontSize], F.[ControlFontStyle], F.[ControlScriptName], " +
                    "F.[PromptTopPositionPercentage], F.[PromptLeftPositionPercentage], F.[PromptText], F.[PromptFontFamily], F.[PromptFontSize], F.[PromptFontStyle], F.[ControlFontFamily], F.[ControlFontSize], F.[ControlFontStyle], F.[PromptScriptName], " +
                    "F.[ShouldRepeatLast], F.[IsRequired], F.[IsReadOnly],  " +
                    "F.[ShouldRetainImageSize], F.[Pattern], F.[MaxLength], F.[ShowTextOnRight], " +
                    "F.[Lower], F.[Upper], F.[RelateCondition], F.[ShouldReturnToParent], F.[RelatedViewId], " +
                    "F.[SourceTableName], F.[CodeColumnName], F.[TextColumnName], " +
                    "F.[Sort], F.[IsExclusiveTable], F.[TabIndex], F.[HasTabStop],F.[SourceFieldId] " +
                    "FROM metaFields F " +
                    "WHERE F.[ViewId] = @ViewId AND F.[PageId] IS NULL");
                query.Parameters.Add(new QueryParameter("@ViewId", DbType.Int32, viewId));
                return db.Select(query);
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not retrieve fields", ex);
            }
        }

        ///// <summary>
        ///// Gets the system fields in a view
        ///// </summary>
        ///// <param name="view">A view object</param>
        ///// <returns>A collection of fields</returns>
        //public  NamedObjectCollection<Field> GetSystemFields(View view)
        //{
        //    try
        //    {
        //        NamedObjectCollection<Field> fields = new NamedObjectCollection<Field>();
        //        DataTable table = GetSystemFields(view.Id);
        //        foreach (DataRow row in table.Rows)
        //        {
        //            switch((MetaFieldType)row["FieldTypeId"])
        //            {
        //                case MetaFieldType.RecStatus:
        //                    fields.Add(new RecStatusField(row, view));
        //                    break;
        //                case MetaFieldType.UniqueKey:
        //                    fields.Add(new UniqueKeyField(row, view));
        //                    break;
        //                default:
        //                    break;
        //            }

        //        }
        //        return (fields);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new GeneralException("Could not retrieve Field collection", ex);
        //    }
        //}

        /// <summary>
        /// Gets all fields belonging to a page
        /// </summary>
        /// <param name="pageId">Id of the page</param>
        /// <returns>Datatable containing field info</returns>
        public DataTable GetFieldsOnPageAsDataTable(int pageId)
        {
            try
            {
                #region Input Validation
                if (pageId < 1)
                {
                    throw new ArgumentOutOfRangeException("PageId");
                }
                #endregion

                Query query = db.CreateQuery("SELECT F.[Name], F.[PageId], F.[FieldId], F.[FieldTypeId], F.[CheckCodeAfter] As ControlAfterCheckCode, F.[CheckCodeBefore] As ControlBeforeCheckCode,  " +
                    "P.[Name] AS PageName, P.[CheckCodeBefore] As PageBeforeCheckCode, P.[CheckCodeAfter] As PageAfterCheckCode, P.[Position], " +
                    "F.[ControlTopPositionPercentage], F.[ControlLeftPositionPercentage], F.[ControlHeightPercentage], F.[ControlWidthPercentage] , F.[ControlFontFamily], F.[ControlFontSize], F.[ControlFontStyle], F.[ControlScriptName], " +
                    "F.[PromptTopPositionPercentage], F.[PromptLeftPositionPercentage], F.[PromptText], F.[PromptFontFamily], F.[PromptFontSize], F.[PromptFontStyle], F.[ControlFontFamily], F.[ControlFontSize], F.[ControlFontStyle], F.[PromptScriptName], " +
                    "F.[ShouldRepeatLast], F.[IsRequired], F.[IsReadOnly],  " +
                    "F.[ShouldRetainImageSize], F.[Pattern], F.[MaxLength], F.[ShowTextOnRight], " +
                    "F.[Lower], F.[Upper], F.[RelateCondition], F.[ShouldReturnToParent], F.[RelatedViewId], " +
                    "F.[SourceTableName], F.[CodeColumnName], F.[TextColumnName], " +
                    "F.[Sort], F.[IsExclusiveTable], F.[TabIndex], F.[HasTabStop],F.[SourceFieldId] " +
                    "FROM ((metaFields F " +
                    "LEFT JOIN metaPages P on P.[PageId] = F.[PageId]) " +
                    "LEFT JOIN metaViews V on V.[ViewId] = P.[ViewId]) " +
                    "WHERE F.[PageId] = @pageID " +
                    "ORDER BY F.[ControlTopPositionPercentage], F.[ControlLeftPositionPercentage]");
                query.Parameters.Add(new QueryParameter("@pageID", DbType.Int32, pageId));
                return db.Select(query);
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not retrieve fields", ex);
            }
        }

        /// <summary>
        /// Returns view's fields as a data table
        /// </summary>
        /// <param name="view"></param>
        /// <returns></returns>
        public DataTable GetFieldsAsDataTable(View view)
        {
            try
            {
                string queryString =
                    "SELECT F.[FieldId], F.[Name] As Name, F.[PageId], F.[ViewId], F.[FieldTypeId], F.[CheckCodeAfter] As ControlAfterCheckCode, F.[CheckCodeBefore] As ControlBeforeCheckCode,  " +
                    "F.[ControlTopPositionPercentage], F.[ControlLeftPositionPercentage], F.[ControlHeightPercentage], F.[ControlWidthPercentage], " +
                    "F.[ControlFontFamily] As ControlFontFamily, F.[ControlFontSize] As ControlFontSize, F.[ControlFontStyle] As ControlFontStyle, F.[ControlScriptName], " +
                    "F.[PromptTopPositionPercentage], F.[PromptLeftPositionPercentage], F.[PromptText], F.[PromptFontFamily], F.[PromptFontSize], F.[PromptFontStyle], F.[ControlFontFamily], F.[ControlFontSize], F.[ControlFontStyle], F.[PromptScriptName], " +
                    "F.[ShouldRepeatLast], F.[IsRequired], F.[IsReadOnly],  " +
                    "F.[ShouldRetainImageSize], F.[Pattern], F.[MaxLength], F.[ShowTextOnRight], " +
                    "F.[Lower], F.[Upper], F.[RelateCondition], F.[ShouldReturnToParent], F.[RelatedViewId], " +
                    "F.[SourceTableName], F.[CodeColumnName], F.[TextColumnName], " +
                    "F.[Sort], F.[IsExclusiveTable], F.[TabIndex], F.[HasTabStop],F.[SourceFieldId], F.[DataTableName] " +
                    "FROM metaFields F Where F.[ViewId] = @viewId " +
                    "ORDER BY F.[ControlTopPositionPercentage], F.[ControlLeftPositionPercentage]";

                Query query = db.CreateQuery(queryString);
                query.Parameters.Add(new QueryParameter("@viewID", DbType.Int32, view.Id));
                return db.Select(query);
            }
            //catch (Exception ex)
            //{
            //	throw new GeneralException("Could not retrieve fields", ex);
            //}
            finally
            {
            }
        }

        /// <summary>
        /// Gets all the fields in a view
        /// </summary>
        /// <param name="view">A view object</param>
        /// <returns>A collection of fields</returns>
        public virtual FieldCollectionMaster GetFields(View view)
        {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -