private void txtTabText_Leave(object sender, EventArgs e) { FrmDataQueryDesignDAO.UpdateTabText(Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), tabControl2.SelectedIndex, ((TextBox)sender).Text); FrmMain.frmMain.tsrLblCurrentStatusText = "对【Tab标题】的修改,已成功保存"; tabControl2.TabPages[tabControl2.SelectedIndex].Text = ((TextBox)sender).Text; }
private void tvtbQueryList_User_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.Tag == null) { tabControl2.TabPages.Clear(); //调用显示查询条件B tableLayoutpnlQueryCondition.Visible = true; DataTable dtQueryPara = new DataTable(); dtQueryPara = FrmDataQueryDesignDAO.GetUserQueryInfo(tvtbQueryList_User.SelectedNode.Name); if (!string.IsNullOrEmpty(dtQueryPara.Rows[0].ItemArray[6].ToString().Trim())) { int iRowCount = dtQueryPara.Rows.Count; string[,] strsQueryTmp = new string[iRowCount, 3]; DataTable[] dtTmp = new DataTable[iRowCount]; for (int i = 0; i < iRowCount; i++) { strsQueryTmp[i, 0] = dtQueryPara.Rows[i].ItemArray[5].ToString(); //"txt";/"cbo"/"dtp"; strsQueryTmp[i, 1] = FrmDataQueryDesignBLL.SqlChangeToControlAbbreviation(dtQueryPara.Rows[i].ItemArray[7].ToString()); strsQueryTmp[i, 2] = dtQueryPara.Rows[i].ItemArray[7].ToString(); //dt[1] = BSCommon.getDepartmentList();//下标代表代号控件类型是cbo时用 } strsControlTmp = strsQueryTmp; addControl(strsControlTmp); } //调用显示查询条件E } }
private void querySqlTextBox_Leave(object sender, EventArgs e) { FrmDataQueryDesignDAO.CreateProcedureParaList(dgveQueryItemList.CurrentRow.Cells[0].Value.ToString(), querySqlTextBox.Text); //使sql更改同步到DataGridView bS_QuerySqlParameterTableAdapter.Fill(dsPSAP.BS_QuerySqlParameter); dgveParaList.DataSource = bS_QuerySqlParameterBindingSource; }
private void tvwTablesHeader_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { if (!string.IsNullOrEmpty(e.Label)) { int i = tabControl2.SelectedIndex; FrmDataQueryDesignDAO.saveLabelEdit(Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), Convert.ToInt16(tvwTablesHeader[i].Tag), tvwTablesHeader[i].SelectedNode.Name, e.Label); } }
/// <summary> /// 将表中的项按照层次加到TreeNode中 /// </summary> /// <param name="treeV"></param> /// <param name="menuS"></param> public static void tvwTableHeaderGetNode(TreeView treeV, int iQuerySqlId, int iTabIndex) { DataTable dt = FrmDataQueryDesignDAO.GetTopTableHeaderData(iQuerySqlId, iTabIndex); //遍历数据表中的一级菜单项 foreach (DataRow dr in dt.Rows) { //循环添加根标题 TreeNode node1 = treeV.Nodes.Add(dr["HeaderName"].ToString(), dr["HeaderText"].ToString()); GetChildNode1(node1, dr["HeaderName"].ToString(), iQuerySqlId, iTabIndex); } }
//生成子部门节点 private static void GetChildNode1(TreeNode node1, string strParentHeaderName, int iQuerySqlId, int iTabIndex) { DataTable dt1 = FrmDataQueryDesignDAO.GetChildTableHeaderData(strParentHeaderName, iQuerySqlId, iTabIndex); foreach (DataRow dr1 in dt1.Rows) { if (dr1 != null) { TreeNode node2 = node1.Nodes.Add(dr1["HeaderName"].ToString(), dr1["HeaderText"].ToString()); GetChildNode1(node2, node2.Name, iQuerySqlId, iTabIndex);//递归 } } }
/// <summary> /// 将表中的项按照层次加到TreeNode中 /// </summary> /// <param name="treeV"></param> /// <param name="menuS"></param> public static void tvtbQueryListGetNode(TreeView treeV) { DataTable dt = FrmDataQueryDesignDAO.GetTopQuerySqlData(); //获取分组数据 //遍历数据表中的一级菜单项 foreach (DataRow dr in dt.Rows) { //循环添加根部门 TreeNode node1 = treeV.Nodes.Add(dr["AutoId"].ToString(), dr["QueryText"].ToString()); node1.Tag = "G"; GetChildNode(node1, dr["AutoId"].ToString()); } }
//生成子部门节点 private static void GetChildNode(TreeNode node1, string strParentId) { //ToolStripMenuItem pItem = (ToolStripMenuItem)item; DataTable dt1 = FrmDataQueryDesignDAO.GetChildQuerySqlData(strParentId);//获取查询数据 foreach (DataRow dr1 in dt1.Rows) { if (dr1 != null) { TreeNode node2 = node1.Nodes.Add(dr1["AutoId"].ToString(), dr1["QueryText"].ToString()); GetChildNode(node2, node2.Name);//递归 } } }
//显示查询条件End #region 表标题树相关方法 //private void insertColumnHeader_Click(object sender, EventArgs e) //{ // try // { // int i = tabControl2.SelectedIndex; // string nName; // nName = tvwTablesHeader[i].SelectedNode.Name; // if (tvwTablesHeader[i].SelectedNode.Parent != null) // { // tvwTablesHeader[i].SelectedNode.Parent.Nodes.Insert(tvwTablesHeader[i].SelectedNode.Index, "插入列标题"); // } // else // { // tvwTablesHeader[i].Nodes.Insert(tvwTablesHeader[i].SelectedNode.Index, "插入列标题"); // } // tvwTablesHeader[i].SelectedNode.Expand(); // tvwTablesHeader[tabControl2.SelectedIndex].SelectedNode = tvwTablesHeader[i].SelectedNode.PrevNode; // string nodeId = FrmRightBLL.getNewNodeId(); // tvwTablesHeader[i].SelectedNode.Name = nodeId; // FrmDataQueryDesignDAO.saveCreateChildNode(Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), // Convert.ToInt16(tvwTablesHeader[i].Tag), nodeId, tvwTablesHeader[i].SelectedNode.Text, tvwTablesHeader[i].SelectedNode.Parent != null && tvwTablesHeader[i].SelectedNode.Parent.Name != string.Empty ? tvwTablesHeader[i].SelectedNode.Parent.Name : null); // } // catch (Exception e1) // { // MessageBox.Show(e1.Message); // } //} private void insertChildColumnHeader_Click(object sender, EventArgs e) { try { int i = tabControl2.SelectedIndex; tvwTablesHeader[i].SelectedNode.Nodes.Add("新建子列标题"); tvwTablesHeader[i].SelectedNode.Expand(); tvwTablesHeader[i].SelectedNode = tvwTablesHeader[i].SelectedNode.LastNode; string nodeId = FrmRightBLL.getNewNodeId(); tvwTablesHeader[i].SelectedNode.Name = nodeId; FrmDataQueryDesignDAO.saveCreateChildNode(Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), Convert.ToInt16(tvwTablesHeader[i].Tag), nodeId, tvwTablesHeader[i].SelectedNode.Text, tvwTablesHeader[i].SelectedNode.Parent.Name); } catch (Exception e1) { MessageBox.Show(e1.Message); } }
private void createRootColumnHeader_Click(object sender, EventArgs e) { try { int i = tabControl2.SelectedIndex; tvwTablesHeader[i].Nodes.Add("新建根列标题"); tvwTablesHeader[i].SelectedNode.Expand(); //选定新建节点 tvwTablesHeader[i].SelectedNode = tvwTablesHeader[i].Nodes[tvwTablesHeader[i].Nodes.Count - 1]; string nodeId = FrmRightBLL.getNewNodeId(); tvwTablesHeader[i].SelectedNode.Name = nodeId; FrmDataQueryDesignDAO.saveCreateRootNode(Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), Convert.ToInt16(tvwTablesHeader[i].Tag), nodeId, tvwTablesHeader[i].SelectedNode.Text); } catch (Exception ex) { ExceptionHandler.HandleException(this.Text + "--deleteRootColumnHeader_Click错误。", ex); } }
private void deleteTreeNode_Click(object sender, EventArgs e) { try { if (tvtbQueryList.Nodes.Count > 1 || tvtbQueryList.SelectedNode.Parent != null) { if (tvtbQueryList.SelectedNode.Nodes.Count > 0) { MessageBox.Show("当前文件夹包含查询,请先删除查询!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (MessageBox.Show("真的要删除吗?", "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { //先删除对此数据有依赖关系的相关数数 FrmDataQueryDesignDAO.DeleteQueryCorrelationData(Convert.ToInt16(tvtbQueryList.SelectedNode.Name)); //删除部门表数据 bS_QuerySqlBindingSource.RemoveCurrent(); Validate(); bS_QuerySqlBindingSource.EndEdit(); bS_QuerySqlTableAdapter.Update(dsPSAP.BS_QuerySql); tvtbQueryList.SelectedNode.Remove(); } } } else { MessageBox.Show("不能删除最后一个文件夹!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } //catch (System.Data.SqlClient.SqlException) //{ // MessageBox.Show("当前部门已经被其它数据使用,不能删除!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //} catch (Exception e1) { MessageBox.Show(e1.Message); } }
private void deleteTreeNode_Click(object sender, EventArgs e) { try { if (tvtbQueryList.Nodes.Count > 1 || tvtbQueryList.SelectedNode.Parent != null) { if (tvtbQueryList.SelectedNode.Nodes.Count > 0) { MessageHandler.ShowMessageBox("当前文件夹包含查询,请先删除查询!"); } else { if (MessageHandler.ShowMessageBox_YesNo("真的要删除吗?") == DialogResult.Yes) { //先删除对此数据有依赖关系的相关数数 FrmDataQueryDesignDAO.DeleteQueryCorrelationData(Convert.ToInt16(tvtbQueryList.SelectedNode.Name)); //删除部门表数据 bS_QuerySqlBindingSource.RemoveCurrent(); Validate(); bS_QuerySqlBindingSource.EndEdit(); bS_QuerySqlTableAdapter.Update(dsPSAP.BS_QuerySql); tvtbQueryList.SelectedNode.Remove(); } } } else { MessageHandler.ShowMessageBox("不能删除最后一个文件夹!"); } } //catch (System.Data.SqlClient.SqlException) //{ // MessageHandler.ShowMessageBox("当前部门已经被其它数据使用,不能删除!"); //} catch (Exception ex) { ExceptionHandler.HandleException(this.Text + "--删除树节点事件错误。", ex); } }
private void deleteRootColumnHeader_Click(object sender, EventArgs e) { try { int i = tabControl2.SelectedIndex; if (tvwTablesHeader[i].Nodes.Count > 1 || tvwTablesHeader[i].SelectedNode.Parent != null) { if (tvwTablesHeader[i].SelectedNode.Nodes.Count > 0) { MessageBox.Show("包含子部门,不能直接删除,请从最低层列标题开始删!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (MessageBox.Show("真的要删除吗?", "删除确认", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { //删除数据库数据 FrmDataQueryDesignDAO.saveDeleteNode(Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), Convert.ToInt16(tvwTablesHeader[i].Tag), tvwTablesHeader[i].SelectedNode.Name); tvwTablesHeader[i].SelectedNode.Remove(); } } } else { MessageBox.Show("不能删除最后一个标题!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } //catch (System.Data.SqlClient.SqlException) //{ // MessageBox.Show("当前标题已经被其它数据使用,不能删除!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //} catch (Exception e1) { MessageBox.Show(e1.Message); } }
//**************************** /// <summary> /// 执行存储过程并生成结果集相关控件 /// </summary> private void CreateResultControl() { tabControl2.TabPages.Clear(); DataSet ds = new DataSet(); if (tvtbQueryList_User.SelectedNode.Tag == null) { ds = FrmDataQueryDesignDAO.ExecUserProcedure(tvtbQueryList_User.SelectedNode.Name, strsControlTmp); if (ds != null) { string strTabText; string strTabRemarks; int intTablesCount = ds.Tables.Count; dgveQuery = new DataGridViewEx[intTablesCount]; pnlQuery = new Panel[intTablesCount]; txtRemark = new TextBox[intTablesCount]; txtTabText = new TextBox[intTablesCount]; Label[] lbl1 = new Label[intTablesCount]; //客户端不用 Label[] lbl2 = new Label[intTablesCount]; //客户端不用 tvwTablesHeader = new TreeView[intTablesCount]; tableForTabs = new TableLayoutPanel[intTablesCount]; for (int i = 0; i < intTablesCount; i++) { strTabText = "报表" + Convert.ToString(i); strTabRemarks = ""; FrmDataQueryDesignDAO.InitTabInfo(Convert.ToUInt16(tvtbQueryList_User.SelectedNode.Name), i, strTabText, strTabRemarks); //将结果集的每一个表的列标题初始化到数据库中 FrmDataQueryDesignDAO.CreateProcedureParaList(dgveQueryItemList.CurrentRow.Cells[0].Value.ToString(), querySqlTextBox.Text); FrmDataQueryDesignDAO.CreateColumnsTempTable();//建表 foreach (DataColumn dc in ds.Tables[i].Columns) { FrmDataQueryDesignDAO.insertHeaderInfo(dc.ColumnName, dc.Caption); //添加记录 } FrmDataQueryDesignDAO.ExecSqlTran(); //执行 FrmDataQueryDesignDAO.InitHeaderSetting(Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), i); } DataTable dt = FrmDataQueryDesignDAO.GetUserQueryTabsInfo(tvtbQueryList_User.SelectedNode.Name); for (int i = 0; i < intTablesCount; i++) { if (dt != null) { if (!string.IsNullOrEmpty(dt.Rows[i].ItemArray[5].ToString())) { strTabText = dt.Rows[i].ItemArray[5].ToString(); } else { strTabText = "报表" + Convert.ToString(i); } if (!string.IsNullOrEmpty(dt.Rows[i].ItemArray[6].ToString())) { strTabRemarks = dt.Rows[i].ItemArray[6].ToString(); } else { strTabRemarks = ""; } } else { strTabText = "报表" + Convert.ToString(i); strTabRemarks = dt.Rows[i].ItemArray[6].ToString(); } tabControl2.TabPages.Add(strTabText); //tabControl2.TabPages[i].Tag = dt.Rows[i].ItemArray[7]; pnlQuery[i] = new Panel(); pnlQuery[i].Anchor = AnchorStyles.Right & AnchorStyles.Left; pnlQuery[i].Dock = DockStyle.Top; pnlQuery[i].Height = 50; tabControl2.TabPages[i].Controls.Add(pnlQuery[i]); txtTabText[i] = new TextBox(); txtTabText[i].Text = tabControl2.TabPages[i].Text; txtTabText[i].Left = 60; txtTabText[i].Leave += new System.EventHandler(txtTabText_Leave); //客户端不用 txtTabText[i].KeyPress += new System.Windows.Forms.KeyPressEventHandler(ctl_KeyPress); pnlQuery[i].Controls.Add(txtTabText[i]); //客户端不需要此控件 txtRemark[i] = new TextBox(); txtRemark[i].Multiline = true; txtRemark[i].ScrollBars = ScrollBars.Both; txtRemark[i].MaxLength = 500; txtRemark[i].Text = strTabRemarks; txtRemark[i].Top = txtTabText[i].Top + txtTabText[i].Height + 5; //客户端不用 txtRemark[i].Width = pnlQuery[i].Width - 60; //客户端不用 txtRemark[i].Left = 60; //客户端不用 //txtRemark[i].Dock = DockStyle.Bottom; //txtRemark[i].Dock = DockStyle.Fill;//客户端使用 txtRemark[i].Leave += new System.EventHandler(txtRemark_Leave); //客户端不用 pnlQuery[i].Controls.Add(txtRemark[i]); // //FrmDataQueryDesignDAO.InitTabInfo(Convert.ToUInt16(tvtbQueryList_User.SelectedNode.Name), i, strTabText, strTabRemarks); lbl1[i] = new Label(); lbl1[i].Text = "页名"; lbl1[i].Top = 6; lbl1[i].AutoSize = true; pnlQuery[i].Controls.Add(lbl1[i]);//客户端不需要此控件 lbl2[i] = new Label(); lbl2[i].Text = "报表说明"; lbl2[i].Top = txtTabText[i].Top + txtTabText[i].Height + 5; //客户端不用 lbl2[i].AutoSize = true; pnlQuery[i].Controls.Add(lbl2[i]); //客户端不需要此控件 //放Tree和DataGridViewEx tableForTabs[i] = new TableLayoutPanel(); tableForTabs[i].RowCount = 1; tableForTabs[i].ColumnCount = 2; tableForTabs[i].Height = tabControl2.TabPages[i].Height - pnlQuery[i].Height; tableForTabs[i].Dock = DockStyle.Bottom; tabControl2.TabPages[i].Controls.Add(tableForTabs[i]); //标题设定TreeView tvwTablesHeader[i] = new TreeView(); tvwTablesHeader[i].LabelEdit = true; tvwTablesHeader[i].Dock = DockStyle.Fill; tvwTablesHeader[i].ContextMenuStrip = cmnsColumnHeader; tvwTablesHeader[i].Tag = FrmDataQueryDesignDAO.GetDataSettingId(Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), i); FrmDataQueryDesignBLL.tvwTableHeaderGetNode(tvwTablesHeader[i], Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), i); tvwTablesHeader[i].AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(tvwTablesHeader_AfterLabelEdit); tvwTablesHeader[i].NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(tvwTablesHeader_NodeMouseClick); tvwTablesHeader[i].ExpandAll(); tableForTabs[i].Controls.Add(tvwTablesHeader[i], 0, 0); dgveQuery[i] = new DataGridViewEx(); dgveQuery[i].Dock = DockStyle.Fill; dgveQuery[i].DataSource = ds.Tables[i]; dgveQuery[i].myColHeaderTreeView = tvwTablesHeader[i]; tableForTabs[i].Controls.Add(dgveQuery[i], 1, 0); } } } }
/// <summary> /// 执行存储过程并生成结果集相关控件 /// </summary> private void CreateResultControl() { tabControl2.TabPages.Clear(); DataSet ds = new DataSet(); if (tvtbQueryList_User.SelectedNode.Tag == null) { ds = FrmDataQueryDesignDAO.ExecUserProcedure(tvtbQueryList_User.SelectedNode.Name, strsControlTmp); if (ds != null) { btnExportData.Enabled = true; string strTabText; string strTabRemarks; int intTablesCount = ds.Tables.Count; dgveQuery = new DataGridViewEx[intTablesCount]; pnlQuery = new Panel[intTablesCount]; txtRemark = new TextBox[intTablesCount]; //Label[] lbl1 = new Label[intTablesCount];//客户端不用 //Label[] lbl2 = new Label[intTablesCount];//客户端不用 tvwTablesHeader = new TreeView[intTablesCount]; for (int i = 0; i < intTablesCount; i++) { strTabText = "报表" + Convert.ToString(i); strTabRemarks = ""; FrmDataQueryDesignDAO.InitTabInfo(Convert.ToUInt16(tvtbQueryList_User.SelectedNode.Name), i, strTabText, strTabRemarks); } DataTable dt = FrmDataQueryDesignDAO.GetUserQueryTabsInfo(tvtbQueryList_User.SelectedNode.Name); for (int i = 0; i < intTablesCount; i++) { if (dt != null) { if (!string.IsNullOrEmpty(dt.Rows[i].ItemArray[5].ToString())) { strTabText = dt.Rows[i].ItemArray[5].ToString(); } else { strTabText = "报表" + Convert.ToString(i); } if (!string.IsNullOrEmpty(dt.Rows[i].ItemArray[6].ToString())) { strTabRemarks = dt.Rows[i].ItemArray[6].ToString(); } else { strTabRemarks = ""; } } else { strTabText = "报表" + Convert.ToString(i); strTabRemarks = dt.Rows[i].ItemArray[6].ToString(); } tabControl2.TabPages.Add(strTabText); pnlQuery[i] = new Panel(); pnlQuery[i].Anchor = AnchorStyles.Right & AnchorStyles.Left; pnlQuery[i].Dock = DockStyle.Top; pnlQuery[i].Height = 50; tabControl2.TabPages[i].Controls.Add(pnlQuery[i]); txtRemark[i] = new TextBox(); txtRemark[i].Multiline = true; txtRemark[i].ScrollBars = ScrollBars.Both; txtRemark[i].MaxLength = 500; txtRemark[i].Text = strTabRemarks; txtRemark[i].Dock = DockStyle.Fill;//客户端使用 pnlQuery[i].Controls.Add(txtRemark[i]); //标题设定TreeView tvwTablesHeader[i] = new TreeView(); //tvwTablesHeader[i].LabelEdit = true; //tvwTablesHeader[i].Dock = DockStyle.Fill; //tvwTablesHeader[i].ContextMenuStrip = cmnsColumnHeader; //tvwTablesHeader[i].Tag = FrmDataQueryDesignDAO.GetDataSettingId(Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), i); FrmDataQueryDesignBLL.tvwTableHeaderGetNode(tvwTablesHeader[i], Convert.ToInt16(tvtbQueryList_User.SelectedNode.Name), i); //tvwTablesHeader[i].AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(tvwTablesHeader_AfterLabelEdit); //tvwTablesHeader[i].NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(tvwTablesHeader_NodeMouseClick); //tvwTablesHeader[i].ExpandAll(); tvwTablesHeader[i].Visible = false; tabControl2.TabPages[i].Controls.Add(tvwTablesHeader[i]); dgveQuery[i] = new DataGridViewEx(); dgveQuery[i].Height = tabControl2.TabPages[i].Height - pnlQuery[i].Height; dgveQuery[i].Anchor = AnchorStyles.Right & AnchorStyles.Bottom & AnchorStyles.Left; dgveQuery[i].Dock = DockStyle.Bottom; dgveQuery[i].DataSource = ds.Tables[i]; dgveQuery[i].myColHeaderTreeView = tvwTablesHeader[i]; tabControl2.TabPages[i].Controls.Add(dgveQuery[i]); } } } }