精华内容
下载资源
问答
  • 东门口小学二年级上册道德与法治教案课题第1课假期有收获主备教师欧俊审核人谭小平副备教师教学目标1.以多种形式汇报自己的假期生活2.学会在小组中合作合力展现暑假的生活教学重难点以多种形式汇报自己的假期生
  • 年终述职--常见问题分析解答

    千次阅读 2019-01-13 16:23:00
    述职的形式多种:沟通汇报、PPT汇报、World报告汇报等,但汇报内容万变不离其宗。 技术人员有个特点:整天只知道埋头苦干,一到总结的时候就挠头,毕竟不是文科出身。 让我们写个用例,写段代码还可以,总结,...

     述职的形式有多种:沟通汇报、PPT汇报、World报告汇报等,但汇报内容万变不离其宗。

    技术人员有个特点:整天只知道埋头苦干,一到总结的时候就挠头,毕竟不是文科出身。

    让我们写个用例,写段代码还可以,总结,该怎么写,怎么表达???

    • 展示我多余的工作量:看看我这一年加了多少班,任劳任怨为公司付出。。。
    • 展示我完美工作业绩:看我发了多少个版本,没有一次投诉,一个事故。。。
    • 展示我高超的技术:用例设计方法运用的炉火纯青,业务水平刚刚的、自动化运用溜溜的。。。
    • 展示未来的我多么可期:还有多少剩余价值可以挖掘、还有多大的潜力可以挖掘。。。

    工作了一年,成绩肯定是有的,但是应该如何的表达出来,得到领导认可。这也是个技术活!

    以下是几个述职中常见的问题,一些分析,大家也可以各抒己见。

    问1:谈谈去年个人的业绩以及目前达成情况等

    分析:一般大家都会说,测了多少个需求,加了多少次班,领导分配的任务都能按时完成,如何如何的辛苦与努力,保障需求的进度。

    如果你是一名初级测试工程师:

    可以像上面提到的,列举自己今年:测了多少需求,参与了几次大的需求改造、版本发布,加了多少班,保障了测试进度。

    因为,对于初级测试工程师的要求,就是保障上级分配的测试任务能够按时交付、编写执行用例并对测试结果进行记录与反馈。

    如果你是一名高级测试工程师:

    尽量少的概述自己在苦劳上的总结,多总结一些在:团队带领、过程改进、技术引领、效率提升、质量保障等方面的工作以及成果。

    针对高级岗位,领导更多希望听到的是你在除苦劳以外的事项,所以你要列你的功劳有哪些。

    岗位性质及工作职责,决定了你的总结与反馈的重点在哪里,所以总结要有针对性。

    如果年初有与部门经理就当年的的目标达成一致,也可按照目标进行陈述(年初制定的计划执行过程中可能存在差异,请结合实际)。

    初中高级测试工程师请注意:

    说在最后,不管是初级还是高级工程师,能够量化的指标数据一定要提供出来。而不是凭感觉,我今年做的如何好,效率如何的高,测试质量如何的高。

    一些量化指标:每月考评分数、全年提交BUG、优化数量、有效BUG率、需求漏洞率、需求按时交付率、质量事故数等等

    总结套路,供大家套用:

    1.基本事项:今年参与及几次大的需求改造、几个版本发布。

    2.事项进度:需求及版本发布,按时完成率达到90%以上或者全部按时交付。

    3.事项质量:需求及版本发布后1-3月内,未有重大漏洞出现。

    4.工作改进、效率提升:在保障本职工作进度与质量的前提下,梳理现有测试过程,优化改进,并组织开展业务、技术学习分提升团队战斗力。

    5.质量提升:用例评审、需求及版本发布总结、现场问题分析、质量评分体系建设等。

    6.结尾总结,突出下之前描述中的一些重点。

    问2:谈谈工作中的不足

    答:大部分人都会说一些:业务还不够熟悉、测试技能还不太娴熟、心不够细,考虑不全等。还有一些比较自信的人会说:没什么不足的,都挺好的。

    针对这个问题,大家也不用藏着掖着,你的领导对你的长处与不足应该是心中有底的。

    问这个问题的原因:首先,判断你对自身的不足有明确的认知;其次,针对不足的地方,是否有相应的措施及方法去应对解决。

    总结套路,供大家套用:

    我觉得自己在业务上还不太熟悉,明年还要重点加强学习

    改进方法是:

    第一季度,通过复测历史的任务,看用例,问有经验的人,去客户现场参考学习等方式先将**块业务重点熟悉掌握。

    第二季度,****根据自己的情况说明。

    通过上述学习,争取将这一不足,在明年有一个大的突破。

    问3:谈谈个人的收获与成长

    答:通常,大家都会说对**产品业务更加熟悉,能够独立负责**需求或者模块的测试,测试技能上有了一定提升,能够熟练运用**测试方法设计用例等等。

    除了业务与技能上的提升,一些人还会提及一些:心态上的成长、自我的改变、格局的变化等。这是加分项,说明你是德智体美全面提升的!

    所以,在谈个人成长收获时,除了基本的业务、技能提升,还可以提及一些个人的感悟。

    问4:对当前的工作及部门的建议等

    答:很多人都会说,我觉得挺好的,没什么建议。难道我们的工作流程、部门建设这么好??

    听到这样的话,一是觉得有点假,二是,这个人真的没思考。

    这个问题上,希望大家能坦然相对,从你的角度,多思考一些对过程改进,团队发展不利的一些问题,以及建议。

    团队的发展靠大家,每个人的建议,对团队都有或多或少的益处。

    问5:新一年的规划及期望

    答:一般会提到三个点:业务、技术、发展。

    所以,请分别针对这三点进行简要的概述。

    eg:新一年希望自己能够为团队贡献更多份力量,在业务提升、技术成长上均有较大的提高。

    当前是测试工程师,希望通过自己的努力,能够晋升到****

    最后也可以问下领导,对你的工作建议,需要一些支持。

     

    述职是对大家一年工作的总结,大家一定要认真对待,思考如何通过简短的30min-60min来展现自己这一年来的成绩。

    一定要有充分的准备,切忌述职时临场发挥。给听述人一种对自己不重视、对工作不负责的感觉。

    做有准备的你!快去准备自己的年终总结吧。

    相关文章

    从成本与职责谈测试的核心价值

    注意事项:

    与苦劳相比,请多描述自己的功劳。

    做事是最基本的,做成事才是核心,请多描述自己做成了那些事。

    如果你对某一个技术兴趣,请问下自己,今年我在这项事情上花了多少精力。

    转载于:https://www.cnblogs.com/starlight-yang/p/10262562.html

    展开全文
  • 光辉城市产品Api摸索

    2020-11-28 20:31:09
    文章目录产品定位支持...Mars是一款给设计师全面升级VR体验、汇报方式的工具,能够将多种3D模型一键生成VR,极速生成效果图、全景图、CG动画、全景视频、3D漫游等表现形式。Mars不仅满足了设计师在虚拟空间中漫游的需


    主页:https://www.sheencity.com/mars/

    img

    产品定位

    渲染/汇报软件

    Mars是一款给设计师全面升级VR体验、汇报方式的工具,能够将多种3D模型一键生成VR,极速生成效果图、全景图、CG动画、全景视频、3D漫游等表现形式。Mars不仅满足了设计师在虚拟空间中漫游的需求,更革命性的降低了建筑表现成本。

    支持格式和软件

    img

    主要特色

    PC/VR双模编辑

    img

    3D信息即时传递

    img

    企业专属云

    img

    光环境草图

    img

    海量植物库

    img

    在汇报中的优势

    VR 沉浸式体验

    一键切换 VR 模式,在创作阶段就能够体验到项目建成的真实效果,在 VR 中沟通有效避免信息衰减。

    3D 立体漫游

    一键切换 3D 立体电影效果,配合快门式眼镜增强漫游沉浸感,适用于多人同时观看。

    全景图

    实时输出高清全景图,配合 Venus 制作成全景故事,通过二维码快速分享,全方位展示方案。

    全景动画

    极速输出高清全景动画,通过便携 VR 设备,在固定路径中沉浸式体验。

    PC 漫游汇报

    实时渲染、无需输出,PC 端通过快捷键切换场景效果与动画播放,可实时与画面内容进行互动和编辑修改,实现全新可交互式的效果图和动画汇报。

    AR 文本汇报

    将 3D 模型、视频等虚拟信息与真实空间场景进行无缝结合,实现传统 2D 文本的 3D 可视化/可交互升级,让设计方案的展示更直观与全面。

    更多使用教程、例子和api

    从导入SU模型到渲染五张效果图需要多长时间?

    众所周知,渲染效果图是所有设计师们最日常的工作之一,客户通常需要多张效果图来预估整体效果,如何提高效率,减少加班熬夜,学习快速渲染必不可少。大佬们一般会花多长时间去做这件事呢?

    官方教程:https://www.sheencity.com/tutorial

    展开全文
  • 显示的结果可以是表格形式,也可以是图形形式,如果是图形的话能够以多种形式显示(柱状图、折线图、饼图、雷达图、堆叠柱状图等): 统计查询的结果,点击数字或者百分比能够显示详细的数据; 能够自由组合查询...

    数据统计是每个系统中必备的功能,在给领导汇报统计数据,工作中需要的进展数据时非常有用。

    在我看来,一个统计的模块应该实现以下功能:

    • 能够将常用的查询的统计结果显示出来;
    • 显示的结果可以是表格形式,也可以是图形形式,如果是图形的话能够以多种形式显示(柱状图、折线图、饼图、雷达图、堆叠柱状图等):
    • 统计查询的结果,点击数字或者百分比能够显示详细的数据;
    • 能够自由组合查询条件、筛选条件、分组条件、排序等;
    • 统计结果最好有个实时预览;
    • 查询统计能够保存,以便下次能直接调用并显示统计查询的结果;
    • 对于保存后的查询统计,下次调用时也可以按照灵活的筛选手段对查询结果进行筛选;
    • 界面需要做的简洁、直观,就算是不太懂电脑的操作员也能够方便使用;
    • 对于一些复杂的查询,能够直接在后台写Sql或者调用Sp出数据
    • ......

    好了,以下是在实际环境中的实现和应用:
    这是一个学生的就业系统,学生在不同的时期会对自己毕业去向进行登记,因此按照不同时间截点统计出来的数据是不一样的。数据表有100多个字段(并不是所有字段都需要统计)。

    首先,我们在数据库中构建一个表值函数,能够按照不同的时间截点返回出数据,表也起到视图的作用,将参数表的值直接包含到返回结果中去。

     1 ALTER FUNCTION [dbo].[Get.............]
     2 (    
     3     @gxsj datetime
     4 )
     5 RETURNS TABLE 
     6 AS
     7 RETURN 
     8 (
     9     select t1.*, 
    10     dbo.depacode.xymc, 
    11     CASE t1.xldm WHEN '01' THEN '博士' WHEN '11' THEN '硕士' WHEN '25' THEN '双学位' WHEN '31' THEN '本科' WHEN '41' THEN '专科' WHEN '61' THEN '高职' ELSE '' END AS xlmc, 
    12     CASE WHEN LEFT(t1.sydqdm, 2) IN ('11', '12', '13', '21', '31', '32', '33', '35', '37', '44', '46', '71', '81', '82') THEN '东部' 
    13     WHEN LEFT(t1.sydqdm, 2) IN ('14', '22', '23', '34', '36', '41', '42', '43') THEN '中部' 
    14     WHEN LEFT(t1.sydqdm, 2) IN ('15', '45', '51', '50', '52', '53', '54', '61', '62', '65', '63', '64') THEN '西部' ELSE '' END AS sydq, 
    15     sydq.dwdqmc AS sysf,
    16     CASE WHEN LEFT(t1.dwdqdm, 2) IN ('11', '12', '13', '21', '31', '32', '33', '35', '37', '44', '46', '71', '81', '82') THEN '东部' 
    17     WHEN LEFT(t1.dwdqdm, 2) IN ('14', '22', '23', '34', '36', '41', '42', '43') THEN '中部' 
    18     WHEN LEFT(t1.dwdqdm, 2) IN ('15', '45', '51', '50', '52', '53', '54', '61', '62', '65', '63', '64') THEN '西部' ELSE '' END AS dwdq, 
    19      dwdq.dwdqmc AS dwsf, dbo.Entcode.hyname, 
    20     dbo.hydygx.hymldm, dbo.hydygx.hyml, 
    21     CASE t1.xbdm WHEN 1 THEN '' WHEN 2 THEN '' ELSE '' END AS xbmc,
    22     [mzdmb].[nation] AS mzmc,
    23     [EjByqxdmb].[Ejbyqxmc], dbo.byqxdygx.jybbyqx, t1.gn500 AS jybdwxzdm,
    24     CASE t1.knslbdm WHEN '7' THEN '就业困难、家庭困难和残疾' WHEN '6' THEN '家庭困难和残疾' WHEN '5' THEN '就业困难和残疾' WHEN '4' THEN '残疾' WHEN '3' THEN '就业和家庭困难' WHEN '2' THEN '家庭困难' WHEN '1' THEN '就业困难' ELSE '非困难生' END AS Knslb
    25     from [table] as t1 
    26     LEFT OUTER JOIN
    27     dbo.depacode ON t1.xydm = dbo.depacode.xydm LEFT OUTER JOIN
    28     dbo.dwdq AS sydq ON LEFT(t1.sydqdm, 2) + '0000' = sydq.dwdqdm LEFT OUTER JOIN
    29     dbo.dwdq AS dwdq ON LEFT(t1.dwdqdm, 2) + '0000' = dwdq.dwdqdm LEFT OUTER JOIN
    30     dbo.Entcode ON t1.hylb = dbo.Entcode.hycode LEFT OUTER JOIN
    31     dbo.hydygx ON t1.hylb = dbo.hydygx.hydldm LEFT OUTER JOIN
    32     [mzdmb] ON t1.mzdm = [mzdmb].[mzdm] LEFT OUTER JOIN
    33     [EjByqxdmb] ON t1.byqx2 = [EjByqxdmb].[Ejbyqxdm] LEFT OUTER JOIN
    34     dbo.byqxdygx ON t1.byqx = dbo.byqxdygx.shbyqx AND 
    35     t1.dwxzdm = dbo.byqxdygx.shdwxzdm
    36     where [gxsj] <= dateadd(day,1,@gxsj) and HisId in 
    37     (SELECT TOP 1 HisId FROM [table]
    38     WHERE [gxsj] <= dateadd(day,1,@gxsj) and xsxh = t1.xsxh
    39     and bynf = t1.bynf and t1.byqx not in ('08','05','11')
    40     ORDER BY [gxsj] DESC)
    41 )
    View Code

    这样我们使用 select * from [get...]('2016-8-25') 就可以查询出8月25日截止日期的数据。

    接下来是界面设计,我们使用jequery-ui中dropable\dragable的控件,字段排列在界面上,直接拖拽到相应域里,就能够进行统计。

    除了分组字段外,显示字段还能够按照具体的值进行统计过滤,起到多重分组统计的功能。

     

     大家可以看到,最上面一栏是数据筛选,然后是系统已经保存的查询(分为表格查询和图形查询),点击保存好的查询直接出查询结果,也可以删除保存的查询。在下面是自定义查询,上面是一排条件,然后是可以拖拽的字段,当字段拖至分组列,则显示字段名称;拖至显示列,还可以对显示的数据的具体值进行分组筛选统计。下方则是一些选项,是否显示小计、总计,以何种方式显示图表。

    以表格形式的显示统计,可以看到,每个数值都可以点击弹出框显示详情,最下方能够保存查询条件,以图形方式显示等:

    图形的展示:

     

     

    以下是核心类InquireHelper.cs:
    字段实体类(部分)

      1     [Serializable]
      2     [XmlInclude(typeof(BYNF_InquireField))]
      3     [XmlInclude(typeof(Count_InquireField))]
      4     [XmlInclude(typeof(XYMC_InquireField))]
      5     [XmlInclude(typeof(ZYMC_InquireField))]
      6     [XmlInclude(typeof(SZBJ_InquireField))]
      7     [XmlInclude(typeof(FDY_InquireField))]
      8     [XmlInclude(typeof(XL_InquireField))]
      9     [XmlInclude(typeof(SYDQ_InquireField))]
     10     [XmlInclude(typeof(SYSF_InquireField))]
     11     [XmlInclude(typeof(DWDQ_InquireField))]
     12     [XmlInclude(typeof(DWSF_InquireField))]
     13     [XmlInclude(typeof(HYML_InquireField))]
     14     [XmlInclude(typeof(HYDL_InquireField))]
     15     [XmlInclude(typeof(XBMC_InquireField))]
     16     [XmlInclude(typeof(MZMC_InquireField))]
     17     [XmlInclude(typeof(BYQX_InquireField))]
     18     [XmlInclude(typeof(KNSLB_InquireField))]
     19     [XmlInclude(typeof(ZYDKL_InquireField))]
     20     [XmlInclude(typeof(DWXZ_InquireField))]
     21     [XmlInclude(typeof(EJBYQXMC_InquireField))]
     22     [XmlInclude(typeof(GZ_InquireField))]
     23     [XmlInclude(typeof(WYJE_InquireField))]
     24     public abstract class InquireFieldBase
     25     {
     26         public InquireFieldBase()
     27         {
     28             FieldItems = this.GetInquireItemsByInquireType();
     29         }
     30 
     31         [XmlAttribute]
     32         public int FieldDisplayOrder { get; set; }
     33         [XmlAttribute]
     34         public string FieldName { get; set; }
     35         [XmlAttribute]
     36         public string DbName { get; set; }
     37         [XmlAttribute]
     38         public bool IsAggregate { get; set; }
     39         [XmlAttribute]
     40         public InquireHelper.FieldType FieldType { get; set; }
     41         
     42         //用于highchart统计
     43         [XmlAttribute]
     44         public bool IsNameField { get; set; }
     45 
     46         //用于统计输出数据
     47         [XmlAttribute]
     48         public bool IsPercent { get; set; }
     49 
     50         [XmlIgnore]
     51         public List<string> FieldItems { get; set; }
     52         public List<string> FieldValue { get; set; }
     53         public bool? OrderByAsc { get; set; }
     54     }
     55     [Serializable]
     56     public class BYNF_InquireField : InquireFieldBase
     57     {
     58         public BYNF_InquireField()
     59         {
     60             FieldDisplayOrder = 1;
     61             FieldName = "毕业年份";
     62             DbName = "BYNF";
     63         }
     64     }
     65     [Serializable]
     66     public class XYMC_InquireField : InquireFieldBase
     67     {
     68         public XYMC_InquireField()
     69         {
     70             FieldDisplayOrder = 5;
     71             FieldName = "学院名称";
     72             DbName = "XYMC";
     73         }
     74     }
     75     [Serializable]
     76     public class ZYMC_InquireField : InquireFieldBase
     77     {
     78         public ZYMC_InquireField()
     79         {
     80             FieldDisplayOrder = 6;
     81             FieldName = "专业名称";
     82             DbName = "ZYMC";
     83         }
     84     }
     85     [Serializable]
     86     public class SZBJ_InquireField : InquireFieldBase
     87     {
     88         public SZBJ_InquireField()
     89         {
     90             FieldDisplayOrder = 7;
     91             FieldName = "所在班级";
     92             DbName = "SZBJ";
     93         }
     94     }
     95     [Serializable]
     96     public class FDY_InquireField : InquireFieldBase
     97     {
     98         public FDY_InquireField()
     99         {
    100             FieldDisplayOrder = 8;
    101             FieldName = "辅导员";
    102             DbName = "FDY";
    103         }
    104     }
    105     [Serializable]
    106     public class XL_InquireField : InquireFieldBase
    107     {
    108         public XL_InquireField()
    109         {
    110             FieldDisplayOrder = 9;
    111             FieldName = "学历";
    112             DbName = "XLMC";
    113         }
    114     }
    115     [Serializable]
    116     public class SYDQ_InquireField : InquireFieldBase
    117     {
    118         public SYDQ_InquireField()
    119         {
    120             FieldDisplayOrder = 10;
    121             FieldName = "生源地区";
    122             DbName = "SYDQ";
    123         }
    124     }
    125     [Serializable]
    126     public class SYSF_InquireField : InquireFieldBase
    127     {
    128         public SYSF_InquireField()
    129         {
    130             FieldDisplayOrder = 11;
    131             FieldName = "生源省份";
    132             DbName = "SYSF";
    133         }
    134     }
    135     [Serializable]
    136     public class DWDQ_InquireField : InquireFieldBase
    137     {
    138         public DWDQ_InquireField()
    139         {
    140             FieldDisplayOrder = 12;
    141             FieldName = "单位地区";
    142             DbName = "DWDQ";
    143         }
    144     }
    145     [Serializable]
    146     public class DWSF_InquireField : InquireFieldBase
    147     {
    148         public DWSF_InquireField()
    149         {
    150             FieldDisplayOrder = 13;
    151             FieldName = "单位省份";
    152             DbName = "DWSF";
    153         }
    154     }
    View Code

    控制类

      1     public static class InquireHelper
      2     {
      3         public static List<InquireFieldBase> GetSubInquireList()
      4         {
      5             var inquires = new List<InquireFieldBase>();
      6             var subTypeQuery = from t in Assembly.GetExecutingAssembly().GetTypes()
      7                                where IsSubClassOf(t, typeof(InquireFieldBase))
      8                                select t;
      9 
     10             foreach (var type in subTypeQuery)
     11             {
     12                 InquireFieldBase obj = CreateObject(type.FullName) as InquireFieldBase;
     13                 if (obj != null)
     14                 {
     15                     inquires.Add(obj);
     16                 }
     17             }
     18             return inquires;
     19 
     20         }
     21 
     22         static bool IsSubClassOf(Type type, Type baseType)
     23         {
     24             var b = type.BaseType;
     25             while (b != null)
     26             {
     27                 if (b.Equals(baseType))
     28                 {
     29                     return true;
     30                 }
     31                 b = b.BaseType;
     32             }
     33             return false;
     34         }
     35         /// <summary>
     36         /// 创建对象(当前程序集)
     37         /// </summary>
     38         /// <param name="typeName">类型名</param>
     39         /// <returns>创建的对象,失败返回 null</returns>
     40         public static object CreateObject(string typeName)
     41         {
     42             object obj = null;
     43             try
     44             {
     45                 Type objType = Type.GetType(typeName, true);
     46                 obj = Activator.CreateInstance(objType);
     47             }
     48             catch (Exception ex)
     49             {
     50                 
     51             }
     52             return obj;
     53         }
     54 
     55         public static List<InquireFieldBase> BindCondition(this List<InquireFieldBase> conditions, string conditionName, List<string> values)
     56         {
     57             var condition = conditions.FirstOrDefault(c => c.GetType().Name == conditionName && c.FieldType == FieldType.ConditionField);
     58 
     59             if (condition == null)
     60             {
     61                 condition = CreateObject("BLL." + conditionName) as InquireFieldBase;
     62                 condition.FieldType = FieldType.ConditionField;
     63                 conditions.Add(condition);
     64             }
     65 
     66             condition.FieldValue = values;
     67 
     68             return conditions;
     69         }
     70         //public static List<InquireFieldBase> BindCondition(this List<InquireFieldBase> conditions, string conditionName, string range1, string range2)
     71         //{
     72         //    var condition = conditions.FirstOrDefault(c => c.GetType().Name == conditionName && c.FieldType == FieldType.ConditionField);
     73 
     74 
     75         //    if (!string.IsNullOrEmpty(range2)&&!string.IsNullOrEmpty(range1))
     76         //    {
     77         //        if (condition == null)
     78         //        {
     79         //            condition = CreateObject("BLL." + conditionName) as InquireFieldBase;
     80         //            condition.FieldType = FieldType.ConditionField;
     81         //            conditions.Add(condition);
     82         //        }
     83 
     84         //        condition.FieldValue = string.Concat(condition.DbName,
     85         //            " between to_date('", range1, "', 'yyyy-mm-dd hh24:mi:ss') and to_date('", range2,
     86         //            "', 'yyyy-mm-dd hh24:mi:ss')");
     87         //    }
     88         //    return conditions;
     89         //}
     90 
     91         public static DataTable GetDataTable(StatisticsInquire inquire)
     92         {
     93             var inquireCond = new List<string>();
     94             inquire.InquireFields.Where(f => f.FieldType == InquireHelper.FieldType.GroupField).ToList()
     95                 .ForEach(f =>
     96                 {
     97                     if (!f.IsAggregate)
     98                     {
     99                         inquireCond.Add(string.Concat(f.DbName, " AS ", f.FieldName));
    100                     }
    101                 });
    102             inquire.InquireFields.Where(f => f.FieldType == FieldType.DisplayField).ToList().ToList()
    103                 .ForEach(f => {
    104                     if (f.IsAggregate)
    105                     {
    106                         inquireCond.Add(string.Concat(f.DbName, " AS ", f.FieldName));
    107                     }
    108                     else
    109                     {
    110                         if (f.IsPercent)
    111                         {
    112                             inquireCond.Add(string.Concat("ltrim(Convert(numeric(9,2), SUM(CASE WHEN ", f.DbName, " IN ('", string.Join("', '", f.FieldValue), "') THEN 1 ELSE 0 END)*100.0/Count(*))) + '%'  AS '", f.FieldName, ":", string.Join(",", f.FieldValue).SubStr(60), "(%)'"));
    113                         }
    114                         else
    115                         {
    116                             inquireCond.Add(string.Concat("SUM(CASE WHEN ", f.DbName, " IN ('", string.Join("', '", f.FieldValue) , "') THEN 1 ELSE 0 END) AS '", f.FieldName, ":", string.Join(",", f.FieldValue).SubStr(60), "'"));
    117                         }
    118                     }
    119                 });
    120 
    121 
    122             var whereCond = new List<string>();
    123             inquire.InquireFields.Where(f => f.FieldType == InquireHelper.FieldType.ConditionField).ToList()
    124                 .ForEach(f =>
    125                 {
    126                     whereCond.Add(string.Concat(f.DbName, " IN ('", string.Join("','", f.FieldValue), "')"));
    127                 });
    128 
    129             var groupCond = new List<string>();
    130             inquire.InquireFields.Where(f => f.FieldType == InquireHelper.FieldType.GroupField).ToList()
    131                 .ForEach(f =>
    132                 {
    133                     groupCond.Add(f.DbName);
    134                 });
    135             var orderbyCond = new List<string>();
    136             inquire.InquireFields.Where(f => f.FieldType == InquireHelper.FieldType.OrderByField).ToList()
    137                 .ForEach(f =>
    138                 {
    139                     orderbyCond.Add(string.Concat(f.DbName, " ", f.OrderByAsc.GetValueOrDefault() ? "ASC" : "DESC"));
    140                 });
    141 
    142             var sqlStr = string.Concat("SELECT ",
    143                 string.Join(", ", inquireCond),
    144                 " FROM GetStudentStatusByGxsj('", inquire.StatisticsDate , "')",
    145                 whereCond.Any() ? " WHERE " : string.Empty,
    146                 string.Join(" AND ", whereCond),
    147                 groupCond.Any() ? " GROUP BY " : string.Empty,
    148                 (inquire.ShowSubSummary || inquire.ShowSummary)
    149                     ? string.Concat("rollup(", string.Join(", ", groupCond), ")")
    150                     : string.Join(", ", groupCond),
    151                 orderbyCond.Any() ? " ORDER BY " : string.Empty,
    152                 string.Join(", ", orderbyCond));
    153 
    154             var dt = DBUtility.DbHelperSql.Query(sqlStr).Tables[0];
    155             if (!inquire.ShowSubSummary)
    156             {
    157                 if (inquire.ShowSummary)
    158                 {
    159                     var col = inquire.InquireFields.Where(f => f.FieldType == InquireHelper.FieldType.GroupField).Count();
    160                     for(int i = dt.Rows.Count - 2; i >=0 ; i -- ){
    161                         if (dt.Rows[i][col - 1].ToString() == "")
    162                         {
    163                             dt.Rows.RemoveAt(i);
    164                             //dt.Rows.Remove[dt.Rows[i]);
    165                         }
    166                     }
    167                 }
    168             }
    169             else
    170             {
    171                 var col = inquire.InquireFields.Where(f => f.FieldType == InquireHelper.FieldType.GroupField).Count();
    172                 for (int i = 0; i < dt.Rows.Count - 1; i++)
    173                 {
    174                     for (int j = 1; j < col; j++)
    175                     {
    176                         if (dt.Rows[i][j].ToString() == "")
    177                         {
    178                             dt.Rows[i][j] = "小计";
    179                             break;
    180                         }
    181                     }
    182 
    183                 }
    184 
    185             }
    186 
    187             if (inquire.ShowSubSummary || inquire.ShowSummary)
    188             {
    189                 dt.Rows[dt.Rows.Count - 1][0] = "合计";
    190             }
    191 
    192             return dt;
    193         }
    194         public static string SubStr(this string str, int maxLength)
    195         {
    196             if (str.Length > maxLength)
    197             {
    198                 return str.Substring(0, maxLength - 1);
    199             }
    200             else
    201             {
    202                 return str;
    203             }
    204         }
    205 
    206         public static string ToSerializableXML<T>(this T t)
    207         {
    208             XmlSerializer mySerializer = new XmlSerializer(typeof(T));
    209             StringWriter sw = new StringWriter();
    210             mySerializer.Serialize(sw, t);
    211             return sw.ToString();
    212         }
    213 
    214         public static T ToEntity<T>(this string xmlString)
    215         {
    216             var xs = new XmlSerializer(typeof(T));
    217             var srReader = new StringReader(xmlString);
    218             var steplist = (T)xs.Deserialize(srReader);
    219             return steplist;
    220         }
    221 
    222         public enum FieldType
    223         {
    224             DisplayField, GroupField, ConditionField, OrderByField
    225         }
    226 
    227         private static ConcurrentDictionary<InquireFieldBase, List<string>> _inquireItems = new ConcurrentDictionary<InquireFieldBase,List<string>>();
    228         public static List<string> GetInquireItemsByInquireType(this InquireFieldBase inquireField)
    229         {
    230             List<string> inquireItems;
    231             if (_inquireItems.TryGetValue(inquireField, out inquireItems))
    232             {
    233                 return inquireItems;
    234             }
    235             switch (inquireField.GetType().Name)
    236             {
    237                 case "XYMC_InquireField":
    238                     inquireItems = new BLL.depacode().GetModelList("").OrderBy(d => d.xydm).Select(d => d.xymc).ToList();
    239                     break;
    240                 case "ZYMC_InquireField":
    241                     inquireItems = new BLL.profcode().GetModelList("").OrderBy(d => d.xydm).ThenBy(d => d.zydm).Select(d => d.zymc).ToList();
    242                     break;
    243                 case "SZBJ_InquireField":
    244                     inquireItems = DbHelperSql.Query("select distinct szbj from jbdate order by szbj").Tables[0].AsEnumerable().Select(b => b["szbj"].ToString()).ToList();
    245                     break;
    246                 case "FDY_InquireField":
    247                     inquireItems = new BLL.DepaUser().GetModelList("").OrderBy(d => d.XYDM).ThenBy(y => y.YHXM).Select(d => d.YHXM).ToList();
    248                     break;
    249                 case "XL_InquireField":
    250                     inquireItems = new[] { "博士", "硕士", "双学位", "本科", "专科", "高职" }.ToList();
    251                     break;
    252                 case "SYDQ_InquireField":
    253                     inquireItems = new[] { "东部", "中部", "西部" }.ToList();
    254                     break;
    255                 case "SYSF_InquireField":
    256                     inquireItems = DbHelperSql.Query("select [Name] from [Sydqdm] where RIGHT([code], 4) = '0000' order by code").Tables[0].AsEnumerable().Select(b => b["Name"].ToString()).ToList();
    257                     break;
    258                 case "DWDQ_InquireField":
    259                     inquireItems = new[] { "东部", "中部", "西部" }.ToList();
    260                     break; 
    261                 case "DWSF_InquireField":
    262                     inquireItems = DbHelperSql.Query("select [Name] from [Sydqdm] where RIGHT([code], 4) = '0000' order by code").Tables[0].AsEnumerable().Select(b => b["Name"].ToString()).ToList();
    263                     break;
    264                 case "HYML_InquireField":
    265                     inquireItems = DbHelperSql.Query("select distinct hyml from [hydygx]").Tables[0].AsEnumerable().Select(b => b["hyml"].ToString()).ToList();
    266                     break;
    267                 case "HYDL_InquireField":
    268                     inquireItems = DbHelperSql.Query("select hydl from [hydygx] order by hydldm").Tables[0].AsEnumerable().Select(b => b["hydl"].ToString()).ToList();
    269                     break;
    270                 case "XBMC_InquireField":
    271                     inquireItems = new[] { "", "" }.ToList();
    272                     break;
    273                 case "MZMC_InquireField":
    274                     inquireItems = DbHelperSql.Query("select nation from [mzdmb] where nation in (select nation from jbdate) order by mzdm").Tables[0].AsEnumerable().Select(b => b["nation"].ToString()).ToList();
    275                     break;
    276                 case "BYQX_InquireField":
    277                     inquireItems = new BLL.Byqxdmb().GetModelList("").OrderBy(d => d.Byqxdm).Select(d => d.Byqxmc).ToList();
    278                     break;
    279                 case "KNSLB_InquireField":
    280                     inquireItems = new[] { "就业困难、家庭困难和残疾", "家庭困难和残疾", "就业困难和残疾", "残疾", "就业和家庭困难", "家庭困难", "就业困难", "非困难生" }.ToList();
    281                     break;
    282                 case "ZYDKL_InquireField":
    283                     inquireItems = new[] { "专业对口", "专业相关", "不对口", "未填写" }.ToList();
    284                     break;
    285                 case "DWXZ_InquireField":
    286                     inquireItems = new BLL.Dwxz().GetModelList("").OrderBy(d => d.dwxzdm).Select(d => d.dwxzmc).ToList();
    287                     break;
    288                 case "EJBYQXMC_InquireField":
    289                     inquireItems = new BLL.EjByqxdmb().GetModelList("").OrderBy(d => d.Ejbyqxdm).Select(d => d.Ejbyqxmc).ToList();
    290                     break;
    291             }
    292             if (inquireItems != null)
    293             {
    294                 _inquireItems[inquireField] = inquireItems;
    295                 return inquireItems;
    296             }
    297             return new List<string>();
    298         }
    299     }
    300     [Serializable]
    301     public class StatisticsInquire
    302     {
    303         public List<InquireFieldBase> InquireFields { get; set; } 
    304         [XmlAttribute]
    305         public bool ShowSummary { get; set; }
    306         [XmlAttribute]
    307         public bool ShowSubSummary { get; set; }
    308         [XmlAttribute]
    309         public string StatisticsDate { get; set; }
    310         [XmlAttribute]
    311         public HighChart.ChartType ChartType { get; set; }
    312     }
    View Code

     

    实际在使用中,还是非常方便的

    预计以后版本需要制作的功能:
    对统计字段进行进一步优化,能够使用多个条件组合筛选同一个字段,这个比较简单,扩展下类并且UI调整下就可以了。

    在这里把代码都分享给大家,希望和大家一起探讨。

    转载于:https://www.cnblogs.com/thanks/p/7152612.html

    展开全文
  • 显示的结果可以是表格形式,也可以是图形形式,如果是图形的话能够以多种形式显示(柱状图、折线图、饼图、雷达图、堆叠柱状图等): 统计查询的结果,点击数字或者百分比能够显示详细的数据; 能够自由组合查询...
  • redmine-4.0.7.tar.gz

    2020-06-16 16:53:14
    这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,据说是源于Basecamp的ror版而来,...来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。
  • redmine使用手册

    2016-04-18 15:58:48
    这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • 这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • 这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • 这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • 这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • 这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • 这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • redmine-2.4.3

    2014-02-14 09:26:10
    这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • redmine-2.5.0

    2014-03-26 14:43:58
    这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • redmine开发者指南

    2012-05-24 11:37:32
    这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • redmine-1.2.1.tar.gz

    2011-07-29 09:59:01
    这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • Redmine安装实践

    2012-02-28 15:31:04
    这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • 这种 Web 形式的项目管理系统通过“项目(Project)”的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • 以报表的形式对井下环境进行评级、预警,通过多样式的传输方式,实现可多终端方式实时查看评级报表,瓦斯地质预警评级系统还可以与多种系统相结合形成智能预警控制系统,为煤矿井下安全提供重要依据。
  • 体验整合了领导者为迎接更高级别职位,考察其成熟度的多种信息来源:如媒体采访、客户、同级和直属上下级间互动,业务分析及简报,处理通过邮件和语音信箱形式传达的问题,一次总结汇报,多次个性和认知测试。...

    来源 | DDI

    本次研究汇总了来自多个领导层级:战略层高管、运营层高管、中高层和中基层领导者,分析了逾40万条评鉴记录,几万位参与过DDI中国区评鉴的参与者,150多种细分行业,横跨10年的评鉴数据。DDI的评鉴过程是让领导者体验「真实的一天」,体验整合了领导者为迎接更高级别职位,考察其成熟度的多种信息来源:如媒体采访、客户、同级和直属上下级间互动,业务分析及简报,处理通过邮件和语音信箱形式传达的问题,一次总结汇报,多次个性和认知测试。

     

     

    如需查看完整报告和报告下载或了解更多,公众号:参一江湖

    展开全文
  • 商铺公寓房屋出租管理系统网络版是一款集房屋...7、实现多种形式的查询与统计汇报报表打印功能。 8、实现出租房物品档案管理。 9、支持使用二代身份证阅读器读取身份证信息。 商铺公寓房屋出租管理系统网络版截图
  • 持续集成开源工具

    2018-11-01 13:58:10
    这种 Web 形式的项目管理系统通过"项目(Project)"的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等...同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度...
  • 8-输入子系统

    2017-02-03 15:25:07
    输入设备是嵌入式系统必不可少的组成部分,输入设备的类型和物理形态多种多样,如鼠标,键盘,触摸屏等等,尽管形式多样, 但是他们都有一个共通性,即一个输入设备发生一个输入事件(如鼠标点击一下,按键按一个键...
  • PPT图表带有动态效果,整套幻灯片图表呈现淡蓝色调非常淡雅,点状微立体构成特别美观,内容丰富表现形式多样化极其实用;幻灯片图表包含:中国地图插图,折线图,PPT目录,PPT流程图,柱状图,并列组合关系,PPT内容...
  • 领导安排工作、人事部检查工作情况、打卡、汇报、提交工作日报…….像远程办公这种工作形式,实际是为了打破企业的信息壁垒,让员工协同高效运行而生的。飞书集合了多种办公功能,让资源高效整合,让协同工作贯穿...
  •  6、实现多种形式的查询与统计汇报报表打印功能。  7、实现按客户统计的月度费用报表查询统计。  8、灵活的各种查询统计,方便你查询您想得到的数据报表。  9、自动进行报警提示合同到期、租金到期,完全不用...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

多种形式汇报