//**************************** /// <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]); } } } }