protected void bt_Save_Click(object sender, EventArgs e) { UD_TableListBLL bll; if (ViewState["TableID"] == null) { bll = new UD_TableListBLL(); } else { bll = new UD_TableListBLL((Guid)ViewState["TableID"]); } UC_DetailView1.GetData(bll.Model); if (ViewState["TableID"] == null) { bll.Add(); } else { bll.Update(); } Response.Redirect("TableDetail.aspx?TableID=" + bll.Model.ID.ToString()); }
private void BindGrid() { UD_TableListBLL bll = new UD_TableListBLL((Guid)ViewState["TableID"]); gv_List.BindGrid<UD_ModelFields>( bll.GetModelFields()); if (bll.Model.ExtFlag=="N") bt_OK.Visible = false; }
protected void rbl_RelationType_SelectedIndexChanged(object sender, EventArgs e) { switch (rbl_RelationType.SelectedValue) { case "1": tr_1.Visible = true; tr_2.Visible = false; ddl_RelationTableName.DataTextField = "Name"; ddl_RelationTableName.DataValueField = "TableName"; ddl_RelationTableName.DataSource = DictionaryBLL.Dictionary_Type_GetAllList(); ddl_RelationTableName.DataBind(); break; case "2": tr_1.Visible = true; tr_2.Visible = true; ddl_RelationTableName.DataTextField = "DisplayName"; ddl_RelationTableName.DataValueField = "Name"; ddl_RelationTableName.DataSource = UD_TableListBLL.GetModelList(""); ddl_RelationTableName.DataBind(); ddl_RelationTableName_SelectedIndexChanged(null, null); break; case "3": tr_1.Visible = false; tr_2.Visible = false; break; } }
private void BindDropDown() { ddl_TableName.DataSource = UD_TableListBLL.GetModelList ("ID IN(SELECT TableID FROM MCS_Reports.dbo.Rpt_DataSetTables WHERE DataSet='" + ViewState["ID"].ToString() + "')"); ddl_TableName.DataBind(); if (ddl_TableName.Items.Count > 0) { ddl_TableName_SelectedIndexChanged(null, null); } }
protected void bt_AddToDataSet_Click(object sender, EventArgs e) { IList <Rpt_DataSetFields> datasetfields = new Rpt_DataSetBLL((Guid)ViewState["ID"]).GetFields(); int maxsortid = 0; if (datasetfields.Count > 0) { maxsortid = datasetfields.Max(p => p.ColumnSortID); } foreach (ListItem item in cbxl_Fields.Items) { if (item.Selected) { Guid fieldid = new Guid(item.Value); UD_ModelFields f = new UD_ModelFieldsBLL(fieldid).Model; if (f != null) { string fieldname = new UD_TableListBLL(f.TableID).Model.ModelClassName + "_" + f.FieldName; if (datasetfields.FirstOrDefault(p => p.FieldName == fieldname) != null) { continue; } maxsortid++; Rpt_DataSetFieldsBLL fieldbll = new Rpt_DataSetFieldsBLL(); fieldbll.Model.DataSet = (Guid)ViewState["ID"]; fieldbll.Model.FieldID = f.ID; fieldbll.Model.FieldName = fieldname; fieldbll.Model.DisplayName = f.DisplayName; fieldbll.Model.DataType = f.DataType; fieldbll.Model.IsComputeField = "N"; fieldbll.Model.ColumnSortID = maxsortid; if (f.RelationType == 1 || f.RelationType == 2) { fieldbll.Model.DisplayMode = 2; } else { fieldbll.Model.DisplayMode = 1; } fieldbll.Model.Description = f.Description; fieldbll.Add(); } } } BindGrid(); new Rpt_DataSetBLL((Guid)ViewState["ID"]).ClearCache(); }
private void BindGrid() { UD_TableListBLL bll = new UD_TableListBLL((Guid)ViewState["TableID"]); gv_List.BindGrid <UD_ModelFields>(bll.GetModelFields()); if (bll.Model.ExtFlag == "N") { bt_OK.Visible = false; } }
private void BindDropDown() { ddl_TableName.DataSource = UD_TableListBLL.GetModelList ("ID IN(SELECT TableID FROM MCS_Reports.dbo.Rpt_DataSetTables WHERE DataSet='" + ViewState["ID"].ToString() + "')"); ddl_TableName.DataBind(); ddl_TableName_SelectedIndexChanged(null, null); ddl_Param.DataSource = new Rpt_DataSetBLL((Guid)ViewState["ID"]).GetParams(); ddl_Param.DataBind(); if (ddl_Param.Items.Count == 0) { rbl_ValueFrom.SelectedValue = "M"; rbl_ValueFrom.Enabled = false; } }
private void BindGrid() { string condition = ""; if (tbx_Find.Text != "") { condition = "UD_TableList.Name like '%" + tbx_Find.Text + "%' OR UD_TableList.DisplayName like '%" + tbx_Find.Text + "%' OR UD_TableList.ModelName like '%" + tbx_Find.Text + "%'"; } IList <UD_TableList> source = UD_TableListBLL.GetModelList(condition); gv_List.PageIndex = (int)ViewState["PageIndex"]; gv_List.TotalRecordCount = source.Count; gv_List.BindGrid <UD_TableList>(source); }
private void BindDropDown() { if (ViewState["TableName"] != null) { IList <UD_TableList> tablelist = UD_TableListBLL.GetModelList("Name='" + ViewState["TableName"].ToString() + "'"); if (tablelist.Count > 0) { ViewState["TableID"] = tablelist[0].ID; IList <UD_ModelFields> fieldlist = UD_ModelFieldsBLL.GetModelList("Tableid='" + tablelist[0].ID + "'"); ddl_FieldName.DataSource = fieldlist; ddl_FieldName.DataTextField = "DisplayName"; ddl_FieldName.DataValueField = "ID"; ddl_FieldName.DataBind(); ddl_FieldName.Items.Insert(0, new ListItem("所有", "0")); } } }
protected void bt_AddToDataSet_Click(object sender, EventArgs e) { IList<Rpt_DataSetFields> datasetfields = new Rpt_DataSetBLL((Guid)ViewState["ID"]).GetFields(); int maxsortid = 0; if (datasetfields.Count > 0) maxsortid = datasetfields.Max(p => p.ColumnSortID); foreach (ListItem item in cbxl_Fields.Items) { if (item.Selected) { Guid fieldid = new Guid(item.Value); UD_ModelFields f = new UD_ModelFieldsBLL(fieldid).Model; if (f != null) { string fieldname = new UD_TableListBLL(f.TableID).Model.ModelClassName + "_" + f.FieldName; if (datasetfields.FirstOrDefault(p => p.FieldName == fieldname) != null) continue; maxsortid++; Rpt_DataSetFieldsBLL fieldbll = new Rpt_DataSetFieldsBLL(); fieldbll.Model.DataSet = (Guid)ViewState["ID"]; fieldbll.Model.FieldID = f.ID; fieldbll.Model.FieldName = fieldname; fieldbll.Model.DisplayName = f.DisplayName; fieldbll.Model.DataType = f.DataType; fieldbll.Model.IsComputeField = "N"; fieldbll.Model.ColumnSortID = maxsortid; if (f.RelationType == 1 || f.RelationType == 2) fieldbll.Model.DisplayMode = 2; else fieldbll.Model.DisplayMode = 1; fieldbll.Model.Description = f.Description; fieldbll.Add(); } } } BindGrid(); new Rpt_DataSetBLL((Guid)ViewState["ID"]).ClearCache(); }
protected void bt_Save_Click(object sender, EventArgs e) { UD_TableListBLL bll; if (ViewState["TableID"] == null) bll = new UD_TableListBLL(); else bll = new UD_TableListBLL((Guid)ViewState["TableID"]); UC_DetailView1.GetData(bll.Model); if (ViewState["TableID"] == null) { bll.Add(); } else { bll.Update(); } Response.Redirect("TableDetail.aspx?TableID=" + bll.Model.ID.ToString()); }
protected void ddl_TableName_SelectedIndexChanged(object sender, EventArgs e) { IList <UD_ModelFields> fields = UD_ModelFieldsBLL.GetModelList("TableID='" + ddl_TableName.SelectedValue + "'"); foreach (Rpt_DataSetFields f in new Rpt_DataSetBLL((Guid)ViewState["ID"]).GetFields()) { UD_ModelFields field = fields.FirstOrDefault(p => p.ID == f.FieldID); if (field != null) { UD_TableList table = new UD_TableListBLL(field.RelationTableName).Model; if (field.RelationType == 2 && table != null && table.TreeFlag == "Y") { continue; } fields.Remove(field); } } cbxl_Fields.DataSource = fields; cbxl_Fields.DataBind(); }
protected void btn_addsearch_Click(object sender, EventArgs e) { if (ddl_Field.SelectedValue == "0") { return; } //添加条件 ListItem lt = new ListItem(); #region 条件选择 UD_TableList table = new UD_TableListBLL(new Guid(ddl_TableName.SelectedValue), true).Model; if (table == null) { return; } UD_ModelFields modelfield = new UD_ModelFieldsBLL(new Guid(ddl_Field.SelectedValue), true).Model; if (modelfield == null) { return; } //字段全称 string fielddisplayname = table.DisplayName + "." + modelfield.DisplayName; string fieldfullname = ""; if (modelfield.Flag == "Y") { fieldfullname = table.Name + "." + modelfield.FieldName; //实体字段 } else { fieldfullname = "MCS_SYS.dbo.UF_Spilt(" + table.Name + ".ExtPropertys,'|'," + modelfield.Position.ToString() + ")"; } if (rbl_ValueFrom.SelectedValue == "M") { #region 从手工设定中取值 switch (modelfield.RelationType) { case 1: #region 字典关联 if (cbl_SearchValue.SelectedIndex != -1) { lt.Text = fielddisplayname + " 包含 ( "; lt.Value = fieldfullname + " IN ( "; foreach (ListItem item in cbl_SearchValue.Items) { if (item.Selected) { lt.Text += item.Text + ","; lt.Value += "'" + item.Value + "',"; } } lt.Text = lt.Text.Substring(0, lt.Text.Length - 1); lt.Value = lt.Value.Substring(0, lt.Value.Length - 1); lt.Text += ")"; lt.Value += ")"; } break; #endregion case 2: #region 实体表关联 lt.Text = fielddisplayname + " 为 "; lt.Value = fieldfullname + " = "; if (!string.IsNullOrEmpty(modelfield.SearchPageURL)) { //通过查询控件查询 lt.Text += MCSSelectControl1.SelectText; lt.Value += "'" + MCSSelectControl1.SelectValue + "'"; } else if (new UD_TableListBLL(modelfield.RelationTableName).Model.TreeFlag == "Y") { #region 通过树形结构查询 if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { if (ddl_TreeLevel.SelectedValue == "0") { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " = " + MCSTreeControl1.SelectValue; } else if (ddl_TreeLevel.SelectedValue == "100") { //所属于 lt.Text = fielddisplayname + " " + ddl_TreeLevel.SelectedItem.Text + " " + MCSTreeControl1.SelectText; lt.Value = "MCS_SYS.dbo.UF_IsChildOrganizeCity(" + MCSTreeControl1.SelectValue + "," + fieldfullname + ") = 0"; } else { //指定级别上级 lt.Text = fielddisplayname + " 的 " + ddl_TreeLevel.SelectedItem.Text + " 为 " + MCSTreeControl1.SelectText; lt.Value = "MCS_SYS.dbo.UF_GetSuperOrganizeCityByLevel02(" + fieldfullname + "," + ddl_TreeLevel.SelectedValue + ") = " + MCSTreeControl1.SelectValue; } } else if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { if (ddl_TreeLevel.SelectedValue == "0") { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " = " + MCSTreeControl1.SelectValue; } else if (ddl_TreeLevel.SelectedValue == "100") { //所属于 lt.Text = fielddisplayname + " " + ddl_TreeLevel.SelectedItem.Text + " " + MCSTreeControl1.SelectText; lt.Value = "MCS_SYS.dbo.UF_IsChildOfficialCityCity(" + MCSTreeControl1.SelectValue + "," + fieldfullname + ") = 0"; } else { //指定级别上级 lt.Text = fielddisplayname + " 的 " + ddl_TreeLevel.SelectedItem.Text + " 为 " + MCSTreeControl1.SelectText; lt.Value = "MCS_SYS.dbo.UF_GetSuperOfficialCityByLevel02(" + fieldfullname + "," + ddl_TreeLevel.SelectedValue + ") = " + MCSTreeControl1.SelectValue; } } else { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " IN ("; DataTable dt = TreeTableBLL.GetAllChildByNodes(modelfield.RelationTableName, "ID", "SuperID", MCSTreeControl1.SelectValue); foreach (DataRow dr in dt.Rows) { lt.Value += "'" + dr[0].ToString() + "',"; } lt.Value += "'" + MCSTreeControl1.SelectValue + "')"; } #endregion } else { #region 其他关联方式的实体表 if (cbl_SearchValue.SelectedIndex != -1) { lt.Text = fielddisplayname + " 包含 ( "; lt.Value = fieldfullname + " IN ( "; foreach (ListItem item in cbl_SearchValue.Items) { if (item.Selected) { lt.Text += item.Text + ","; lt.Value += "'" + item.Value + "',"; } } lt.Text = lt.Text.Substring(0, lt.Text.Length - 1); lt.Value = lt.Value.Substring(0, lt.Value.Length - 1); lt.Text += ")"; lt.Value += ")"; } #endregion } break; #endregion default: #region 非关联字段 lt.Text = fielddisplayname + " " + ddl_op.SelectedItem.Text + " (" + tbx_searchvalue.Text + ")"; lt.Value = fieldfullname + " = "; if (ddl_op.SelectedValue != "like") { if (tbx_searchvalue.Text.StartsWith("@")) { lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + tbx_searchvalue.Text; } else { lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + " '" + tbx_searchvalue.Text + "'"; } } else { lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + " '%" + tbx_searchvalue.Text + "%'"; } break; #endregion } #endregion } else { #region 从参数中取值 switch (modelfield.RelationType) { case 1: #region 字典关联 lt.Text = fielddisplayname + " = " + ddl_Param.SelectedValue; lt.Value = fieldfullname + " = " + ddl_Param.SelectedValue; #endregion break; case 2: #region 实体表关联 lt.Text = fielddisplayname + " 为 "; lt.Value = fieldfullname + " = "; if (ddl_TreeLevel.Visible) { #region 管理片区及行政城市选项 if (ddl_TreeLevel.SelectedValue == "0") { //当前级 lt.Text += ddl_Param.SelectedValue; lt.Value = fieldfullname + " = " + ddl_Param.SelectedValue; } else if (ddl_TreeLevel.SelectedValue == "100") { //所属于 lt.Text = fielddisplayname + " " + ddl_TreeLevel.SelectedItem.Text + " " + ddl_Param.SelectedValue; if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { lt.Value = "MCS_SYS.dbo.UF_IsChildOrganizeCity(" + ddl_Param.SelectedValue + "," + fieldfullname + ") = 0"; } else if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { lt.Value = "MCS_SYS.dbo.UF_IsChildOfficialCityCity(" + ddl_Param.SelectedValue + "," + fieldfullname + ") = 0"; } } else { lt.Text = fielddisplayname + " 的 " + ddl_TreeLevel.SelectedItem.Text + " 为 " + ddl_Param.SelectedValue; //指定级别上级 if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { lt.Value = "MCS_SYS.dbo.UF_GetSuperOrganizeCityByLevel02(" + fieldfullname + "," + ddl_TreeLevel.SelectedValue + ") = " + ddl_Param.SelectedValue; } else if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { lt.Value = "MCS_SYS.dbo.UF_GetSuperOfficialCityByLevel02(" + fieldfullname + "," + ddl_TreeLevel.SelectedValue + ") = " + ddl_Param.SelectedValue; } } #endregion } else { lt.Text += ddl_Param.SelectedValue; lt.Value = fieldfullname + " = " + ddl_Param.SelectedValue; } break; #endregion default: #region 非关联字段 lt.Text = fielddisplayname + " " + ddl_op.SelectedItem.Text + " (" + ddl_Param.SelectedValue + ")"; lt.Value = fieldfullname + " = "; if (ddl_op.SelectedValue != "like") { lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + ddl_Param.SelectedValue; } else { lt.Value = fieldfullname + " LIKE '%'+" + ddl_Param.SelectedValue + "+'%'"; } break; #endregion } #endregion } #endregion if (!string.IsNullOrEmpty(lt.Text)) { lbx_search.Items.Add(lt); } }
protected void btn_addsearch_Click(object sender, EventArgs e) { if (ddl_Field.SelectedValue == "0") { return; } //添加条件 ListItem lt = new ListItem(); #region 条件选择 UD_TableList table = new UD_TableListBLL(new Guid(ddl_TableName.SelectedValue), true).Model; if (table == null) { return; } UD_ModelFields modelfield = null; try { modelfield = new UD_ModelFieldsBLL(new Guid(ddl_Field.SelectedValue), true).Model; } catch { } if (modelfield == null) { //自定义字段 lt.Text = ddl_Field.SelectedItem.Text + " " + ddl_op.SelectedItem.Text + " ('" + tbx_searchvalue.Text + "')"; lt.Value = ddl_Field.SelectedValue + " " + ddl_op.SelectedItem.Value + " '" + tbx_searchvalue.Text + "'"; } else { string fielddisplayname = table.DisplayName + "." + modelfield.DisplayName; string fieldfullname = ""; if (modelfield.Flag == "Y") { fieldfullname = table.Name + "." + modelfield.FieldName; //实体字段 } else { fieldfullname = "MCS_SYS.dbo.UF_Spilt(" + table.Name + ".ExtPropertys,'|'," + modelfield.Position.ToString() + ")"; } if (ddl_op.SelectedValue == "NOTNULL") { lt.Text = fielddisplayname + " 不为空"; lt.Value = " ISNULL(" + fieldfullname + ",'')<>'' "; lbx_search.Items.Add(lt); return; } if (ddl_op.SelectedValue == "ISNULL") { lt.Text = fielddisplayname + " 为空"; lt.Value = " ISNULL(" + fieldfullname + ",'')='' "; lbx_search.Items.Add(lt); return; } switch (modelfield.RelationType) { case 1: #region 字典关联 if (cbl_SearchValue.SelectedIndex != -1) { lt.Text = fielddisplayname + " 包含 ( "; lt.Value = fieldfullname + " IN ( "; foreach (ListItem item in cbl_SearchValue.Items) { if (item.Selected) { lt.Text += item.Text + ","; lt.Value += "'" + item.Value + "',"; } } lt.Text = lt.Text.Substring(0, lt.Text.Length - 1); lt.Value = lt.Value.Substring(0, lt.Value.Length - 1); lt.Text += ")"; lt.Value += ")"; } break; #endregion case 2: #region 实体表关联 lt.Text = fielddisplayname + " 为 "; lt.Value = fieldfullname + " = "; if (!string.IsNullOrEmpty(modelfield.SearchPageURL)) { //通过查询控件查询 lt.Text += MCSSelectControl1.SelectText; lt.Value += "'" + MCSSelectControl1.SelectValue + "'"; } else if (new UD_TableListBLL(modelfield.RelationTableName).Model.TreeFlag == "Y") { #region 通过树形结构查询 if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity" || modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { if (ddl_TreeLevel.SelectedValue == "0") { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " = " + MCSTreeControl1.SelectValue; } else if (ddl_TreeLevel.SelectedValue == "100") { //所属于 lt.Text = fielddisplayname + " " + ddl_TreeLevel.SelectedItem.Text + " " + MCSTreeControl1.SelectText; lt.Value = fieldfullname + " IN ("; DataTable dt = TreeTableBLL.GetAllChildByNodes(modelfield.RelationTableName, "ID", "SuperID", MCSTreeControl1.SelectValue); foreach (DataRow dr in dt.Rows) { lt.Value += "'" + dr[0].ToString() + "',"; } lt.Value += "'" + MCSTreeControl1.SelectValue + "')"; } } else { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " IN ("; DataTable dt = TreeTableBLL.GetAllChildByNodes(modelfield.RelationTableName, "ID", "SuperID", MCSTreeControl1.SelectValue); foreach (DataRow dr in dt.Rows) { lt.Value += "'" + dr[0].ToString() + "',"; } lt.Value += "'" + MCSTreeControl1.SelectValue + "')"; } #endregion } else { #region 其他关联方式的实体表 if (cbl_SearchValue.SelectedIndex != -1) { lt.Text = fielddisplayname + " 包含 ( "; lt.Value = fieldfullname + " IN ( "; foreach (ListItem item in cbl_SearchValue.Items) { if (item.Selected) { lt.Text += item.Text + ","; lt.Value += "'" + item.Value + "',"; } } lt.Text = lt.Text.Substring(0, lt.Text.Length - 1); lt.Value = lt.Value.Substring(0, lt.Value.Length - 1); lt.Text += ")"; lt.Value += ")"; } #endregion } break; #endregion default: #region 非关联字段 lt.Text = fielddisplayname + " " + ddl_op.SelectedItem.Text + " ('" + tbx_searchvalue.Text + "')"; lt.Value = fieldfullname + " = "; if (ddl_op.SelectedValue == "StartWith") { lt.Value = fieldfullname + " " + "Like" + " '" + tbx_searchvalue.Text + "%'"; } else if (ddl_op.SelectedValue == "NotStartWith") { lt.Value = fieldfullname + " " + "Not Like" + " '" + tbx_searchvalue.Text + "%'"; } else if (ddl_op.SelectedValue != "like") { if (modelfield.DataType == 4) //日期(datetime) { lt.Value = "CONVERT(DATETIME,CONVERT(VARCHAR,CONVERT(DATETIME," + fieldfullname + "),111))" + " " + ddl_op.SelectedItem.Value + " '" + tbx_searchvalue.Text + "'"; } else { lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + " '" + tbx_searchvalue.Text + "'"; } } else { lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + " '%" + tbx_searchvalue.Text + "%'"; } break; #endregion } } #endregion if (!string.IsNullOrEmpty(lt.Text)) { lbx_search.Items.Add(lt); } }
private void BindDropDown() { ddl_TableName.DataSource = UD_TableListBLL.GetModelList(""); ddl_TableName.DataBind(); }
protected void bt_OK_Click(object sender, EventArgs e) { Rpt_DataSetFieldsBLL _bll; if ((Guid)ViewState["ID"] != Guid.Empty) { _bll = new Rpt_DataSetFieldsBLL((Guid)ViewState["ID"]); } else { _bll = new Rpt_DataSetFieldsBLL(); } _bll.Model.DataSet = (Guid)ViewState["DataSet"]; _bll.Model.FieldName = tbx_FieldName.Text; _bll.Model.DisplayName = tbx_DisplayName.Text; _bll.Model.DataType = int.Parse(ddl_DataType.SelectedValue); _bll.Model.Description = tbx_Description.Text; if (ddl_IsComputeField.SelectedValue == "Y") { _bll.Model.IsComputeField = "Y"; _bll.Model.Expression = tbx_Expression.Text.Trim(); if (_bll.Model.Expression == "") { tbx_Expression.Focus(); MessageBox.Show(this, "请正确录入计算列的表达式!"); return; } } else { _bll.Model.IsComputeField = "N"; _bll.Model.Expression = ""; } if (tbx_SortID.Text != "") { _bll.Model.ColumnSortID = int.Parse(tbx_SortID.Text); } _bll.Model.DisplayMode = int.Parse(ddl_DisplayMode.SelectedValue); #region 树形字段有指定层次时,重设字段名 //要与查询条件生成的字段要一致,以便支持多同一树形字段多列显示 if (tbx_TreeLevel.Enabled) { UD_ModelFields f = new UD_ModelFieldsBLL(_bll.Model.FieldID).Model; if (new UD_TableListBLL(f.RelationTableName).Model.TreeFlag == "Y") { int level = 0; int.TryParse(tbx_TreeLevel.Text, out level); _bll.Model.TreeLevel = level; UD_TableList t = new UD_TableListBLL(f.TableID).Model; if (level > 0) { _bll.Model.FieldName = t.ModelClassName + "_" + f.FieldName + level.ToString(); } else { _bll.Model.FieldName = t.ModelClassName + "_" + f.FieldName; } } } #endregion if (Rpt_DataSetFieldsBLL.GetModelList("DataSet='" + _bll.Model.DataSet.ToString() + "' AND FieldName='" + _bll.Model.FieldName + "' AND ID <>'" + _bll.Model.ID.ToString() + "'").Count > 0) { MessageBox.Show(this, "对不起,字段名已重复,请更改字段名称!"); return; } if ((Guid)ViewState["ID"] != Guid.Empty) { _bll.Update(); } else { _bll.Add(); } new Rpt_DataSetBLL((Guid)ViewState["DataSet"]).ClearCache(); Response.Redirect("Rpt_DataSetFieldsList.aspx?ID=" + ViewState["DataSet"].ToString()); }
protected void btn_addsearch_Click(object sender, EventArgs e) { if (ddl_Field.SelectedValue == "0") return; //添加条件 ListItem lt = new ListItem(); #region 条件选择 UD_TableList table = new UD_TableListBLL(new Guid(ddl_TableName.SelectedValue), true).Model; if (table == null) return; UD_ModelFields modelfield = null; try { modelfield = new UD_ModelFieldsBLL(new Guid(ddl_Field.SelectedValue), true).Model; } catch { } if (modelfield == null) { //自定义字段 lt.Text = ddl_Field.SelectedItem.Text + " " + ddl_op.SelectedItem.Text + " ('" + tbx_searchvalue.Text + "')"; lt.Value = ddl_Field.SelectedValue + " " + ddl_op.SelectedItem.Value + " '" + tbx_searchvalue.Text + "'"; } else { string fielddisplayname = table.DisplayName + "." + modelfield.DisplayName; string fieldfullname = ""; if (modelfield.Flag == "Y") fieldfullname = table.Name + "." + modelfield.FieldName; //实体字段 else fieldfullname = "MCS_SYS.dbo.UF_Spilt(" + table.Name + ".ExtPropertys,'|'," + modelfield.Position.ToString() + ")"; if (ddl_op.SelectedValue == "NOTNULL") { lt.Text = fielddisplayname + " 不为空"; lt.Value = " ISNULL(" + fieldfullname + ",'')<>'' "; lbx_search.Items.Add(lt); return; } if (ddl_op.SelectedValue == "ISNULL") { lt.Text = fielddisplayname + " 为空"; lt.Value = " ISNULL(" + fieldfullname + ",'')='' "; lbx_search.Items.Add(lt); return; } switch (modelfield.RelationType) { case 1: #region 字典关联 if (cbl_SearchValue.SelectedIndex != -1) { lt.Text = fielddisplayname + " 包含 ( "; lt.Value = fieldfullname + " IN ( "; foreach (ListItem item in cbl_SearchValue.Items) { if (item.Selected) { lt.Text += item.Text + ","; lt.Value += "'" + item.Value + "',"; } } lt.Text = lt.Text.Substring(0, lt.Text.Length - 1); lt.Value = lt.Value.Substring(0, lt.Value.Length - 1); lt.Text += ")"; lt.Value += ")"; } break; #endregion case 2: #region 实体表关联 lt.Text = fielddisplayname + " 为 "; lt.Value = fieldfullname + " = "; if (!string.IsNullOrEmpty(modelfield.SearchPageURL)) { //通过查询控件查询 lt.Text += MCSSelectControl1.SelectText; lt.Value += "'" + MCSSelectControl1.SelectValue + "'"; } else if (new UD_TableListBLL(modelfield.RelationTableName).Model.TreeFlag == "Y") { #region 通过树形结构查询 if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity" || modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { if (ddl_TreeLevel.SelectedValue == "0") { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " = " + MCSTreeControl1.SelectValue; } else if (ddl_TreeLevel.SelectedValue == "100") { //所属于 lt.Text = fielddisplayname + " " + ddl_TreeLevel.SelectedItem.Text + " " + MCSTreeControl1.SelectText; lt.Value = fieldfullname + " IN ("; DataTable dt = TreeTableBLL.GetAllChildByNodes(modelfield.RelationTableName, "ID", "SuperID", MCSTreeControl1.SelectValue); foreach (DataRow dr in dt.Rows) { lt.Value += "'" + dr[0].ToString() + "',"; } lt.Value += "'" + MCSTreeControl1.SelectValue + "')"; } } else { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " IN ("; DataTable dt = TreeTableBLL.GetAllChildByNodes(modelfield.RelationTableName, "ID", "SuperID", MCSTreeControl1.SelectValue); foreach (DataRow dr in dt.Rows) { lt.Value += "'" + dr[0].ToString() + "',"; } lt.Value += "'" + MCSTreeControl1.SelectValue + "')"; } #endregion } else { #region 其他关联方式的实体表 if (cbl_SearchValue.SelectedIndex != -1) { lt.Text = fielddisplayname + " 包含 ( "; lt.Value = fieldfullname + " IN ( "; foreach (ListItem item in cbl_SearchValue.Items) { if (item.Selected) { lt.Text += item.Text + ","; lt.Value += "'" + item.Value + "',"; } } lt.Text = lt.Text.Substring(0, lt.Text.Length - 1); lt.Value = lt.Value.Substring(0, lt.Value.Length - 1); lt.Text += ")"; lt.Value += ")"; } #endregion } break; #endregion default: #region 非关联字段 lt.Text = fielddisplayname + " " + ddl_op.SelectedItem.Text + " ('" + tbx_searchvalue.Text + "')"; lt.Value = fieldfullname + " = "; if (ddl_op.SelectedValue == "StartWith") { lt.Value = fieldfullname + " " + "Like" + " '" + tbx_searchvalue.Text + "%'"; } else if (ddl_op.SelectedValue == "NotStartWith") { lt.Value = fieldfullname + " " + "Not Like" + " '" + tbx_searchvalue.Text + "%'"; } else if (ddl_op.SelectedValue != "like") { if (modelfield.DataType == 4) //日期(datetime) { lt.Value = "CONVERT(DATETIME,CONVERT(VARCHAR,CONVERT(DATETIME," + fieldfullname + "),111))" + " " + ddl_op.SelectedItem.Value + " '" + tbx_searchvalue.Text + "'"; } else { lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + " '" + tbx_searchvalue.Text + "'"; } } else lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + " '%" + tbx_searchvalue.Text + "%'"; break; #endregion } } #endregion if (!string.IsNullOrEmpty(lt.Text)) lbx_search.Items.Add(lt); }
protected void btn_addsearch_Click(object sender, EventArgs e) { if (ddl_Field.SelectedValue == "0") return; //添加条件 ListItem lt = new ListItem(); #region 条件选择 UD_TableList table = new UD_TableListBLL(new Guid(ddl_TableName.SelectedValue), true).Model; if (table == null) return; UD_ModelFields modelfield = new UD_ModelFieldsBLL(new Guid(ddl_Field.SelectedValue), true).Model; if (modelfield == null) return; //字段全称 string fielddisplayname = table.DisplayName + "." + modelfield.DisplayName; string fieldfullname = ""; if (modelfield.Flag == "Y") fieldfullname = table.Name + "." + modelfield.FieldName; //实体字段 else fieldfullname = "MCS_SYS.dbo.UF_Spilt(" + table.Name + ".ExtPropertys,'|'," + modelfield.Position.ToString() + ")"; if (rbl_ValueFrom.SelectedValue == "M") { #region 从手工设定中取值 switch (modelfield.RelationType) { case 1: #region 字典关联 if (cbl_SearchValue.SelectedIndex != -1) { lt.Text = fielddisplayname + " 包含 ( "; lt.Value = fieldfullname + " IN ( "; foreach (ListItem item in cbl_SearchValue.Items) { if (item.Selected) { lt.Text += item.Text + ","; lt.Value += "'" + item.Value + "',"; } } lt.Text = lt.Text.Substring(0, lt.Text.Length - 1); lt.Value = lt.Value.Substring(0, lt.Value.Length - 1); lt.Text += ")"; lt.Value += ")"; } break; #endregion case 2: #region 实体表关联 lt.Text = fielddisplayname + " 为 "; lt.Value = fieldfullname + " = "; if (!string.IsNullOrEmpty(modelfield.SearchPageURL)) { //通过查询控件查询 lt.Text += MCSSelectControl1.SelectText; lt.Value += "'" + MCSSelectControl1.SelectValue + "'"; } else if (new UD_TableListBLL(modelfield.RelationTableName).Model.TreeFlag == "Y") { #region 通过树形结构查询 if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { if (ddl_TreeLevel.SelectedValue == "0") { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " = " + MCSTreeControl1.SelectValue; } else if (ddl_TreeLevel.SelectedValue == "100") { //所属于 lt.Text = fielddisplayname + " " + ddl_TreeLevel.SelectedItem.Text + " " + MCSTreeControl1.SelectText; lt.Value = "MCS_SYS.dbo.UF_IsChildOrganizeCity(" + MCSTreeControl1.SelectValue + "," + fieldfullname + ") = 0"; } else { //指定级别上级 lt.Text = fielddisplayname + " 的 " + ddl_TreeLevel.SelectedItem.Text + " 为 " + MCSTreeControl1.SelectText; lt.Value = "MCS_SYS.dbo.UF_GetSuperOrganizeCityByLevel02(" + fieldfullname + "," + ddl_TreeLevel.SelectedValue + ") = " + MCSTreeControl1.SelectValue; } } else if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { if (ddl_TreeLevel.SelectedValue == "0") { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " = " + MCSTreeControl1.SelectValue; } else if (ddl_TreeLevel.SelectedValue == "100") { //所属于 lt.Text = fielddisplayname + " " + ddl_TreeLevel.SelectedItem.Text + " " + MCSTreeControl1.SelectText; lt.Value = "MCS_SYS.dbo.UF_IsChildOfficialCityCity(" + MCSTreeControl1.SelectValue + "," + fieldfullname + ") = 0"; } else { //指定级别上级 lt.Text = fielddisplayname + " 的 " + ddl_TreeLevel.SelectedItem.Text + " 为 " + MCSTreeControl1.SelectText; lt.Value = "MCS_SYS.dbo.UF_GetSuperOfficialCityByLevel02(" + fieldfullname + "," + ddl_TreeLevel.SelectedValue + ") = " + MCSTreeControl1.SelectValue; } } else { lt.Text += MCSTreeControl1.SelectText; lt.Value = fieldfullname + " IN ("; DataTable dt = TreeTableBLL.GetAllChildByNodes(modelfield.RelationTableName, "ID", "SuperID", MCSTreeControl1.SelectValue); foreach (DataRow dr in dt.Rows) { lt.Value += "'" + dr[0].ToString() + "',"; } lt.Value += "'" + MCSTreeControl1.SelectValue + "')"; } #endregion } else { #region 其他关联方式的实体表 if (cbl_SearchValue.SelectedIndex != -1) { lt.Text = fielddisplayname + " 包含 ( "; lt.Value = fieldfullname + " IN ( "; foreach (ListItem item in cbl_SearchValue.Items) { if (item.Selected) { lt.Text += item.Text + ","; lt.Value += "'" + item.Value + "',"; } } lt.Text = lt.Text.Substring(0, lt.Text.Length - 1); lt.Value = lt.Value.Substring(0, lt.Value.Length - 1); lt.Text += ")"; lt.Value += ")"; } #endregion } break; #endregion default: #region 非关联字段 lt.Text = fielddisplayname + " " + ddl_op.SelectedItem.Text + " (" + tbx_searchvalue.Text + ")"; lt.Value = fieldfullname + " = "; if (ddl_op.SelectedValue != "like") { if (tbx_searchvalue.Text.StartsWith("@")) lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + tbx_searchvalue.Text; else lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + " '" + tbx_searchvalue.Text + "'"; } else lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + " '%" + tbx_searchvalue.Text + "%'"; break; #endregion } #endregion } else { #region 从参数中取值 switch (modelfield.RelationType) { case 1: #region 字典关联 lt.Text = fielddisplayname + " = " + ddl_Param.SelectedValue; lt.Value = fieldfullname + " = " + ddl_Param.SelectedValue; #endregion break; case 2: #region 实体表关联 lt.Text = fielddisplayname + " 为 "; lt.Value = fieldfullname + " = "; if (ddl_TreeLevel.Visible) { #region 管理片区及行政城市选项 if (ddl_TreeLevel.SelectedValue == "0") { //当前级 lt.Text += ddl_Param.SelectedValue; lt.Value = fieldfullname + " = " + ddl_Param.SelectedValue; } else if (ddl_TreeLevel.SelectedValue == "100") { //所属于 lt.Text = fielddisplayname + " " + ddl_TreeLevel.SelectedItem.Text + " " + ddl_Param.SelectedValue; if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { lt.Value = "MCS_SYS.dbo.UF_IsChildOrganizeCity(" + ddl_Param.SelectedValue + "," + fieldfullname + ") = 0"; } else if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { lt.Value = "MCS_SYS.dbo.UF_IsChildOfficialCityCity(" + ddl_Param.SelectedValue + "," + fieldfullname + ") = 0"; } } else { lt.Text = fielddisplayname + " 的 " + ddl_TreeLevel.SelectedItem.Text + " 为 " + ddl_Param.SelectedValue; //指定级别上级 if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { lt.Value = "MCS_SYS.dbo.UF_GetSuperOrganizeCityByLevel02(" + fieldfullname + "," + ddl_TreeLevel.SelectedValue + ") = " + ddl_Param.SelectedValue; } else if (modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { lt.Value = "MCS_SYS.dbo.UF_GetSuperOfficialCityByLevel02(" + fieldfullname + "," + ddl_TreeLevel.SelectedValue + ") = " + ddl_Param.SelectedValue; } } #endregion } else { lt.Text += ddl_Param.SelectedValue; lt.Value = fieldfullname + " = " + ddl_Param.SelectedValue; } break; #endregion default: #region 非关联字段 lt.Text = fielddisplayname + " " + ddl_op.SelectedItem.Text + " (" + ddl_Param.SelectedValue + ")"; lt.Value = fieldfullname + " = "; if (ddl_op.SelectedValue != "like") lt.Value = fieldfullname + " " + ddl_op.SelectedItem.Value + ddl_Param.SelectedValue; else lt.Value = fieldfullname + " LIKE '%'+" + ddl_Param.SelectedValue + "+'%'"; break; #endregion } #endregion } #endregion if (!string.IsNullOrEmpty(lt.Text)) lbx_search.Items.Add(lt); }
/// <summary> /// Init the components of the panel through the special pageid /// </summary> private void InitComponents() { HtmlTable T_Content = new HtmlTable(); T_Content.CellPadding = 0; T_Content.CellSpacing = 0; T_Content.Width = "100%"; T_Content.Border = 0; T_Content.ID = "T_Content_" + ID; this.Controls.Add(T_Content); UD_DetailViewBLL _DetailViewBll = new UD_DetailViewBLL(DetailViewCode, true); IList<UD_Panel> _panellist = _DetailViewBll.GetDetailPanels(); Hashtable _htFieldControlsInfo = new Hashtable(); foreach (UD_Panel _panelmodel in _panellist) { HtmlTableRow tr_panel = new HtmlTableRow();//Create one TableRow for a panel tr_panel.ID = _panelmodel.Code; if (_panelmodel.Enable.ToUpper() == "N") tr_panel.Visible = false; HtmlTableCell tc_panel = new HtmlTableCell(); string _tablestytle = _panelmodel.TableStyle; string[] _tablestyles = _panelmodel.TableStyle.Split(new char[] { ',' }); if (_tablestyles.Length < 3) _tablestyles = ("tabForm,dataLabel,dataField").Split(new char[] { ',' }); #region The title of the panel if (_panelmodel.Name != "") { HtmlTable tb_panel_title = new HtmlTable(); tb_panel_title.CellPadding = 0; tb_panel_title.CellSpacing = 0; tb_panel_title.Width = "100%"; tb_panel_title.Height = "28px"; tb_panel_title.Border = 0; tb_panel_title.Attributes["class"] = "h3Row"; HtmlTableRow tr_panel_title = new HtmlTableRow(); HtmlTableCell tc_panel_title = new HtmlTableCell(); tc_panel_title.InnerHtml = "<h3>" + _panelmodel.Name + "</h3>"; tr_panel_title.Cells.Add(tc_panel_title); tb_panel_title.Rows.Add(tr_panel_title); tc_panel.Controls.Add(tb_panel_title); } #endregion #region The content of the panel IList<UD_Panel_ModelFields> fields = new UD_PanelBLL(_panelmodel.ID, true).GetModelFields(); int FieldCount = _panelmodel.FieldCount; HtmlTable tb_panel_content = new HtmlTable(); tb_panel_content.Width = "100%"; tb_panel_content.Attributes["class"] = _tablestyles[0]; int i = 0; foreach (UD_Panel_ModelFields _panel_modelfields in fields) { if (_panel_modelfields.Visible == "N") continue; UD_ModelFields _modelfieldsmodel = new UD_ModelFieldsBLL(_panel_modelfields.FieldID, true).Model; UD_TableList _tablemodel = new UD_TableListBLL(_modelfieldsmodel.TableID, true).Model; #region 判断该控件是否已存在 if (_htFieldControlsInfo.Contains(_tablemodel.ModelClassName + "_" + _modelfieldsmodel.FieldName)) continue; #endregion #region 判断是否要增加新行 HtmlTableRow tr_panel_detail; if (i >= FieldCount || i == 0) { tr_panel_detail = new HtmlTableRow(); tb_panel_content.Rows.Add(tr_panel_detail); i = 0; } else { tr_panel_detail = tb_panel_content.Rows[tb_panel_content.Rows.Count - 1]; } #endregion #region 增加Label Cell HtmlTableCell tc_displayname = new HtmlTableCell(); tc_displayname.Attributes["Class"] = _tablestyles[1]; tc_displayname.InnerText = string.IsNullOrEmpty(_panel_modelfields.LabelText) ? _modelfieldsmodel.DisplayName : _panel_modelfields.LabelText; if (tc_displayname.InnerText.Length <= 6) tc_displayname.Attributes["Style"] = "width: 80px; height: 18px;"; else tc_displayname.Attributes["Style"] = "width: 100px; height: 18px;"; tc_displayname.Attributes["nowrap"] = "nowrap"; tr_panel_detail.Cells.Add(tc_displayname); #endregion #region 增加Field Cell HtmlTableCell tc_control = new HtmlTableCell(); tc_control.Attributes["Class"] = _tablestyles[2]; if (_panel_modelfields.ColSpan > 0) { if (i + _panel_modelfields.ColSpan <= FieldCount) { tc_control.ColSpan = 2 * _panel_modelfields.ColSpan - 1; i = i + _panel_modelfields.ColSpan; } else { tc_control.ColSpan = 2 * (FieldCount - i) - 1; i = 0; } } else { i++; } WebControl control = null; int RelationType = _modelfieldsmodel.RelationType; string RelationTableName = _modelfieldsmodel.RelationTableName; string RelationValueField = _modelfieldsmodel.RelationValueField; string RelationTextField = _modelfieldsmodel.RelationTextField; #region 根据控件类型生成相应的控件 switch (_panel_modelfields.ControlType) { case 1://Label control = new Label(); break; case 2://TextBox control = new TextBox(); if (_modelfieldsmodel.DataType == 4) { control.Attributes["onfocus"] = "WdatePicker();"; } break; case 3://DropDownList control = new DropDownList(); if (RelationType == 1)//Relation to the dictionary { ((DropDownList)control).DataSource = DictionaryBLL.GetDicCollections(RelationTableName, true); } else if (RelationType == 2)//Relation to the model table { ((DropDownList)control).DataSource = TreeTableBLL.GetRelationTableSourceData(RelationTableName, RelationValueField, RelationTextField); } else break; ((DropDownList)control).DataTextField = "Value"; ((DropDownList)control).DataValueField = "Key"; ((DropDownList)control).DataBind(); if (_modelfieldsmodel.DataType != 5) ((DropDownList)control).Items.Insert(0, new ListItem("请选择...", "0")); else ((DropDownList)control).Items.Insert(0, new ListItem("请选择...", Guid.Empty.ToString())); break; case 4://RadioButtonList control = new RadioButtonList(); if (RelationType == 1)//Relation to the dictionary { ((RadioButtonList)control).DataSource = DictionaryBLL.GetDicCollections(RelationTableName, true); } else if (RelationType == 2)//Relation to the model table { ((RadioButtonList)control).DataSource = TreeTableBLL.GetRelationTableSourceData(RelationTableName, RelationValueField, RelationTextField); } else break; ((RadioButtonList)control).RepeatColumns = 6; ((RadioButtonList)control).RepeatDirection = RepeatDirection.Horizontal; ((RadioButtonList)control).DataTextField = "Value"; ((RadioButtonList)control).DataValueField = "Key"; ((RadioButtonList)control).DataBind(); if (((RadioButtonList)control).Items.Count != 0) ((RadioButtonList)control).SelectedIndex = 0; break; case 5://MutiLinesTextBox control = new TextBox(); ((TextBox)control).TextMode = TextBoxMode.MultiLine; if (_panel_modelfields.ControlHeight > 0) ((TextBox)control).Height = new Unit(_panel_modelfields.ControlHeight); break; case 6://TextBox supports search control = new MCSSelectControl(); if (RelationType == 2)//Relation to the model table { control.ID = _tablemodel.ModelClassName + "_" + _modelfieldsmodel.FieldName; if (_panel_modelfields.SearchPageURL != "") ((MCSSelectControl)control).PageUrl = _panel_modelfields.SearchPageURL; else if (_modelfieldsmodel.SearchPageURL != "") ((MCSSelectControl)control).PageUrl = _modelfieldsmodel.SearchPageURL; } break; case 7://MCSTreeControl control = new MCSTreeControl(); if (RelationType == 2)//Relation to the model table { control.ID = _tablemodel.ModelClassName + "_" + _modelfieldsmodel.FieldName; if (_modelfieldsmodel.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { #region 如果为管理片区字段,则取所能管辖的片区 if (System.Web.HttpContext.Current.Session["AccountType"] == null || (int)System.Web.HttpContext.Current.Session["AccountType"] == 1) { //员工 Org_StaffBLL staff = new Org_StaffBLL((int)System.Web.HttpContext.Current.Session["UserID"]); ((MCSTreeControl)control).DataSource = staff.GetStaffOrganizeCity(); ((MCSTreeControl)control).IDColumnName = "ID"; ((MCSTreeControl)control).NameColumnName = "Name"; ((MCSTreeControl)control).ParentColumnName = "SuperID"; if (((MCSTreeControl)control).DataSource.Select("ID = 1").Length > 0 || staff.Model.OrganizeCity == 0) { ((MCSTreeControl)control).RootValue = "0"; if (!Page.IsPostBack) ((MCSTreeControl)control).SelectValue = "0"; } else { ((MCSTreeControl)control).RootValue = new Addr_OrganizeCityBLL(staff.Model.OrganizeCity).Model.SuperID.ToString(); if (!Page.IsPostBack) ((MCSTreeControl)control).SelectValue = staff.Model.OrganizeCity.ToString(); } } else if ((int)System.Web.HttpContext.Current.Session["AccountType"] == 2 && System.Web.HttpContext.Current.Session["OrganizeCity"] != null) { //商业客户 int city = (int)System.Web.HttpContext.Current.Session["OrganizeCity"]; Addr_OrganizeCityBLL citybll = new Addr_OrganizeCityBLL(city); ((MCSTreeControl)control).DataSource = citybll.GetAllChildNodeIncludeSelf(); ((MCSTreeControl)control).RootValue = citybll.Model.SuperID.ToString(); ((MCSTreeControl)control).IDColumnName = "ID"; ((MCSTreeControl)control).NameColumnName = "Name"; ((MCSTreeControl)control).ParentColumnName = "SuperID"; if (!Page.IsPostBack) ((MCSTreeControl)control).SelectValue = city.ToString(); } #endregion } else if (_modelfieldsmodel.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { ((MCSTreeControl)control).TableName = "MCS_SYS.dbo.Addr_OfficialCity"; ((MCSTreeControl)control).IDColumnName = "ID"; ((MCSTreeControl)control).NameColumnName = "Name"; ((MCSTreeControl)control).ParentColumnName = "SuperID"; ((MCSTreeControl)control).RootValue = "0"; if (!Page.IsPostBack) ((MCSTreeControl)control).SelectValue = "0"; } else { ((MCSTreeControl)control).TableName = RelationTableName; ((MCSTreeControl)control).IDColumnName = RelationValueField; ((MCSTreeControl)control).NameColumnName = RelationTextField; ((MCSTreeControl)control).ParentColumnName = "SuperID"; } } break; } #endregion control.ID = _tablemodel.ModelClassName + "_" + _modelfieldsmodel.FieldName; control.Enabled = _panel_modelfields.Enable.ToUpper() == "Y"; if (_panel_modelfields.ControlWidth > 0) control.Width = _panel_modelfields.ControlWidth; tc_control.Controls.Add(control); #region 如果是文本框时,加上输入验证控件 if (_panel_modelfields.IsRequireField == "Y") { Label lbl_reqinfo = new Label(); lbl_reqinfo.Text = " *"; lbl_reqinfo.ForeColor = System.Drawing.Color.Red; tc_control.Controls.Add(lbl_reqinfo); } if (_panel_modelfields.ControlType == 2 || _panel_modelfields.ControlType == 5) { if (_panel_modelfields.IsRequireField == "Y") { RequiredFieldValidator _requiredfieldvalidator = new RequiredFieldValidator(); _requiredfieldvalidator.ControlToValidate = control.ID; _requiredfieldvalidator.Display = ValidatorDisplay.Dynamic; _requiredfieldvalidator.ErrorMessage = "必填"; _requiredfieldvalidator.ForeColor = System.Drawing.Color.Red; _requiredfieldvalidator.ValidationGroup = _validationgroup; tc_control.Controls.Add(_requiredfieldvalidator); } if (_panel_modelfields.RegularExpression != "") { RegularExpressionValidator _regularexpressionvalidator = new RegularExpressionValidator(); _regularexpressionvalidator.ControlToValidate = control.ID; _regularexpressionvalidator.ErrorMessage = "数据格式不正确"; _regularexpressionvalidator.ForeColor = System.Drawing.Color.Red; _regularexpressionvalidator.ValidationExpression = _panel_modelfields.RegularExpression; _regularexpressionvalidator.ValidationGroup = ValidationGroup; _regularexpressionvalidator.Display = ValidatorDisplay.Dynamic; tc_control.Controls.Add(_regularexpressionvalidator); } else { if (_modelfieldsmodel.DataType == 1 || _modelfieldsmodel.DataType == 2 || _modelfieldsmodel.DataType == 4) //非varchar 字符串 { CompareValidator _comparevalidator = new CompareValidator(); _comparevalidator.ControlToValidate = control.ID; _comparevalidator.Operator = ValidationCompareOperator.DataTypeCheck; _comparevalidator.Display = ValidatorDisplay.Dynamic; _comparevalidator.ForeColor = System.Drawing.Color.Red; _comparevalidator.ValidationGroup = _validationgroup; if (_modelfieldsmodel.DataType == 1)//int { _comparevalidator.Type = ValidationDataType.Integer; _comparevalidator.ErrorMessage = "应为整数"; } if (_modelfieldsmodel.DataType == 2)//decimal { _comparevalidator.Type = ValidationDataType.Double; _comparevalidator.ErrorMessage = "应为数字"; } if (_modelfieldsmodel.DataType == 4)//datetime { _comparevalidator.Type = ValidationDataType.Date; _comparevalidator.ErrorMessage = "日期格式不正确"; } tc_control.Controls.Add(_comparevalidator); } } } #endregion if (!string.IsNullOrEmpty(_panel_modelfields.Description)) { Label lb = new Label(); lb.Text = " " + _panel_modelfields.Description; tc_control.Controls.Add(lb); } tr_panel_detail.Cells.Add(tc_control); #endregion #region 将控件记录到字段控件HashTable中 FieldControlInfo fieldcontrolinfo = new FieldControlInfo(); fieldcontrolinfo.FieldID = _modelfieldsmodel.ID; fieldcontrolinfo.FieldName = _modelfieldsmodel.FieldName; fieldcontrolinfo.ModelName = _tablemodel.ModelClassName; fieldcontrolinfo.ControlType = _panel_modelfields.ControlType; fieldcontrolinfo.ControlName = control.ID; fieldcontrolinfo.DisplayMode = _panel_modelfields.DisplayMode; fieldcontrolinfo.Panel_Field_ID = _panel_modelfields.ID; _htFieldControlsInfo.Add(fieldcontrolinfo.ControlName, fieldcontrolinfo); #endregion } #endregion tc_panel.Controls.Add(tb_panel_content); tr_panel.Cells.Add(tc_panel); T_Content.Rows.Add(tr_panel); } ViewState["FieldControlsInfo"] = _htFieldControlsInfo; }
/// <summary> /// 用户登录 /// </summary> /// <param name="UserName">用户名</param> /// <param name="EncryptPassword">加密后的登录密码</param> /// <param name="DeviceCode">设备识别号</param> /// <param name="AuthKey">输出:授权码</param> /// <param name="ExtParams">扩展登录参数Json格式,包括AppCode、AppVersion、DeviceModel、DeviceOS、OSVersion、NetworkType /// 如:{"AppCode":"YSLRMAPP","AppVersion":43,"DeviceModel":"SM-G7108V","DeviceOS":"Android","OSVersion":"4.3","NetworkType":"ChinaMobile TD-SCDMA"} /// </param> /// <returns>0:登录成功 /// -1001:用户名或密码错误,登录失败 /// -1002:未能获取到对称加密密钥 /// -1003:设备号未在可登录的列表中登记 /// -1004:当前用户不允许从该设备号登录 /// -1005:登录失败 /// -1009:APP版本过低必须更新 /// </returns> public static int Login(string UserName, string EncryptPassword, string DeviceCode, string ExtParams, out string AuthKey) { LogWriter.WriteLog("UserLogin.LoginEx2:UserName="******",EncryptPassword="******",DeviceCode=" + DeviceCode + ",ExtParams=" + ExtParams); AuthKey = ""; Hashtable hs = string.IsNullOrEmpty(ExtParams) ? new Hashtable() : JsonConvert.DeserializeObject <Hashtable>(ExtParams); #region 判断是否符合最新版本要求 if (hs["AppCode"] != null) { int MinAppVersion = 0; if (hs["AppCode"].ToString() == "PBMSAPP") { MinAppVersion = ConfigHelper.GetConfigInt("MinAppVersion"); } else if (hs["AppCode"].ToString() == "PBMSAPP-iOS") { MinAppVersion = ConfigHelper.GetConfigInt("MinAppVersion-iOS"); } if (MinAppVersion > 0 && hs["AppVersion"] != null) { int AppVersion = 0; if (int.TryParse(hs["AppVersion"].ToString(), out AppVersion) && AppVersion < MinAppVersion) { LogWriter.WriteLog("UserLogin.LoginEx2: AppVersion too lower! UserName="******",DeviceCode=" + DeviceCode + ",AppVersion=" + AppVersion.ToString()); return(-1009); //APP版本过低必须更新 } } } #endregion #region 组织登录扩展属性 string ExtPropertys = ""; try { IList <UD_TableList> tables = UD_TableListBLL.GetModelList("Name='MCS_SYS.dbo.User_Online'"); if (tables.Count > 0) { IList <UD_ModelFields> models = UD_ModelFieldsBLL.GetModelList("Tableid='" + tables[0].ID.ToString() + "' AND Flag='N'"); foreach (UD_ModelFields item in models.OrderBy(p => p.Position)) { if (hs.ContainsKey(item.FieldName)) { ExtPropertys += hs[item.FieldName].ToString(); } ExtPropertys += "|"; } } } catch { } #endregion string cachekey = "EBMIF_DeviceCryptKey-" + DeviceCode; DeviceCryptKey key = null; #region 从数据库中加载保存的密钥 if (key == null) { string _keystr = ""; if (UserBLL.AppCryptKey_LoadKey(DeviceCode, out _keystr) == 0 && !string.IsNullOrEmpty(_keystr)) { try { key = JsonConvert.DeserializeObject <DeviceCryptKey>(_keystr); if (key != null) { DataCache.SetCache(cachekey, key, DateTime.Now.AddMinutes(5), System.Web.Caching.Cache.NoSlidingExpiration); } } catch { } } } #endregion int ret = 0; string Password = EncryptPassword; if (key == null) { LogWriter.WriteLog("UserLogin.LoginEx: Get DeviceCrytKey Null! UserName="******",DeviceCode=" + DeviceCode); return(-1002); //未能获取到对称加密密钥 } else { ret = AESProvider.DecryptText(EncryptPassword, key.AESKey, key.AESIV, out Password); if (ret < 0) { LogWriter.WriteLog("UserLogin.LoginEx! AESProvider.DecryptText Ret=" + ret.ToString() + ",DeviceCode=" + DeviceCode + ",EncryptPassword="******",AESKey=" + key.AESKey + ",AESIV=" + key.AESIV); return(-1002); } } ret = userlogin(UserName, Password, DeviceCode, ExtPropertys, out AuthKey); if (ConfigHelper.GetConfigBool("DebugMode") && key != null) { LogWriter.WriteLog("UserLogin.LoginEx:Login Return ret=" + ret.ToString() + ",DeviceCode=" + DeviceCode + ",AESKey=" + key.AESKey + ",AESIV=" + key.AESIV + ",AuthKey=" + AuthKey); } switch (ret) { case -1003: //设备号未在可登录的列表中登记 return(-1003); case -3: case -5: case -10: //当前用户不允许从该设备号登录 return(-1004); case -2: case -11: case -12: case -13: //用户名或密码错误,登录失败 return(-1001); case 1: //登录成功 return(0); default: //登录失败 return(-1005); } }
/// <summary> /// 用IList(IModel)数据源来绑定GridView /// </summary> /// <param name="m"></param> public void BindGrid <T>(IList <T> source) { this.DataSource = source; this.DataBind(); if (source.Count == 0) { return; } IList <UD_TableList> _tables = new UD_TableListBLL()._GetModelList("ModelName='" + ((IModel)source[0]).ModelName + "'"); if (_tables.Count == 0) { return; } UD_TableList table = _tables[0]; IList <UD_ModelFields> fields = new UD_TableListBLL(table.ID).GetModelFields(); for (int i = 0; i < Columns.Count; i++) { DataControlField column = Columns[i]; if (column.GetType().Name == "BoundField") { BoundField field = (BoundField)column; if (!column.Visible) { continue; } IList <UD_ModelFields> _models = UD_ModelFieldsBLL.GetModelList("TableID='" + table.ID.ToString() + "' AND FieldName='" + field.DataField + "'"); if (_models.Count == 0) { continue; } UD_ModelFields model = _models[0]; switch (model.RelationType) { case 1: //关联字典表 foreach (GridViewRow row in Rows) { Dictionary <string, Dictionary_Data> dic = DictionaryBLL.GetDicCollections(model.RelationTableName, false); row.Cells[i].Text = dic.ContainsKey(row.Cells[i].Text) ? dic[row.Cells[i].Text].Name : ""; } break; case 2: //关联实体表 foreach (GridViewRow row in Rows) { row.Cells[i].Text = TreeTableBLL.GetRelationTableDataValue(model.RelationTableName, model.RelationValueField, model.RelationTextField, row.Cells[i].Text); } break; } if (model.DataType == 4) //日期型 { foreach (GridViewRow row in Rows) { if (row.Cells[i].Text.StartsWith("1900-01-01")) { row.Cells[i].Text = ""; } } } } } }
private string GenarateSelectSQL(out Dictionary <string, Rpt_DataSetFields> dicTreeColumnList) { string _sqlstring = ""; string _selectstr = "SELECT "; string _fromstr = ""; string _selectfromstr = ""; //字段如果是关联时,临时生成的from sql dicTreeColumnList = new Dictionary <string, Rpt_DataSetFields>(); if (_m.CommandType != 3) { return(""); } #region create the select string IList <Rpt_DataSetFields> _fields = this.GetFields(); foreach (Rpt_DataSetFields _field in _fields) { if (_field.IsComputeField == "Y") { _selectstr += _field.Expression + " AS " + _field.FieldName + ","; } else { UD_ModelFields _modelfield = new UD_ModelFieldsBLL(_field.FieldID, true).Model; UD_TableList _tablemodel = new UD_TableListBLL(_modelfield.TableID, true).Model; string _fieldfullname = _tablemodel.ModelClassName + "_" + _modelfield.FieldName; #region 判断字段关联类型,决定如果创建SQL switch (_modelfield.RelationType) { case 1: //Relation to dic if (_field.DisplayMode == 1) //Bound the id value of the field { if (_modelfield.Flag == "Y") { _selectstr += _tablemodel.Name + "." + _modelfield.FieldName + " AS " + _fieldfullname + ","; } else //扩展字段 { _selectstr += "MCS_SYS.[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") AS " + _fieldfullname + ","; } } else //Bound the text value of the field { //计算出关联字典表的别名"_vname" string _vname = "V_Dictionary_Data" + "_" + _modelfield.FieldName; if (_modelfield.Flag == "Y") { _selectstr += _vname + ".Name" + " AS " + _fieldfullname + ","; _selectfromstr += " left join V_Dictionary_Data AS " + _vname + " ON " + _tablemodel.Name + "." + _modelfield.FieldName + "=" + _vname + ".Code AND " + _vname + ".TableName='" + _modelfield.RelationTableName + "' "; } else //扩展字段 { _selectstr += _vname + ".Name" + " AS " + _fieldfullname + ","; _selectfromstr += " left join V_Dictionary_Data AS " + _vname + " ON MCS_SYS.[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") =" + _vname + ".Code AND " + _vname + ".TableName='" + _modelfield.RelationTableName + "' "; } } break; case 2: //Relation to model table if (_field.TreeLevel > 0 && new UD_TableListBLL(_modelfield.RelationTableName).Model.TreeFlag == "Y") { #region 字段关联到树形结构表,且要显示上层父结点信息 _fieldfullname += _field.TreeLevel.ToString(); if (_modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { string tmpfieldname = ""; if (_modelfield.Flag == "Y") { tmpfieldname = _tablemodel.Name + "." + _modelfield.FieldName; } else //扩展字段 { tmpfieldname = "[MCS_SYS].[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ")"; } if (_field.DisplayMode == 1) { _selectstr += "[MCS_SYS].[dbo].[UF_GetSuperOrganizeCityByLevel02](" + tmpfieldname + "," + _field.TreeLevel.ToString() + ")" + " AS " + _fieldfullname + ","; } else { _selectstr += "[MCS_SYS].[dbo].[UF_GetSuperOrganizeCityNameByLevel02](" + tmpfieldname + "," + _field.TreeLevel.ToString() + ")" + " AS " + _fieldfullname + ","; } } else if (_modelfield.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { string tmpfieldname = ""; if (_modelfield.Flag == "Y") { tmpfieldname = _tablemodel.Name + "." + _modelfield.FieldName; } else //扩展字段 { tmpfieldname = "[MCS_SYS].[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ")"; } if (_field.DisplayMode == 1) { _selectstr += "[MCS_SYS].[dbo].[UF_GetSuperOfficialCityByLevel02](" + tmpfieldname + "," + _field.TreeLevel.ToString() + ")" + " AS " + _fieldfullname + ","; } else { _selectstr += "[MCS_SYS].[dbo].[UF_GetSuperOfficialCityNameByLevel02](" + tmpfieldname + "," + _field.TreeLevel.ToString() + ")" + " AS " + _fieldfullname + ","; } } else { if (_modelfield.Flag == "Y") { _selectstr += _tablemodel.Name + "." + _modelfield.FieldName + " AS " + _fieldfullname + ","; } else //扩展字段 { _selectstr += "MCS_SYS.[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") AS " + _fieldfullname + ","; } dicTreeColumnList.Add(_fieldfullname, _field); } #endregion } else { #region 需关联到树形结构表 if (_field.DisplayMode == 1) //Bound the id value of the field { if (_modelfield.Flag == "Y") { _selectstr += _tablemodel.Name + "." + _modelfield.FieldName + " AS " + _fieldfullname + ","; } else //扩展字段 { _selectstr += "MCS_SYS.[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") AS " + _fieldfullname + ","; } } else //Bound the text value of the field { #region 计算出关联表的别名"_vname" string _vname = ""; int pos = _modelfield.RelationTableName.LastIndexOf('.'); if (pos >= 0) { _vname = _modelfield.RelationTableName.Substring(pos + 1) + "_" + _modelfield.FieldName; } else { _vname = _modelfield.RelationTableName + "_" + _modelfield.FieldName; } #endregion if (_modelfield.Flag == "Y") { _selectstr += _vname + "." + _modelfield.RelationTextField + " AS " + _fieldfullname + ","; _selectfromstr += " left join " + _modelfield.RelationTableName + " AS " + _vname + " ON " + _tablemodel.Name + "." + _modelfield.FieldName + "=" + _vname + "." + _modelfield.RelationValueField; } else //扩展字段 { _selectstr += _vname + "." + _modelfield.RelationTextField + " AS " + _fieldfullname + ","; _selectfromstr += " left join " + _modelfield.RelationTableName + " AS " + _vname + " ON MCS_SYS.[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") =" + _vname + "." + _modelfield.RelationValueField; } } #endregion } break; default: //No relation if (_modelfield.Flag == "Y") { _selectstr += _tablemodel.Name + "." + _modelfield.FieldName + " AS " + _fieldfullname + ","; } else { _selectstr += "MCS_SYS.[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") AS " + _fieldfullname + ","; } break; } #endregion } } _selectstr = _selectstr.Substring(0, _selectstr.Length - 1); #endregion #region create the from string of sql IList <Rpt_DataSetTableRelations> _tablerelations = this.GetTableRelations(); IList <Rpt_DataSetTables> _tables = this.GetTables(); if (_tables.Count == 1 || _tablerelations.Count == 0) { _fromstr = " FROM " + new UD_TableListBLL(_tables[0].TableID, true).Model.Name; } else { foreach (Rpt_DataSetTableRelations _tablerelation in _tablerelations) { string _parenttablename = new UD_TableListBLL(_tablerelation.ParentTableID, true).Model.Name; string _childtablename = new UD_TableListBLL(_tablerelation.ChildTableID, true).Model.Name; UD_ModelFields _parentfield = new UD_ModelFieldsBLL(_tablerelation.ParentFieldID, true).Model; UD_ModelFields _childfield = new UD_ModelFieldsBLL(_tablerelation.ChildFieldID, true).Model; if (_tablerelation.JoinMode == "") { _tablerelation.JoinMode = "LEFT JOIN"; } if (_fromstr == "") { _fromstr = " FROM " + _parenttablename + " "; } _fromstr += " " + _tablerelation.JoinMode + " " + _childtablename + " ON "; if (_parentfield.Flag == "Y" && _childfield.Flag == "Y") { _fromstr += _parenttablename + ".[" + _parentfield.FieldName + "] = " + _childtablename + ".[" + _childfield.FieldName + "] "; } else { //关联字段中,有一个字段为扩展字段 if (_parentfield.Flag == "Y") { _fromstr += "CONVERT(VarChar," + _parenttablename + "." + _parentfield.FieldName + ")"; } else { _fromstr += "MCS_SYS.[dbo].[UF_Spilt](" + _parenttablename + ".ExtPropertys,'|'," + _parentfield.Position.ToString() + ")"; } _fromstr += " = "; if (_childfield.Flag == "Y") { _fromstr += "CONVERT(VarChar," + _childtablename + "." + _childfield.FieldName + ")"; } else { _fromstr += "MCS_SYS.[dbo].[UF_Spilt](" + _childtablename + ".ExtPropertys,'|'," + _childfield.Position.ToString() + ")"; } } if (_tablerelation.RelationCondition != "") { _fromstr += " AND " + _tablerelation.RelationCondition + " "; } } } if (_selectfromstr != "") { _fromstr += _selectfromstr; } _sqlstring = _selectstr + _fromstr; #endregion if (_m.ConditionSQL != "") { _sqlstring += " WHERE " + _m.ConditionSQL; } if (_m.OrderString != "") { _sqlstring += " ORDER BY " + _m.OrderString; } return(_sqlstring); }
protected void ddl_TableName_SelectedIndexChanged(object sender, EventArgs e) { IList<UD_ModelFields> fields = UD_ModelFieldsBLL.GetModelList("TableID='" + ddl_TableName.SelectedValue + "'"); foreach (Rpt_DataSetFields f in new Rpt_DataSetBLL((Guid)ViewState["ID"]).GetFields()) { UD_ModelFields field = fields.FirstOrDefault(p => p.ID == f.FieldID); if (field != null) { UD_TableList table = new UD_TableListBLL(field.RelationTableName).Model; if (field.RelationType == 2 && table != null && table.TreeFlag == "Y") continue; fields.Remove(field); } } cbxl_Fields.DataSource = fields; cbxl_Fields.DataBind(); }
/// <summary> /// Init the components of the panel through the special pageid /// </summary> private void InitComponents() { HtmlTable T_Content = new HtmlTable(); T_Content.CellPadding = 0; T_Content.CellSpacing = 0; T_Content.Width = "100%"; T_Content.Border = 0; T_Content.ID = "T_Content_" + ID; this.Controls.Add(T_Content); UD_DetailViewBLL _DetailViewBll = new UD_DetailViewBLL(DetailViewCode, true); IList <UD_Panel> _panellist = _DetailViewBll.GetDetailPanels(); Hashtable _htFieldControlsInfo = new Hashtable(); foreach (UD_Panel _panelmodel in _panellist) { HtmlTableRow tr_panel = new HtmlTableRow();//Create one TableRow for a panel tr_panel.ID = _panelmodel.Code; if (_panelmodel.Enable.ToUpper() == "N") { tr_panel.Visible = false; } HtmlTableCell tc_panel = new HtmlTableCell(); string _tablestytle = _panelmodel.TableStyle; string[] _tablestyles = _panelmodel.TableStyle.Split(new char[] { ',' }); if (_tablestyles.Length < 3) { _tablestyles = ("tabForm,dataLabel,dataField").Split(new char[] { ',' }); } #region The title of the panel if (_panelmodel.Name != "") { HtmlTable tb_panel_title = new HtmlTable(); tb_panel_title.CellPadding = 0; tb_panel_title.CellSpacing = 0; tb_panel_title.Width = "100%"; tb_panel_title.Height = "28px"; tb_panel_title.Border = 0; tb_panel_title.Attributes["class"] = "h3Row"; HtmlTableRow tr_panel_title = new HtmlTableRow(); HtmlTableCell tc_panel_title = new HtmlTableCell(); tc_panel_title.InnerHtml = "<h3>" + _panelmodel.Name + "</h3>"; tr_panel_title.Cells.Add(tc_panel_title); tb_panel_title.Rows.Add(tr_panel_title); tc_panel.Controls.Add(tb_panel_title); } #endregion #region The content of the panel IList <UD_Panel_ModelFields> fields = new UD_PanelBLL(_panelmodel.ID, true).GetModelFields(); int FieldCount = _panelmodel.FieldCount; HtmlTable tb_panel_content = new HtmlTable(); tb_panel_content.Width = "100%"; tb_panel_content.Attributes["class"] = _tablestyles[0]; int i = 0; foreach (UD_Panel_ModelFields _panel_modelfields in fields) { if (_panel_modelfields.Visible == "N") { continue; } UD_ModelFields _modelfieldsmodel = new UD_ModelFieldsBLL(_panel_modelfields.FieldID, true).Model; UD_TableList _tablemodel = new UD_TableListBLL(_modelfieldsmodel.TableID, true).Model; #region 判断该控件是否已存在 if (_htFieldControlsInfo.Contains(_tablemodel.ModelClassName + "_" + _modelfieldsmodel.FieldName)) { continue; } #endregion #region 判断是否要增加新行 HtmlTableRow tr_panel_detail; if (i >= FieldCount || i == 0) { tr_panel_detail = new HtmlTableRow(); tb_panel_content.Rows.Add(tr_panel_detail); i = 0; } else { tr_panel_detail = tb_panel_content.Rows[tb_panel_content.Rows.Count - 1]; } #endregion #region 增加Label Cell HtmlTableCell tc_displayname = new HtmlTableCell(); tc_displayname.Attributes["Class"] = _tablestyles[1]; tc_displayname.InnerText = string.IsNullOrEmpty(_panel_modelfields.LabelText) ? _modelfieldsmodel.DisplayName : _panel_modelfields.LabelText; if (tc_displayname.InnerText.Length <= 6) { tc_displayname.Attributes["Style"] = "width: 80px; height: 18px;"; } else { tc_displayname.Attributes["Style"] = "width: 100px; height: 18px;"; } tc_displayname.Attributes["nowrap"] = "nowrap"; tr_panel_detail.Cells.Add(tc_displayname); #endregion #region 增加Field Cell HtmlTableCell tc_control = new HtmlTableCell(); tc_control.Attributes["Class"] = _tablestyles[2]; if (_panel_modelfields.ColSpan > 0) { if (i + _panel_modelfields.ColSpan <= FieldCount) { tc_control.ColSpan = 2 * _panel_modelfields.ColSpan - 1; i = i + _panel_modelfields.ColSpan; } else { tc_control.ColSpan = 2 * (FieldCount - i) - 1; i = 0; } } else { i++; } WebControl control = null; int RelationType = _modelfieldsmodel.RelationType; string RelationTableName = _modelfieldsmodel.RelationTableName; string RelationValueField = _modelfieldsmodel.RelationValueField; string RelationTextField = _modelfieldsmodel.RelationTextField; #region 根据控件类型生成相应的控件 switch (_panel_modelfields.ControlType) { case 1: //Label control = new Label(); break; case 2: //TextBox control = new TextBox(); if (_modelfieldsmodel.DataType == 4) { control.Attributes["onfocus"] = "WdatePicker();"; } break; case 3: //DropDownList control = new DropDownList(); if (RelationType == 1) //Relation to the dictionary { ((DropDownList)control).DataSource = DictionaryBLL.GetDicCollections(RelationTableName, true); } else if (RelationType == 2) //Relation to the model table { ((DropDownList)control).DataSource = TreeTableBLL.GetRelationTableSourceData(RelationTableName, RelationValueField, RelationTextField); } else { break; } ((DropDownList)control).DataTextField = "Value"; ((DropDownList)control).DataValueField = "Key"; ((DropDownList)control).DataBind(); if (_modelfieldsmodel.DataType != 5) { ((DropDownList)control).Items.Insert(0, new ListItem("请选择...", "0")); } else { ((DropDownList)control).Items.Insert(0, new ListItem("请选择...", Guid.Empty.ToString())); } break; case 4: //RadioButtonList control = new RadioButtonList(); if (RelationType == 1) //Relation to the dictionary { ((RadioButtonList)control).DataSource = DictionaryBLL.GetDicCollections(RelationTableName, true); } else if (RelationType == 2) //Relation to the model table { ((RadioButtonList)control).DataSource = TreeTableBLL.GetRelationTableSourceData(RelationTableName, RelationValueField, RelationTextField); } else { break; } ((RadioButtonList)control).RepeatColumns = 6; ((RadioButtonList)control).RepeatDirection = RepeatDirection.Horizontal; ((RadioButtonList)control).DataTextField = "Value"; ((RadioButtonList)control).DataValueField = "Key"; ((RadioButtonList)control).DataBind(); if (((RadioButtonList)control).Items.Count != 0) { ((RadioButtonList)control).SelectedIndex = 0; } break; case 5: //MutiLinesTextBox control = new TextBox(); ((TextBox)control).TextMode = TextBoxMode.MultiLine; if (_panel_modelfields.ControlHeight > 0) { ((TextBox)control).Height = new Unit(_panel_modelfields.ControlHeight); } break; case 6: //TextBox supports search control = new MCSSelectControl(); if (RelationType == 2) //Relation to the model table { control.ID = _tablemodel.ModelClassName + "_" + _modelfieldsmodel.FieldName; if (_panel_modelfields.SearchPageURL != "") { ((MCSSelectControl)control).PageUrl = _panel_modelfields.SearchPageURL; } else if (_modelfieldsmodel.SearchPageURL != "") { ((MCSSelectControl)control).PageUrl = _modelfieldsmodel.SearchPageURL; } } break; case 7: //MCSTreeControl control = new MCSTreeControl(); if (RelationType == 2) //Relation to the model table { control.ID = _tablemodel.ModelClassName + "_" + _modelfieldsmodel.FieldName; if (_modelfieldsmodel.RelationTableName == "MCS_SYS.dbo.Addr_OrganizeCity") { #region 如果为管理片区字段,则取所能管辖的片区 if (System.Web.HttpContext.Current.Session["AccountType"] == null || (int)System.Web.HttpContext.Current.Session["AccountType"] == 1) { //员工 Org_StaffBLL staff = new Org_StaffBLL((int)System.Web.HttpContext.Current.Session["UserID"]); ((MCSTreeControl)control).DataSource = staff.GetStaffOrganizeCity(); ((MCSTreeControl)control).IDColumnName = "ID"; ((MCSTreeControl)control).NameColumnName = "Name"; ((MCSTreeControl)control).ParentColumnName = "SuperID"; if (((MCSTreeControl)control).DataSource.Select("ID = 1").Length > 0 || staff.Model.OrganizeCity == 0) { ((MCSTreeControl)control).RootValue = "0"; if (!Page.IsPostBack) { ((MCSTreeControl)control).SelectValue = "0"; } } else { ((MCSTreeControl)control).RootValue = new Addr_OrganizeCityBLL(staff.Model.OrganizeCity).Model.SuperID.ToString(); if (!Page.IsPostBack) { ((MCSTreeControl)control).SelectValue = staff.Model.OrganizeCity.ToString(); } } } else if ((int)System.Web.HttpContext.Current.Session["AccountType"] == 2 && System.Web.HttpContext.Current.Session["OrganizeCity"] != null) { //商业客户 int city = (int)System.Web.HttpContext.Current.Session["OrganizeCity"]; Addr_OrganizeCityBLL citybll = new Addr_OrganizeCityBLL(city); ((MCSTreeControl)control).DataSource = citybll.GetAllChildNodeIncludeSelf(); ((MCSTreeControl)control).RootValue = citybll.Model.SuperID.ToString(); ((MCSTreeControl)control).IDColumnName = "ID"; ((MCSTreeControl)control).NameColumnName = "Name"; ((MCSTreeControl)control).ParentColumnName = "SuperID"; if (!Page.IsPostBack) { ((MCSTreeControl)control).SelectValue = city.ToString(); } } #endregion } else if (_modelfieldsmodel.RelationTableName == "MCS_SYS.dbo.Addr_OfficialCity") { ((MCSTreeControl)control).TableName = "MCS_SYS.dbo.Addr_OfficialCity"; ((MCSTreeControl)control).IDColumnName = "ID"; ((MCSTreeControl)control).NameColumnName = "Name"; ((MCSTreeControl)control).ParentColumnName = "SuperID"; ((MCSTreeControl)control).RootValue = "0"; if (!Page.IsPostBack) { ((MCSTreeControl)control).SelectValue = "0"; } } else { ((MCSTreeControl)control).TableName = RelationTableName; ((MCSTreeControl)control).IDColumnName = RelationValueField; ((MCSTreeControl)control).NameColumnName = RelationTextField; ((MCSTreeControl)control).ParentColumnName = "SuperID"; } } break; } #endregion control.ID = _tablemodel.ModelClassName + "_" + _modelfieldsmodel.FieldName; control.Enabled = _panel_modelfields.Enable.ToUpper() == "Y"; if (_panel_modelfields.ControlWidth > 0) { control.Width = _panel_modelfields.ControlWidth; } tc_control.Controls.Add(control); #region 如果是文本框时,加上输入验证控件 if (_panel_modelfields.IsRequireField == "Y") { Label lbl_reqinfo = new Label(); lbl_reqinfo.Text = " *"; lbl_reqinfo.ForeColor = System.Drawing.Color.Red; tc_control.Controls.Add(lbl_reqinfo); } if (_panel_modelfields.ControlType == 2 || _panel_modelfields.ControlType == 5) { if (_panel_modelfields.IsRequireField == "Y") { RequiredFieldValidator _requiredfieldvalidator = new RequiredFieldValidator(); _requiredfieldvalidator.ControlToValidate = control.ID; _requiredfieldvalidator.Display = ValidatorDisplay.Dynamic; _requiredfieldvalidator.ErrorMessage = "必填"; _requiredfieldvalidator.ForeColor = System.Drawing.Color.Red; _requiredfieldvalidator.ValidationGroup = _validationgroup; tc_control.Controls.Add(_requiredfieldvalidator); } if (_panel_modelfields.RegularExpression != "") { RegularExpressionValidator _regularexpressionvalidator = new RegularExpressionValidator(); _regularexpressionvalidator.ControlToValidate = control.ID; _regularexpressionvalidator.ErrorMessage = "数据格式不正确"; _regularexpressionvalidator.ForeColor = System.Drawing.Color.Red; _regularexpressionvalidator.ValidationExpression = _panel_modelfields.RegularExpression; _regularexpressionvalidator.ValidationGroup = ValidationGroup; _regularexpressionvalidator.Display = ValidatorDisplay.Dynamic; tc_control.Controls.Add(_regularexpressionvalidator); } else { if (_modelfieldsmodel.DataType == 1 || _modelfieldsmodel.DataType == 2 || _modelfieldsmodel.DataType == 4) //非varchar 字符串 { CompareValidator _comparevalidator = new CompareValidator(); _comparevalidator.ControlToValidate = control.ID; _comparevalidator.Operator = ValidationCompareOperator.DataTypeCheck; _comparevalidator.Display = ValidatorDisplay.Dynamic; _comparevalidator.ForeColor = System.Drawing.Color.Red; _comparevalidator.ValidationGroup = _validationgroup; if (_modelfieldsmodel.DataType == 1)//int { _comparevalidator.Type = ValidationDataType.Integer; _comparevalidator.ErrorMessage = "应为整数"; } if (_modelfieldsmodel.DataType == 2)//decimal { _comparevalidator.Type = ValidationDataType.Double; _comparevalidator.ErrorMessage = "应为数字"; } if (_modelfieldsmodel.DataType == 4)//datetime { _comparevalidator.Type = ValidationDataType.Date; _comparevalidator.ErrorMessage = "日期格式不正确"; } tc_control.Controls.Add(_comparevalidator); } } } #endregion if (!string.IsNullOrEmpty(_panel_modelfields.Description)) { Label lb = new Label(); lb.Text = " " + _panel_modelfields.Description; tc_control.Controls.Add(lb); } tr_panel_detail.Cells.Add(tc_control); #endregion #region 将控件记录到字段控件HashTable中 FieldControlInfo fieldcontrolinfo = new FieldControlInfo(); fieldcontrolinfo.FieldID = _modelfieldsmodel.ID; fieldcontrolinfo.FieldName = _modelfieldsmodel.FieldName; fieldcontrolinfo.ModelName = _tablemodel.ModelClassName; fieldcontrolinfo.ControlType = _panel_modelfields.ControlType; fieldcontrolinfo.ControlName = control.ID; fieldcontrolinfo.DisplayMode = _panel_modelfields.DisplayMode; fieldcontrolinfo.Panel_Field_ID = _panel_modelfields.ID; _htFieldControlsInfo.Add(fieldcontrolinfo.ControlName, fieldcontrolinfo); #endregion } #endregion tc_panel.Controls.Add(tb_panel_content); tr_panel.Cells.Add(tc_panel); T_Content.Rows.Add(tr_panel); } ViewState["FieldControlsInfo"] = _htFieldControlsInfo; }
private void CreateSqlString() { string _sqlstring = ""; string _selectstr = "SELECT "; string _fromstr = ""; string _tmpfrom = ""; //字段如果是关联时,临时生成的from sql #region create the select string UD_PanelBLL _panelbll = new UD_PanelBLL(PanelCode, true); if (_panelbll.Model == null) { throw new Exception("Panel:" + PanelCode + ",未能找到该Code对应的Panel,Code无效!"); } Dictionary <string, UD_Panel_ModelFields> dicTreeColumnList = new Dictionary <string, UD_Panel_ModelFields>(); IList <UD_Panel_ModelFields> _panel_modelfieldsmodels = _panelbll.GetModelFields(); OrderFields = _panelbll.Model.DefaultSortFields; if (_panel_modelfieldsmodels.Count == 0) { //未定义Panel字段 ViewState["SqlString"] = ""; return; } if (!string.IsNullOrEmpty(_panelbll.Model.Description)) { string[] _array = _panelbll.Model.Description.Split(new char[] { '|' }, StringSplitOptions.None); if (_array.Length >= 2) { ViewState["DBConnectString"] = _array[1]; } } foreach (UD_Panel_ModelFields _panel_modelfields in _panel_modelfieldsmodels) { UD_ModelFields _modelfield = new UD_ModelFieldsBLL(_panel_modelfields.FieldID, true).Model; UD_TableList _tablemodel = new UD_TableListBLL(_modelfield.TableID, true).Model; string _fieldfullname = _tablemodel.ModelClassName + "_" + _modelfield.FieldName; #region 判断字段关联类型,决定如果创建SQL switch (_modelfield.RelationType) { case 1: //Relation to dic if (_panel_modelfields.DisplayMode == 1) //Bound the id value of the field { if (_modelfield.Flag == "Y") { _selectstr += _tablemodel.Name + "." + _modelfield.FieldName + " AS " + _fieldfullname + ","; } else //扩展字段 { _selectstr += "[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") AS " + _fieldfullname + ","; } } else //Bound the text value of the field { //计算出关联字典表的别名"_vname" string _vname = "V_Dictionary_Data" + "_" + _modelfield.FieldName; if (_modelfield.Flag == "Y") { _selectstr += _vname + ".Name" + " AS " + _fieldfullname + ","; _tmpfrom += " left join V_Dictionary_Data AS " + _vname + " ON " + _tablemodel.Name + "." + _modelfield.FieldName + "=" + _vname + ".Code AND " + _vname + ".TableName='" + _modelfield.RelationTableName + "' "; } else //扩展字段 { _selectstr += _vname + ".Name" + " AS " + _fieldfullname + ","; _tmpfrom += " left join V_Dictionary_Data AS " + _vname + " ON [dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") =" + _vname + ".Code AND " + _vname + ".TableName='" + _modelfield.RelationTableName + "' "; } } break; case 2: //Relation to model table if (_panel_modelfields.TreeLevel > 0 && new UD_TableListBLL(_modelfield.RelationTableName).Model.TreeFlag == "Y") { #region 字段关联到树形结构表,且要显示上层父结点信息 _fieldfullname += _panel_modelfields.TreeLevel.ToString(); if (_modelfield.Flag == "Y") { _selectstr += _tablemodel.Name + "." + _modelfield.FieldName + " AS " + _fieldfullname + ","; } else //扩展字段 { _selectstr += "[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") AS " + _fieldfullname + ","; } dicTreeColumnList.Add(_fieldfullname, _panel_modelfields); #endregion #region 注释 //if (param.TreeLevel == 100 && param.DisplayMode == 2) //{ // //显示字段路径全称 // if (_modelfield.Flag == "Y") // _selectstr += "[dbo].[Exuf_TreeTable_GetFullName]('" + _modelfield.RelationTableName + "'," + _tablemodel.Name + "." + _modelfield.FieldName + ",1) AS " + _fieldfullname + ","; // else//扩展字段 // _selectstr += "[dbo].[Exuf_TreeTable_GetFullName]('" + _modelfield.RelationTableName + "'," + "[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + "),0) AS " + _fieldfullname + ","; //} //else //{ // _fieldfullname += param.TreeLevel.ToString(); // if (param.DisplayMode == 1)//Bound the id value of the field // { // if (_modelfield.Flag == "Y") // _selectstr += "[dbo].[Exuf_TreeTable_GetSuperIDByLevel]('" + _modelfield.RelationTableName + "'," + _tablemodel.Name + "." + _modelfield.FieldName + "," + param.TreeLevel.ToString() + ") AS " + _fieldfullname + ","; // else//扩展字段 // { // _selectstr += "[dbo].[Exuf_TreeTable_GetSuperIDByLevel]('" + _modelfield.RelationTableName + "'," + "[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ")," + param.TreeLevel.ToString() + ") AS " + _fieldfullname + ","; // } // } // else//Bound the text value of the field // { // if (_modelfield.Flag == "Y") // _selectstr += "[dbo].[Exuf_TreeTable_GetSuperNameByLevel]('" + _modelfield.RelationTableName + "'," + _tablemodel.Name + "." + _modelfield.FieldName + "," + param.TreeLevel.ToString() + ") AS " + _fieldfullname + ","; // else//扩展字段 // _selectstr += "[dbo].[Exuf_TreeTable_GetSuperNameByLevel]('" + _modelfield.RelationTableName + "'," + "[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ")," + param.TreeLevel.ToString() + ") AS " + _fieldfullname + ","; // } //} #endregion } else { #region 需关联到树形结构表 if (_panel_modelfields.DisplayMode == 1) //Bound the id value of the field { if (_modelfield.Flag == "Y") { _selectstr += _tablemodel.Name + "." + _modelfield.FieldName + " AS " + _fieldfullname + ","; } else //扩展字段 { _selectstr += "[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") AS " + _fieldfullname + ","; } } else //Bound the text value of the field { #region 计算出关联表的别名"_vname" string _vname = ""; int pos = _modelfield.RelationTableName.LastIndexOf('.'); if (pos >= 0) { _vname = _modelfield.RelationTableName.Substring(pos + 1) + "_" + _modelfield.FieldName; } else { _vname = _modelfield.RelationTableName + "_" + _modelfield.FieldName; } #endregion if (_modelfield.Flag == "Y") { _selectstr += _vname + "." + _modelfield.RelationTextField + " AS " + _fieldfullname + ","; _tmpfrom += " left join " + _modelfield.RelationTableName + " AS " + _vname + " ON " + _tablemodel.Name + "." + _modelfield.FieldName + "=" + _vname + "." + _modelfield.RelationValueField; } else //扩展字段 { _selectstr += _vname + "." + _modelfield.RelationTextField + " AS " + _fieldfullname + ","; _tmpfrom += " left join " + _modelfield.RelationTableName + " AS " + _vname + " ON [dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") =" + _vname + "." + _modelfield.RelationValueField; } } #endregion } break; default: //No relation if (_modelfield.Flag == "Y") { _selectstr += _tablemodel.Name + "." + _modelfield.FieldName + " AS " + _fieldfullname + ","; } else { _selectstr += "[dbo].[UF_Spilt](" + _tablemodel.Name + ".ExtPropertys,'|'," + _modelfield.Position.ToString() + ") AS " + _fieldfullname + ","; } break; } #endregion //Add a bound field to the gridview according to the selected field BoundField _boundfield = new BoundField(); _boundfield.HeaderText = string.IsNullOrEmpty(_panel_modelfields.LabelText) ? _modelfield.DisplayName : _panel_modelfields.LabelText; _boundfield.DataField = _fieldfullname; _boundfield.SortExpression = _fieldfullname; if (!_panel_modelfields.FormatString.StartsWith("{0:")) { _boundfield.DataFormatString = "{0:" + _panel_modelfields.FormatString + "}"; } else { _boundfield.DataFormatString = _panel_modelfields.FormatString; } //_boundfield.Visible = _panel_modelfieldsmodel.Visible == "Y"; if (_panel_modelfields.Visible == "Y") { if (_panel_modelfields.SortID - 1 > Columns.Count) { Columns.Add(_boundfield); } else { Columns.Insert(_panel_modelfields.SortID - 1, _boundfield); } } } _selectstr = _selectstr.Substring(0, _selectstr.Length - 1); #endregion #region create the from string of sql IList <UD_Panel_TableRelation> _panel_tablerelations = _panelbll.GetTableRelations(); if (_panel_tablerelations.Count == 0) { IList <UD_Panel_Table> _panel_tables = _panelbll.GetPanelTables(); if (_panel_tables.Count == 0) { throw new Exception("Panel:" + PanelCode + "在定义中未包括包含的表信息!"); } _fromstr = " FROM " + new UD_TableListBLL(_panel_tables[0].TableID, true).Model.Name; } else { foreach (UD_Panel_TableRelation _panel_tablerelation in _panel_tablerelations) { string _parenttablename = new UD_TableListBLL(_panel_tablerelation.ParentTableID, true).Model.Name; string _childtablename = new UD_TableListBLL(_panel_tablerelation.ChildTableID, true).Model.Name; UD_ModelFields _parentfield = new UD_ModelFieldsBLL(_panel_tablerelation.ParentFieldID, true).Model; UD_ModelFields _childfield = new UD_ModelFieldsBLL(_panel_tablerelation.ChildFieldID, true).Model; if (_panel_tablerelation.JoinMode == "") { _panel_tablerelation.JoinMode = "LEFT JOIN"; } if (_fromstr == "") { _fromstr = " FROM " + _parenttablename + " "; } if (_parentfield.Flag == "Y" && _childfield.Flag == "Y") { _fromstr += " " + _panel_tablerelation.JoinMode + " " + _childtablename + " ON " + _parenttablename + "." + _parentfield.FieldName + "=" + _childtablename + "." + _childfield.FieldName + " "; } else { _fromstr += " " + _panel_tablerelation.JoinMode + " " + _childtablename + " ON "; if (_parentfield.Flag == "Y") { _fromstr += "CONVERT(VarChar," + _parenttablename + "." + _parentfield.FieldName + ")"; } else { _fromstr += "[dbo].[UF_Spilt](" + _parenttablename + ".ExtPropertys,'|'," + new UD_ModelFieldsBLL(_panel_tablerelation.ParentFieldID, true).Model.Position + ")"; } _fromstr += " = "; if (_childfield.Flag == "Y") { _fromstr += "CONVERT(VarChar," + _childtablename + "." + _childfield.FieldName + ")"; } else { _fromstr += "[dbo].[UF_Spilt](" + _childtablename + ".ExtPropertys,'|'," + new UD_ModelFieldsBLL(_panel_tablerelation.ChildFieldID, true).Model.Position + ")"; } } if (_panel_tablerelation.RelationCondition != "") { _fromstr += " AND " + _panel_tablerelation.RelationCondition + " "; } } } if (_tmpfrom != "") { _fromstr += _tmpfrom; } _sqlstring = _selectstr + _fromstr; #endregion ViewState["SqlString"] = _sqlstring; ViewState["TreeColumn"] = dicTreeColumnList; }
protected void bt_OK_Click(object sender, EventArgs e) { Rpt_DataSetFieldsBLL _bll; if ((Guid)ViewState["ID"] != Guid.Empty) _bll = new Rpt_DataSetFieldsBLL((Guid)ViewState["ID"]); else _bll = new Rpt_DataSetFieldsBLL(); _bll.Model.DataSet = (Guid)ViewState["DataSet"]; _bll.Model.FieldName = tbx_FieldName.Text; _bll.Model.DisplayName = tbx_DisplayName.Text; _bll.Model.DataType = int.Parse(ddl_DataType.SelectedValue); _bll.Model.Description = tbx_Description.Text; if (ddl_IsComputeField.SelectedValue == "Y") { _bll.Model.IsComputeField = "Y"; _bll.Model.Expression = tbx_Expression.Text.Trim(); if (_bll.Model.Expression == "") { tbx_Expression.Focus(); MessageBox.Show(this, "请正确录入计算列的表达式!"); return; } } else { _bll.Model.IsComputeField = "N"; _bll.Model.Expression = ""; } if (tbx_SortID.Text != "") _bll.Model.ColumnSortID = int.Parse(tbx_SortID.Text); _bll.Model.DisplayMode = int.Parse(ddl_DisplayMode.SelectedValue); #region 树形字段有指定层次时,重设字段名 //要与查询条件生成的字段要一致,以便支持多同一树形字段多列显示 if (tbx_TreeLevel.Enabled) { UD_ModelFields f = new UD_ModelFieldsBLL(_bll.Model.FieldID).Model; if (new UD_TableListBLL(f.RelationTableName).Model.TreeFlag == "Y") { int level = 0; int.TryParse(tbx_TreeLevel.Text, out level); _bll.Model.TreeLevel = level; UD_TableList t = new UD_TableListBLL(f.TableID).Model; if (level > 0) _bll.Model.FieldName = t.ModelClassName + "_" + f.FieldName + level.ToString(); else _bll.Model.FieldName = t.ModelClassName + "_" + f.FieldName; } } #endregion if (Rpt_DataSetFieldsBLL.GetModelList("DataSet='" + _bll.Model.DataSet.ToString() + "' AND FieldName='" + _bll.Model.FieldName + "' AND ID <>'" + _bll.Model.ID.ToString() + "'").Count > 0) { MessageBox.Show(this, "对不起,字段名已重复,请更改字段名称!"); return; } if ((Guid)ViewState["ID"] != Guid.Empty) { _bll.Update(); } else { _bll.Add(); } new Rpt_DataSetBLL((Guid)ViewState["DataSet"]).ClearCache(); Response.Redirect("Rpt_DataSetFieldsList.aspx?ID=" + ViewState["DataSet"].ToString()); }