Smobiler基于.NET框架开发移动应用内部系统—工作单功能(开发日志七)

 时光飞逝,转眼又到周二了,今天楼楼更的coms管理系统的"工作单"功能;“工作单”功能是从主页的“其他”子页的“工作单”菜单进入的,上周楼楼没有讲到“其他”子页菜单设计,现在来补上。“其他”子页的菜单项是一个IconMenuView控件,在选择IconMenuView的Groups菜单组集合属性的MenuViewGroups集合器编辑器”对话框来设置菜单组,通过MenuViewGroup中的Items菜单项集合的“MenuViewItemes集合器编辑器”对话框来添加一级菜单项
点击“其他”子页的“工作单”菜单项进入到“工作单”主页。首先创建“工作单”主页界面,在这个界面中要做的是“我创建的”和“我审批的”的“工作单”显示列表,那么在这个界面需要“我创建的”和“我审批的”的两个button控件和一个列表展示的Gridview控件,因为需要做“工作单”状态的筛选功能,在设计的时候楼楼本来是将“筛选”按钮放到“标题”栏的服务器固定按钮“┇”下面的,发觉有点突兀,楼楼就将“筛选”按钮放到了左上角。界面基本布局已经好了,现在界面还不太美观,因coms管理系统主色调是蓝色,所以我们以蓝色为主,设置标题栏的背景颜色TitleBackColor属性设置为蓝色,因为进入工作单默认查看的功能是“我创建的”工作单,所以将“我创建的”按钮BackColor属性设置为蓝色

wordD1.png (86.55 KB, 下载次数: 0)

下载附件

6 天前 上传

 

 工作单的基础界面布局好了,而对Gridview的Layout布局如下:

wordDgridLayout.png (49.2 KB, 下载次数: 0)

下载附件

4 天前 上传


那么工作单创建和编辑和详细界面也是通过lable,button,Textbox来实现布局,布局样式如下:

wordCreate.png (9.35 KB, 下载次数: 0)

下载附件

4 天前 上传

wordEdit.png (9.56 KB, 下载次数: 0)

下载附件

4 天前 上传

wordDef.png (7.58 KB, 下载次数: 0)

下载附件

4 天前 上传



进入工作单默认加载的是“我创建的”数据,这里定义了一个变量btnMode,当btnMode为1时是“我创建的”的数据,btnMode为2时是“我审批的”数据;这里楼楼定义了一个Bind方法用来绑定数据,再在load事件中加载Bind方法。现在gridview便可展示“我创建的”数据,那么当数据较多的情况时,客户端加载速度就变慢了,在这种情况下数据需要进行分批加载,用到了UpSlippling(Gridview数据上拉事件)。

<span style="font-size:14px;">/// <summary>
 
/// bind方法
 
/// </summary>
 
/// <remarks></remarks>
 
private void Bind()
 
{
 
        try {
 
                switch (btnMode) {
 
                        case 1:
 
                                //我创建的
 
                                this.btnWorkDCreate.ForeColor = Drawing.Color.DeepSkyBlue;
 

                                this.btnWorkDCheck.ForeColor = Drawing.Color.Gray;
 
                                break;
 

                        case 2:
 
                                //我审批的
 
                                this.btnWorkDCreate.ForeColor = Drawing.Color.Gray;
 
                                this.btnWorkDCheck.ForeColor = Drawing.Color.DeepSkyBlue;
 
                                break;
 

                }
 

                pagesCount = GetNumber();
 
                //获取我创建或我审批工作单的总条数
 
                DataTable table = GetData(pageIndex);
 
                //我创建的或我审批的数据
 
                if (table.Rows.Count > 0) {
 
                        this.GridView1.DataSource = table;
 
                        this.GridView1.DataBind();
 
                } else {
 
                        this.GridView1.Rows.Clear();
 
                }
 
        } catch (Exception ex) {
 
                MessageBox.Show(ex.Message);
 
        }
 
}
 </span>

   Gridview数据上拉事件代码:
<span style="font-size:14px;">/// <summary>
 
/// GridView下拉事件
 
/// </summary>
 
/// <param name="sender"></param>
 
/// <param name="e"></param>
 
/// <remarks></remarks>
 
private void GridView1_UpSlippling(object sender, EventArgs e)
 
{
 
        try {
 
                pageIndex += 1;
 
                if (pageIndex < pagesCount) {
 
                        DataTable table = GetData(pageIndex);
 
                        //分批工作单数据
 
                        if (table.Rows.Count > 0) {
 
                                this.GridView1.AddData(table);
 
                        }
 
                } else {
 
                        MessageBox.Show("数据已加载完成!");
 
                }
 
        } catch (Exception ex) {
 
                MessageBox.Show(ex.Message);
 
        }
 
}
 </span>

当点击gridview的行项如果布局是可触发事件则用ItemClick事件(如Button,ImageButton等),若是不可触发事件则用CellClick事件(如lable,Image等),这里gridview布局用到的是不可触发事件CellClick。


<span style="font-size:14px;">/// <summary>
 
/// GridView点击事件
 
/// </summary>
 
/// <param name="sender"></param>
 
/// <param name="e"></param>
 
/// <remarks></remarks>
 
private void GridView1_CellClick(object sender, GridViewCellEventArgs e)
 
{
 
        try {
 
                string WDOC_NO = e.Cell.Items("lblNOTE").Value;
 
                //获取工作单编号
 

                switch (btnMode) {
 
                        case 1:
 

                                frmWorkDocumentDetail frm = new frmWorkDocumentDetail();
 
                                frm.WDOC_NO = WDOC_NO;
 
                                this.Redirect(frm);
 

                                break;
 
                        case 2:
 
                                frmWorkDocumentDetail1 frm = new frmWorkDocumentDetail1();
 
                                frm.WDOC_NO = WDOC_NO;
 
                                this.Redirect(frm, () =>
 
                                {
 
                                        if (frm.ShowResult == Smobiler.Core.ShowResult.Yes) {
 
                                                Bind();
 
                                        }
 
                                });
 
                                break;
 
                }
 
        } catch (Exception ex) {
 
                MessageBox.Show(ex.Message);
 
        }
 
}
 </span>

 当点击“我创建的”按钮和“我审批的”按钮时,加载Bind方法。
<span style="font-size:14px;">/// <summary>
 
/// 工作单我创建的按钮事件
 
/// </summary>
 
/// <param name="sender"></param>
 
/// <param name="e"></param>
 
/// <remarks></remarks>
 
private void btnWorkDCreate_Click(object sender, EventArgs e)
 
{
 
        btnMode = 1;
 
        Bind();
 
}
 

/// <summary>
 
/// 工作单我待审批的按钮事件
 
/// </summary>
 
/// <param name="sender"></param>
 
/// <param name="e"></param>
 
/// <remarks></remarks>
 
private void btnWorkDCheck_Click(object sender, EventArgs e)
 
{
 
        btnMode = 2;
 
        Bind();
 
}
 </span>


猜你喜欢

转载自blog.csdn.net/Rabbit199077/article/details/51002901