예제 #1
0
        private string ProcessSelectTag(SWSelectTag tag, DBContent.TagValueItemTypes htmlType, out string errormessage)
        {
            errormessage = "";

            switch (htmlType)
            {
            case DBContent.TagValueItemTypes.Template:
                return(ProcessSelectTag_Template(tag, out errormessage));

            case DBContent.TagValueItemTypes.Form:
                return(ProcessSelectTag_Form(tag, out errormessage));
            }
            return("");
        }
예제 #2
0
        private string ProcessSelectTag_Form(SWSelectTag tag, out string errormessage)
        {
            errormessage = "";
            if (tag == null)
            {
                return("");
            }


            tag = (from t in this.ReportItem.FormTags
                   where tag.Name.ToLower().Equals(t.Name.ToLower()) &&
                   tag.TagType.Equals(t.TagType)
                   select t as SWSelectTag).FirstOrDefault();

            if (tag == null)
            {
                return("");
            }

            string result = String.Format("<select class=\"form-control\" name=\"{0}\" onchange=\"this.form.submit()\">", tag.Name);

            DbDataReader reader = null;
            DbConnection conn   = null;

            try
            {
                reader = ConnectionItem.GetReader(this.ReportItem.ConnectionItem, tag.Value, out errormessage, out conn, this.SetupQueryParameters(tag as SWBaseSQLTag));
                if (reader != null && reader.FieldCount >= 2)
                {
                    while (reader.Read())
                    {
                        if (!this.PhysicalFormValues.ContainsKey(tag.Name))
                        {
                            this.PhysicalFormValues.Add(tag.Name, reader[0].ToString());
                        }

                        string selected = "";
                        if (reader[0].ToString().Equals(this.PhysicalFormValues[tag.Name]))
                        {
                            selected = "selected";
                        }
                        result += String.Format("<option {2} value=\"{0}\">{1}</option>",
                                                WebUtility.HtmlEncode(reader[0].ToString()),
                                                WebUtility.HtmlEncode(reader[1].ToString()), selected);
                    }
                }
            }
            catch (Exception ex)
            {
                errormessage = ex.Message;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                    reader.Dispose();
                    reader = null;
                }

                if (conn != null)
                {
                    conn.Close();
                    conn = null;
                }
            }
            result += "</select>";
            return(result);
        }
예제 #3
0
        private string ProcessSelectTag_Template(SWSelectTag tag, out string errormessage)
        {
            errormessage = "";
            if (tag == null)
            {
                return("");
            }

            tag = (from t in this.ReportItem.FormTags
                   where tag.Name.ToLower().Equals(t.Name.ToLower()) &&
                   tag.TagType.Equals(t.TagType)
                   select t as SWSelectTag).FirstOrDefault();

            if (tag == null)
            {
                return("");
            }

            if (!this.PhysicalFormValues.ContainsKey(tag.Name))
            {
                return("");
            }

            DbDataReader reader = null;
            DbConnection conn   = null;

            try
            {
                reader = ConnectionItem.GetReader(this.ReportItem.ConnectionItem, tag.Value, out errormessage, out conn, this.SetupQueryParameters(tag as SWBaseSQLTag));
                if (reader != null && reader.FieldCount >= 2)
                {
                    while (reader.Read())
                    {
                        if (reader[0].ToString().Equals(this.PhysicalFormValues[tag.Name]))
                        {
                            return(WebUtility.HtmlEncode(reader[1].ToString()));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                errormessage = ex.Message;
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                    reader.Dispose();
                    reader = null;
                }

                if (conn != null)
                {
                    conn.Close();
                    conn = null;
                }
            }
            return("");
        }