zoukankan      html  css  js  c++  java
  • Linq,企业类库,EXECL生成,Execl chart的一些基本操作记录.(一)

    一个小任务.一个星期启动一次.在服务器一上把当前星期的一些数据分组统计把数据插入服务器二.然后生成这个星期并集合前N个星期的资料生成execl和exexl chart.

    因为服务器一上的数据不少,一个星期可能有30W笔资料.在这里用到企业类库的DAAB,后面分组统计等相关操作当然用Linq了.服务器二的数据表用Linq to sql生成相关类.因为是自动一个星期跑一次.异常出错就要记录还要email通知相关人等.异常发生后就记录.我用如下方法.第一次用.感觉写的肯定有问题.日志记录也用的是企业类库的日志模块.(这里有个问题,我同时用二个文本记录老不成功,不知怎么回事.还有Mail发送那块也没配成功.郁闷)

    全局通知

     然后有一些公共操作记录一下,前N个星期的N个就放在配置文件里.而报表的性态.还有生成的文件的路径因为一些分散
    位置用.也放在里面.

    Code

     怕自己忘记了,记录一下.这代码我看着想吐.
    下一步,因为其中的数据是根据当前年的星期数取的,我封装一下.

    Code

    其是下一个类,我是想让其支持在Linq中的排序.可惜这步没有做好.想是是另一个方法.其中我重载减号.让他可以减星期数.
    这个因为我没怎么用,只是实验下重载符号.
    这些做完后,我开始从服务器一里读入数据.

    Code

     上面的数据因为我读出时还要和服务器二里一些数据进行交互,中间我本是想用Linq to sql,但是这个时间不知是怎么回事.
    用上面的代码30W行数据读出来大约10分钟左右.而我把基中要和服务器二交互的相关代码换成Linq to sql(就是 
            string sbu = "select Customer from ------- where Material='" + report.MaterialPN + "' and Plant='" + report.Plant + "'";
                        object customer = dbL.ExecuteScalar(CommandType.Text, sbu);
                        if (customer != null)
                            report.Customer = customer.ToString();)这句换成Linq to sql很简洁,一句话.我非常喜欢,可是
    然后读出来,差不多快20分钟,其中可能有些别的原因.但是最后我还是用的DAAB.
    这些数据读出来后,我用Linq进行分组统计然后插入.如下所示

    Code

     这些数据统计后生成报表.如下.这代码晕死,惨不忍睹.

    Code

    这里我有点郁闷了,因为用Group up分组显示后,在execl里一般会用到横转列.在这里的三个报表差不多全是一样.
    但是其中因为有用对象的属性比较.而不好抽象出来,加上时间急.就暂时没有理会.就造成的如下结果.相同的代码我写了三次.
    后我在空余时间分析了一下,想写通用设计.如下篇.

  • 相关阅读:
    JAVA基础——编程练习(二)
    JAVA基础——面向对象三大特性:封装、继承、多态
    JVM内存
    50. Pow(x, n) (JAVA)
    47. Permutations II (JAVA)
    46. Permutations (JAVA)
    45. Jump Game II (JAVA)
    43. Multiply Strings (JAVA)
    42. Trapping Rain Water (JAVA)
    41. First Missing Positive (JAVA)
  • 原文地址:https://www.cnblogs.com/zhouxin/p/1573904.html
Copyright © 2011-2022 走看看