请假的设计界面完成了,如何实现类别选择和审批人抄送人选择。
拖拉一个PopList控件。双击审批人按钮控件,进入事件,这里贴一张事件代码- //获取审批人或抄送人
- private void BtnCUser_Click(object sender, EventArgs e)
- {
- //获取审批人或抄送人
- btn = sender;
- //获取数据
- LeaveInfo Leave = new LeaveInfo();
- DataTable table = Leave.GetConfirmUser();
- PopList1.Groups.Clear();
- PopListGroup poli = new PopListGroup();
- PopList1.Groups.Add(poli);
- switch (((Button)sender).Name)
- {
- case "BtnCUser":
- case "BtnCUser2":
- PopList1.MultiSelect = false;
- poli.Text = "审批人";
- break;
- case "Btnccuser2":
- case "Btnccuser1":
- PopList1.MultiSelect = true;
- poli.Text = "抄送人";
- break;
- }
- //显示选择列表中key和values
- foreach (DataRow rowli in table.Rows)
- {
- poli.Items.Add(rowli["USER_ID"].ToString(), rowli["USER_ID"].ToString());
- switch (((Button)sender).Name)
- {
- case "BtnCUser":
- case "BtnCUser2":
- if (CUser.Trim().Length > 0)
- {
- if (CUser.Trim().ToUpper() == rowli["USER_ID"].ToString().Trim().ToUpper())
- {
- PopList1.SetSelections(poli.Items[(poli.Items.Count - 1)]);
- }
- }
- break;
- case "Btnccuser2":
- case "Btnccuser1":
- if (CCUser.Trim().Length > 0)
- {
- if (CCUser.Trim().ToUpper() == rowli["USER_ID"].ToString().Trim().ToUpper())
- {
- PopList1.SetSelections(poli.Items[(poli.Items.Count - 1)]);
- }
- }
- break;
- }
- }
- PopList1.Show();
- }
复制代码
poplist选择后赋值代码- /// <summary>
- /// PopList的审批人,抄送人赋值
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void PopList1_Selected(object sender, EventArgs e)
- {
- try
- {
- switch (((Button)btn).Name)
- {
- case "BtnCUser":
- case "BtnCUser2":
- if (PopList1.Selection != null)
- {
- CUser = PopList1.Selection.Value;
- this.BtnCUser.Text = PopList1.Selection.Text.Trim();
- }
- break;
- case "Btnccuser2":
- case "Btnccuser1":
- if (PopList1.Selections != null)
- {
- CCUser = "";
- foreach (PopListItem poitem in PopList1.Selections)
- {
- if (CCUser.Length > 0)
- {
- CCUser += "," + poitem.Value;
- }
- else
- {
- CCUser = poitem.Value;
- }
- }
- if (CCUser.Length > 0)
- {
- this.Btnccuser1.Text = CCUser;
- }
- }
- break;
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
复制代码
请假条创建界面的功能基本完成了,接下来就是对界面输入数据保存了。这里是通过ToolbarItemClick事件,具体代码如下:
- /// <summary>
- /// toolbar事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void frmLeaveCreate_ToolbarItemClick(object sender, ToolbarClickEventArgs e)
- {
- try
- {
- if (e.Name.Equals(tExit.Name))
- {
- MessageBox.Show("是否确定返回?", MessageBoxButtons.YesNo, (Object s, MessageBoxHandlerArgs args) =>
- {
- if (args.Result == Smobiler.Core.ShowResult.Yes)
- {
- this.Close();
- }
- }
- );
- }
- else if (e.Name.Equals(save.Name))
- {
- if (LDAY.Text.Length < 0)
- {
- throw new Exception("请输入请假天数!");
- }
- if (int.Parse(LDAY.Text) <= 0)
- {
- throw new Exception("请假天数必须大于0!");
- }
- if (LREASON.Text.Length < 0)
- {
- throw new Exception("请输入请假事由!");
- }
- MessageBox.Show("请假条创建成功!", (Object s, MessageBoxHandlerArgs args) =>
- {
- ShowResult = Smobiler.Core.ShowResult.Yes;
- });
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
复制代码
|