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

  • 相关阅读:
    日期和时间
    怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串?
    数据类型之间的转换:
    类的加载顺序,支出下列程序的输出结果
    内部类
    对象的类型转换
    简单继承
    封装
    计算a+b
    U盘删除文件时提示“文件或目录损坏且无法读取”的解决方法
  • 原文地址:https://www.cnblogs.com/zhouxin/p/1573904.html
Copyright © 2020-2023  润新知