版主请注意这个flygoldfish的所谓“开源.net工具”“金质打印王”的贴子:http://community.csdn.net/Expert/topic/3278/3278050.xml
主  题:  .^^.开源:C#.NET开发的MIS打印程序,各种网格如DataGrid打印、DataTable、HtmlTable等二维形式全搞定,源码免费下载  
作  者:  flygoldfish (长江支流)  
我想说的是这根本不是一个开源的东西。下载之后看看,里面有一个GoldPrinter.dll,那是核心,没有源代码提供的。这个贴子里有好几个网友提请他公开,他不公开也就罢了,反而反复声称“TO: chsfly(南山) 大家先看看打印的功能,所有源码将全部开放,大家先提点意见嘛”、“同志们,下载了的Up一下,支持源码开放呼声不知怎么样?呼声高,才好继续开放啊”goldfish的贴子分明是广告嘛。还有这个,明显是托儿啊: 回复人: SuccessMan(jzy) ( ) 信誉:100  2005-3-18 11:47:13  得分: 0  
我刚接触C#,看了下载的代码,豁然开朗.
建议建一个群学习学习.
flygoldfish (长江支流) 他的C#学的好通.我问了他一个问题马上就解决了.
在这里也谢谢(长江支流)

解决方案 »

  1.   

    flygoldfish关于这个的贴子如下,可以看到从去年8月他就开始做广告了,到现在都是假的开源,骗人骗了半年多啊,版主们都没有发现吗?   
     
     刷新 | 搜索 |  
       
       
    CSDN诚聘开发技术经理,ASP.NET程序员! .NET Framework Samples网站开通,快来分享你的范例!【招聘】微软亚洲工程院 诚聘软件开发工程师……【人才】IBM携CSDN打造软件人才联盟   就业强化班【人才】博文视点出版公司招聘策划编辑技术编辑!!【人才】北大软件 高薪诚聘JAVA开发工程师【培训】Java专业认证/培训专题思科专业认证攻略 
     
      搜索(.NET技术) 
     作者:flygoldfish   关键字:打印  
     
      时间:2004年数据 
      最新:16篇  1   
     
       
        问 题 用户名 分数 回复 时间 功能 
     
     
    ?.^^.开源:C#.NET开发的MIS打印程序,各种网格如DataGrid打印、DataTable、HtmlTable等二维形式全搞定,源码免费下载(flygoldfish) 200 504 3-24 18:50 管理 
    ?求方案:MIS金质打印通V2.2出炉,为灾区募捐,为中国程序员呐喊,开源100%源码(flygoldfish) 100 17 3-9 15:29 管理 
    ?带.NET打印组件源码及MIS快速开发平台及单据自动生成器求职!(flygoldfish) 20 2 2-28 15:28 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!! ,VB.net直接调用(flygoldfish) 20 46 1-26 20:24 管理 
    ?求方案:MIS金质打印通V2.2出炉,为灾区募捐,为中国程序员呐喊,开源100%源码(flygoldfish) 100 39 1-26 12:56 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!! ,.Net语言直接调用(flygoldfish) 20 10 1-10 09:16 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!! ,.Net语言直接调用(flygoldfish) 20 15 12-27 15:23 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!! ,.Net语言直接调用(flygoldfish) 20 6 12-24 12:34 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!! ,.Net语言直接调用(flygoldfish) 20 26 12-24 09:44 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!! ,.Net语言直接调用(flygoldfish) 20 8 12-23 15:43 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!! ,.Net语言直接调用(flygoldfish) 20 7 12-23 15:30 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!! ,.Net语言直接调用(flygoldfish) 20 6 12-23 15:11 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!! ,.Net语言直接调用(flygoldfish) 20 8 12-23 14:57 管理 
    √热烈祝贺"<MISGoldPrinter>(MIS金质打印王)"免费C#.NET源码版通过中国共享软件注册中心审核通过!!!(flygoldfish) 20 54 12-23 12:46 管理 
    √转贴:【.NET】 打印页面、打印机、打印预览对话框的实现(flygoldfish) 20 3 8-25 13:01 管理 
    √开源:.NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现(flygoldfish) 20 4 8-18 14:14 管理 
     
    最新:16篇  1   
      
      

  2.   

    顺便说一句,flygoldfish的技术(goldprinter.dll的代码我用reflector看了一下)也就那么回事,真的想掌握一个打印工具,可以看这两篇文章,非常有价值:http://www.microsoft.com/china/community/Column/65.mspx
    利用XML实现通用WEB报表打印
    卢彦http://www.microsoft.com/china/community/program/originalarticles/TechDoc/WSE_Print.mspx 讨论创建基于WSE的报表打印服务及其实现
    作者:林焯  
      

  3.   

    我想说明一下一、对版主倒没什么意见。那个贴子那么长、500多个回复……flygoldfish又说得很诚恳……我也是刚好要找这样的解决方案,下载之后看了代码才发现蹊跷。二、要赚钱、打广告都可以理解,想保密、不公开代码的也不是他一个,只是觉得flygoldfish不该欺骗。
      

  4.   

    我也下了哪个MIS,同意楼主的看法,打印里面没什么东西,我也用reflector看了以下.
    不应该欺骗网友,要打广告也不要到这里来.
      

  5.   

    using System;
    using flygoldfish; namespace WWWCSDNNET
    {
       class csharp
       {
           pubic static void Main()
           {
               flygoldfish objPeople=new flygoldfish();
               if(objPeople.isCheat==True)
               {
                  Console.WriteLine("Please administrators deleted flygoldfish");
                 Console.WriteLine("Thank You!^_^");
                }
           }
       }
    }
      

  6.   

    要打广告去163.com,钱又不贵!!!!
      

  7.   

    他又在顶贴子了: 回复人: MISGoldPrinter(MIS金质打印通) ( ) 信誉:100  2005-03-24 14:33:00  得分: 0  (ps,flygoldfish自己说过:从今天起非作者flygoldfish (长江支流) 和MISGoldPrinter(金质打印通)的言行,不代表作者原意。)请版主处理!
      

  8.   

    严正申明:楼主有意见可以直接说,好的、坏的,我接受...
    但是,请严肃对待CSDN的朋友!“
    明显是托儿啊:
     回复人: SuccessMan(jzy) ( ) 信誉:100  2005-3-18 11:47:13  得分: 0  
    我刚接触C#,看了下载的代码,豁然开朗.
    建议建一个群学习学习.
    flygoldfish (长江支流) 他的C#学的好通.我问了他一个问题马上就解决了.
    在这里也谢谢(长江支流)
    ”请楼主去申请并配合斑竹查
    SuccessMan(jzy)网友,人家是不是托一查便知!
    对楼主这样污蔑网友的行为,不能接受!
    我已查到与网友SuccessMan(jzy)的QQ对话原始记录,已征得该网友的同意:长江支流 12:19:00
    你好 
     JZY  12:22:47
    你好啊. 
    长江支流 12:19:20
    在网上有人说你是我的托,我对此强烈愤恨 
    长江支流 12:19:32
    想把和你的对话发出去,是否允许 
     JZY  12:23:32
    好的.
    托是什么意思 
    长江支流 12:20:16
    http://community.csdn.net/Expert/topic/3878/3878703.xml?temp=.3913385 
    长江支流 12:20:20
    那我发了 
    下面是与该网友第一次开始聊天的记录:
    (2005-03-18 11:23:33)   82826271
    你好,有个问题想问你.怎么把一个抽象对象转为一个具体对像. 
    (2005-03-18 11:24:35)       JZY
    treeContentObj = ObjectCollectionList.GetItem(ii);
    这个是抽象的对象集 
    (2005-03-18 11:25:49)       JZY
    (2005-03-18 11:24:35)       JZY
    treeContentObj = ObjectCollectionList.GetItem(ii);
    ObjectCollectionList这个是抽象的对象集 
       
    (2005-03-18 11:27:42)       JZY
    C:\Inetpub\wwwroot\CShardPractise\WindowsApply\frmTree.cs(129): The type or namespace name 'treeContentObj' could not be found (are you missing a using directive or an assembly reference?)
    不行.出现这个错误. 
    (2005-03-18 11:27:42)       JZY
    C:\Inetpub\wwwroot\CShardPractise\WindowsApply\frmTree.cs(129): The type or namespace name 'treeContentObj' could not be found (are you missing a using directive or an assembly reference?)
    不行.出现这个错误. 
    (2005-03-18 11:27:14)   长江支流
    treeContentObj是你申明的对象还是类 
      
    (2005-03-18 11:27:51)   长江支流对象而不是类 = ObjectCollectionList.GetItem(ii);
        
      
    (2005-03-18 11:31:12)       JZY
    我申明的对象,
    代码给你看看
    UNObjectCollection ObjectCollectionList = new UNObjectCollection();
      TreeContent treeContentObj = new TreeContent();
      ObjectCollectionList = ProInit.FunctionManageCenterObj.GetTreeList();    
    (2005-03-18 11:31:56)       JZY
    if (ObjectCollectionList.Count>0){
    for(int ii=0; ii <= ObjectCollectionList.Count-1;ii++){
      treeContentObj = ObjectCollectionList.GetItem(ii);
        listView_Tree.Items.Add(treeContentObj.Title);
    }
                    

    (2005-03-18 11:31:26)   长江支流
    关键是 ObjectCollectionList.GetItem返回的类型是不是TreeContent  
      
    (2005-03-18 11:31:26)   长江支流
    关键是 ObjectCollectionList.GetItem返回的类型是不是TreeContent  
      
    (2005-03-18 11:35:21)       JZY
    不是的,是object类型,我就想问问这个怎么转换,在vb.net中它就这样就够啦 
    (2005-03-18 11:35:11)   长江支流
    treeContentObj =(TreeContent)ObjectCollectionList.GetItem(ii);
     
      
    (2005-03-18 11:41:52)       JZY
     
    好高兴啊.谢谢.
    你那里有不有什么qq群.
    有什么问题,我们可以交流一下. 
    (2005-03-18 11:42:48)   长江支流
    搞好了么?没有QQ群 
      
    (2005-03-18 11:43:29)   长江支流
    在http://community.csdn.net/Expert/topic/3278/3278050.xml宣传一下 
      
    (2005-03-18 11:46:53)       JZY
    搞好了,
    谢谢啊.
    我刚接触c#,我弄出来了,我用的是我学习vb.net的思想,其实就是语法和规则有些不同.
     
    (2005-03-18 11:47:49)       JZY
    好的.没有问题.
     
    (2005-03-18 11:45:00)   长江支流
    只有一点不同,刚开始有些不习惯,过个把星期就好了,我以前就是搞VB的,搞了一段时间就搞C# 
      
    (2005-03-18 11:49:53)       JZY
    你还是瞒厉害的.
    我作了两年vb.net了,B/S,C/S都做过.
    现在觉得vb.net市场不是瞒大.所以学学c#   
    (2005-03-18 11:48:34)   长江支流
    哈哈,过奖,实践了就知道了 
      
    (2005-03-18 11:48:52)   长江支流
    vb.net好像是用Ctype(对象,类) 
      
    (2005-03-18 11:49:31)   长江支流
    你在华工毕业了吧 
      
    (2005-03-18 11:54:15)       JZY
    恩,都两年了.
    作vb.net作的瞒郁闷的,所以想学点新语言. 
      

  9.   

    我在此也重申一下,我不是帮flygoldfish(长江支流)作宣传,我觉得楼主说话太不负责任了.
    我也没有说他的那个开源软件多好,我只说他个人能力很强.
    他帮了我,难道我说几句客气的话都不行吗?
    真是气愤.愤怒!
      

  10.   


    我想说的是这根本不是一个开源的东西。下载之后看看,里面有一个GoldPrinter.dll,那是核心,没有源代码提供的。这个贴子里有好几个网友提请他公开,他不公开也就罢了,反而反复声称“TO: chsfly(南山) 大家先看看打印的功能,所有源码将全部开放,大家先提点意见嘛”、“同志们,下载了的Up一下,支持源码开放呼声不知怎么样?呼声高,才好继续开放啊”
    ”请问楼主,我是不是争对这一点之后又开源了很多代码嘛?不错,是有个GoldPrinter.dll,但是这是一个架构,V1.1和V2.2结构有很大的变化,为什么有的网友说后者的速度确实比前者的速度快了近100倍呢,就是因为优化了。
    我也和很多网友交流过说等我的项目完了之后好好把打印的结构再整理一下后全部开源,我不希望的是一个核心(正所谓楼主讽刺所说:很简单嘛)代码在我没有完善之前就让它有很多的版本,难道我开发的它我这一点权力也没有吗?
    楼主,你是不是还要我去找微软借一下
    System.Drawing.Printing.PrintDocument
    的源码?
      

  11.   


    我想说的是这根本不是一个开源的东西。下载之后看看,里面有一个GoldPrinter.dll,那是核心,没有源代码提供的。这个贴子里有好几个网友提请他公开,他不公开也就罢了,反而反复声称“TO: chsfly(南山) 大家先看看打印的功能,所有源码将全部开放,大家先提点意见嘛”、“同志们,下载了的Up一下,支持源码开放呼声不知怎么样?呼声高,才好继续开放啊”
    ”请问楼主,我是不是争对这一点之后又开源了很多代码嘛?不错,是有个GoldPrinter.dll,但是这是一个架构,V1.1和V2.2结构有很大的变化,为什么有的网友说后者的速度确实比前者的速度快了近100倍呢,就是因为优化了。
    我也和很多网友交流过说等我的项目完了之后好好把打印的结构再整理一下后全部开源,我不希望的是一个核心(正所谓楼主讽刺所说:很简单嘛)代码在我没有完善之前就让它有很多的版本,难道我开发的它我这一点权力也没有吗?
    楼主,你是不是还要我去找微软借一下
    System.Drawing.Printing.PrintDocument
    的源码?
      

  12.   

    你们这些人,也是的,别人的技术核心东西,可以保留一些,你们为什么要咄咄逼人呢?
    flygoldfish(长江支流)他完全是想与大家分享他的劳动成果,再说他也说了还在完善在.
    哎!楼主是不是在炒作自己有能力,你发个开源代码我们看看.
    切!!!!!!!!!!!!!!
      

  13.   

    微软从来不说他的System.Drawing.Printing.PrintDocument是开源好吗,打个比方,人家在公开的卖,但是呢,你还要立牌坊……
      

  14.   


    他又在顶贴子了:
     回复人: MISGoldPrinter(MIS金质打印通) ( ) 信誉:100  2005-03-24 14:33:00  得分: 0 
    (ps,flygoldfish自己说过:从今天起非作者flygoldfish (长江支流) 和MISGoldPrinter(金质打印通)的言行,不代表作者原意。)
    请版主处理!
    ”确实,我是发了这个贴,因为我已不再是www.alinksoft.com公司的职员,而且这个打印程序是个人爱好开发,不属于公司,在原贴中明确指出是“工作之余,终于搞出来了,拿出来和大家分享这份快乐!!!”,我不希望有人把他当作商业用途,所以我要严正申明非本人所言行,不代表作者原意。确实有很多网友希望付点费使用这个打印程序,但是我跟他们说我做这个程序目的不是为了挣钱,只是提供一个简单的打印程序给大家使用或交流,例如学生毕业设计中也许很多人不会去使用功能强大但还要学习而且还要付费的水晶报表,而这个打印至少解决了它一问题。而且很现实,像楼主这样的人,他给了他90%的源码(难道这不是源码吗?大家怀疑的话可以去下载看看),不仅免费的给了他,他还反倒希望你只为他一个人服务...再重申一次,这个软件不是商业软件,更不需要在这打广告...楼主真是细心,连我求职的信息也列出来了...
    多谢楼主了,让您费心了,这个月底我就去一家新的软件公司了,我时间我请你吃吃饭,如果需要,我可以给你全部的、101%的源码...
      

  15.   

    老实说,这个问题不需要争论。懂技术的人都明白。  当然,狡辩总是有100个借口。  什么叫开源?给出部分代码,核心的藏着,算不算开源?  如果给出一些用法、例子就算开源,那微软的.net,资料多么丰富,有msdn,有http://www.gotdotnet.com,有C#/vb.net编程101例,有.net framework sdk……  可是微软从来没说过自己是开源。为什么?核心是秘密的。  所以我说flygoldfish的东西根本不是开源。不管他举了多少例子,回答了几次提问。  SuccessMan(jzy),你的那个贴子太像托了,如果你不是我表示道歉。至于质疑我有没有放开源的东西在这里,首先,这跟flygoldfish这件事上有没有开源没有关系;其次,不妨去找一下我的贴子。是不是托,大家看得见。  重复,我并不是咄咄逼人,要flygoldfish开源,我只是希望他诚实。不开源就不开源,shareware大把的是,谁声称自己开源了?  至于吃饭,flygoldfish,不好意思,我没有时间。
      

  16.   

    可以看得出  flygoldfish(长江支流) 还是有一些用意地 最起码你应一开始就说清楚的 athossmth (athos) 说你几句也没什么 不过大家还是对你还是心存感激地,感把自已的东东拿出来 "炫耀以下" 对我等新手来说以是很大安慰!! 
        错就错在一开始你没说清楚,才有后来让人觉的你不"地道"
      

  17.   

    是否是欺骗,大家下载便知
    http://www.alinksoft.com/file/MISGoldPrinterV2.2免费源码版.rar
      

  18.   

    这个类呢?搞笑。public abstract class DrawBase : IDraw, IDisposable
    {
      public DrawBase();
      public virtual void Dispose();
      public abstract void Draw();
      public Brush Brush { get; set; }
      public Graphics Graphics { get; set; }
      public Pen Pen { get; set; }
      public Rectangle Rectangle { get; set; }
      private Brush _brush;
      private Graphics _graphics;
      private Pen _pen;
      private Rectangle _rectangle; 
    }重复:
    1、核心不开源就不是开源。
    2、不开源不是错误,欺骗才是。
     
      

  19.   

    这是所谓http://www.alinksoft.com/file/MISGoldPrinterV2.2免费源码版.rar
    的代码里的原话
    >>>>  //核心为网格对象,不对最终用户公开
    >>>>  protected DrawGrid mdrawGrid;
    这个DrawGrid是什么呢?
    public class DrawGrid : GoldGrid, IDraw 
    public class GoldGrid : GridBase 
    public class GridBase : IGrid, IDisposable这一路上DrawGrid, IDraw, GoldGrid, GridBase, IGrid,核心的三个类两个接口,都没有公开。我不是逼作者公开源代码。重复再重复:不公开我也能理解。不过不公开就不要号称开源了,好吗,还百般辩解,还说我诬蔑,搞笑,拜托,请尊重一下彼此的智力。
      

  20.   

    (2005-03-30 11:01:37)   XXX
    他们想怎么样?你的代码不是在code目录下吗?他们找不到? 
    (2005-03-30 11:04:12)  XXX
    那群人真无聊 
    (2005-03-30 11:04:18)  XXX
    是弱智 (2005-03-30 11:19:32)   XXX
    他们用于商用与你竞争,所以用激将法 
    (2005-03-30 11:19:11)   XXX
    不要公开你打印的全部源代码,小心中计  (2005-03-30 11:20:36)   XXX
    别理他们就行,不用争些虚名,
      

  21.   

    我看也是“弱智 ”
    //核心为网格对象,不对最终用户公开
    搞程序的人连“最终用户”和使用代码二次开发的概念都没搞明白楼主不是很有“智力”么?
    再用工具看看前期的是不是有GoldGrid之类的东西,这说明在调整当中就如楼主在主题中所列
    “同志们,下载了的Up一下,支持源码开放呼声不知怎么样?呼声高,才好继续开放啊”明确指出是“继续开放”
      

  22.   

    楼主不是说要大家搜索自己的贴子吗?
    好嘛,这还真像有人说的在炒作自己。
    网友们,大家用作者athossmth,内容为%  搜一下,如作者所愿,看看他宣传了些什么。时不时发个贴,如"20000分,散分",是散20000分呢还是炫耀自己有这么多的专家分,这本身就是欺骗我想楼主的分值也不至于低到发的大部分贴都用“0”分值,***典型事例***
    主  题:  投诉:flygoldfish欺骗网友,做虚假广告  
    作  者:  athossmth (athos)  
    等  级:    
    信 誉 值:  100  
    所属社区:  .NET技术 C#  
    问题点数:  0  
    回复次数:  47  
    发表时间:  2005-3-24 19:07:27  
    问题点数:  0 ,楼主真大方啊
      

  23.   

    MISGoldPrinter(MIS金质打印通)说法太过份,本来事情不大,你用词太激烈,是不对的。---------------------------------------------------------------------
    //核心为网格对象,不对最终用户公开
    搞程序的人连“最终用户”和使用代码二次开发的概念都没搞明白?????问题是现在是对谁都没有公开,所以楼主有质疑的权利,如果人家说得不对,大家心平气和地说,还把你们背后的聊天记录贴上来看,什么意思?
    ----------------------------------------------------------------------
    就如楼主在主题中所列
    “同志们,下载了的Up一下,支持源码开放呼声不知怎么样?呼声高,才好继续开放啊”明确指出是“继续开放”?????你不要偷换概念,原作者是说:“呼声高,才好继续开放”,而:
    “呼声高,才好继续开放”!=“继续开放”。
    呼声高的标准是什么?作者可以说不开放是因为呼声不高,所以没有开源的必要。这个标准掌握在谁的手里?谁弱智了??为了避嫌,我建议作者就不要开放了,免得我也是用激将法想获取你们的源代码。或者等一年半载再开放,这样着急的人暂时也用不上,大家都好做人。
    ------------------------------------------------------------------------------开源方的态度是谦虚,宽容,而不是商业宣传和技术炫耀。
    接受方的态度是感恩,回报,而不是丢了筷子骂娘。我想在这件事上大家都有不对的地方,大家说了就算了,不要火上烧油了。
      

  24.   

    MISGoldPrinter,你知道什么叫开放源码么?不知道的话,就不要借用这个名号,不要玷污了开放源码的精神。
    共享就是共享啦,又没人说你共享不对,为什么一定要拉上一个名不符实的外衣呢?
      

  25.   

    最后申明:大家看看随打印程序发布文档“日志”便知道修改完善的过程,其中开头部分一段:

    2004年01月07日
    调整打印程序内部结构,为使发出去的后期源程序版本一致,待近期调整完结构之后公布源码!
    这就是继V1.1之后没有发源代码的原因。

    致歉:打印程序为业余所开发,现阶段一直忙于项目,所以让“楼主及其他网友很生气,后果很严重”,真诚的表示歉意!慎重承诺:凡是给我发过mail或在原贴(http://community.csdn.net/Expert/topic/3278/3278050.xml)中留过mail的网友 ,都将在2005-05-01~2005-05-01期间收到(说得明白些:我决对的发送,收到否还要看接收者的邮件服务)我所开发打印的所有100%源码(包括楼主所说的核心程序)邮件。
    其它:
    无语...
      

  26.   

    我相信以前下载过的朋友没有受到欺骗,而且我是真诚的要开源,至于感觉受到欺骗的网友,本人在此表示诚挚的歉意[email protected],[email protected],[email protected],[email protected],[email protected],[email protected]等你们已是第一批的接收完全打印源码(包括期盼的GoldPrinter.dll)的朋友,请查收!
    其他朋友这两天将陆续收到。再次申明一下:
    源码仅供学习交流之用,虽然这次公布了完整的打印源码包括GoldPrinter.dll,但是我相信朋友们关注的不仅仅是GoldPrinter.dll本身,就如楼主所说,GoldPrinter.dll很简单,我相信大家关注的是如何把打印组织起来。献给那些需要了解打印分页原理、打印对话框、打印页面设置对话框、打印预览及怎么组织打印模块并实现二维网格、报表打印的朋友们作一个参考!希望大家不要说我还要什么什么的,程序永无尽头,大家交流的是思想。
    到了开源的时候,我都会全盘推出,只要大家不认为是垃圾,只要对朋友们有一丝启发和帮助,本人就很满足了!希望大家程序人生快乐!
      

  27.   

    最后把Excel操作的核心公布出来,与大家一起共勉!using System;
    using System.Data;
    using System.Drawing;
    using GoldPrinter.ExcelConstants;namespace GoldPrinter
    {
    /// <summary>
    /// 该类主要定义Excel的程序对象,启动Excel并打印及保存。可能依赖于Interop.VBIDE及Interop.Microsoft.Office.Core,如果需要,请加上
    /// </summary>
    public class ExcelBase
    {
    protected Excel.Application xlApp; //Excel应用程序
    protected Excel.Workbook xlWorkbook; //Excel工作薄,默认只有一个,用Open([Template])创建 private bool _IsVisibledExcel; //打印或预览时是否还要显示Excel窗体
    private string _FormCaption; //打印预览Excel窗体的标题栏 private Object oMissing = System.Reflection.Missing.Value;  //实例化参数对象 #region xlApp、xlWorkbook、IsVisibledExcel、FormCaption属性
    /// <summary>
    /// Excel应用程序
    /// </summary>
    public Excel.Application Application
    {
    get
    {
    return xlApp;
    }
    } /// <summary>
    /// Excel工作薄,默认只有一个,用Open([Template])创建
    /// </summary>
    public Excel.Workbook Workbooks
    {
    get
    {
    return xlWorkbook;
    }
    } /// <summary>
    /// 打印或预览时是否还要显示Excel窗体
    /// </summary>
    public bool IsVisibledExcel
    {
    get
    {
    return _IsVisibledExcel;
    }
    set
    {
    _IsVisibledExcel = value;
    }
    } /// <summary>
    /// 打印预览Excel窗体的标题栏
    /// </summary>
    public string FormCaption
    {
    get
    {
    return _FormCaption;
    }
    set
    {
    _FormCaption = value;
    }
    } #endregion public ExcelBase()
    {
    _IsVisibledExcel = false; //打印及预览时Excel显示
    _FormCaption = "打印预览"; //应检查Excell进程是否已在运行,否则每次实例化一个,则Excell进程多一个。现在在Close()里进行强制垃圾回收,可以不检测了。
    try
    {
    xlApp = new Excel.ApplicationClass();
    }
    catch(System.Exception ex)
    {
    throw new ExceptionExcelCreateInstance("创建Excel类实例时错误,详细信息:" + ex.Message);
    } xlApp.DisplayAlerts = false;  //关闭程序建立的Excel文件时,不会提示是否要保存修改
    } #region 打开关闭
    /// <summary>
    /// 打开Excel,并建立默认的Workbooks。
    /// </summary>
    /// <returns></returns>
    public void Open()
    {
    //打开并新建立默认的Excel
    //Workbooks.Add([template]) As Workbooks
    xlWorkbook = xlApp.Workbooks.Add(oMissing);
    } /// <summary>
    /// 根据现有工作薄打开
    /// </summary>
    /// <param name="p_templateFileName">用作模板的工作薄文件名</param>
    public void Open(string p_templateFileName)
    {
    if (System.IO.File.Exists(p_templateFileName))
    {
    //用模板打开
    //Workbooks.Add Template:="C:\tpt.xlt"
    xlWorkbook = xlApp.Workbooks.Add(p_templateFileName); //或者下一句也可
    //xlWorkbook = xlApp.Workbooks.Open(p_templateFileName,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing, oMissing,oMissing,oMissing,oMissing,oMissing,oMissing, oMissing);  
    }
    else
    {
    Open();
    }
    } /// <summary>
    /// 关闭
    /// </summary>
    public void Close()
    {
    xlApp.Workbooks.Close(); xlApp.Quit();
    xlApp = null; oMissing = null; //强制垃圾回收,否则每次实例化Excel,则Excell进程多一个。
    System.GC.Collect();
    }
    #endregion #region PrintPreview()、Print()用Excel打印、预览,如果要显示Excel窗口,请设置IsVisibledExcel 
    /// <summary>
    /// 显示Excel
    /// </summary>
    public void ShowExcel()
    {
    xlApp.Visible = true;
    }

    /// <summary>
    /// 用Excel打印预览,如果要显示Excel窗口,请设置IsVisibledExcel 
    /// </summary>
    public void PrintPreview()
    {
    xlApp.Caption = _FormCaption;
    xlApp.Visible = true; try
    {
    xlApp.ActiveWorkbook.PrintPreview(oMissing);
    }
    catch{} xlApp.Visible = this.IsVisibledExcel; } /// <summary>
    /// 用Excel打印,如果要显示Excel窗口,请设置IsVisibledExcel 
    /// </summary>
    public void Print()
    {
    xlApp.Visible = this.IsVisibledExcel; Object oMissing = System.Reflection.Missing.Value;  //实例化参数对象
    try
    {
    xlApp.ActiveWorkbook.PrintOut(oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing);
    }
    catch{}
    }
    #endregion #region 另存
    /// <summary>
    /// 另存。如果保存成功,则返回true,否则,如果保存不成功或者如果已存在文件但是选择了不替换也返回false
    /// </summary>
    /// <param name="p_fileName">将要保存的文件名</param>
    /// <param name="p_ReplaceExistsFileName">如果文件存在,则替换</param>
    public bool SaveAs(string p_fileName,bool p_ReplaceExistsFileName)
    {
    bool blnReturn = false;
    if (System.IO.File.Exists(p_fileName))
    {
    if (p_ReplaceExistsFileName)
    {
    try
    {
    System.IO.File.Delete(p_fileName);
    blnReturn = true;
    }
    catch(Exception ex)
    {
    string strErr = ex.Message; 
    }
    }
    } try
    {
    xlApp.ActiveWorkbook.SaveCopyAs(p_fileName);
    blnReturn = true;
    }
    catch(System.Exception ex)
    {
    blnReturn = false;
    } return blnReturn;
    }
    #endregion /// <param name="p_startRowIndex">指定单元范围起始行索引,从1开始</param>
    /// <param name="p_startColIndex">指定单元范围起始列数字索引,从1开始</param>
    /// <param name="p_endRowIndex">指定单元范围结束行索引</param>
    /// <param name="p_endColIndex">指定单元范围结束列数字索引</param>
    public Excel.Range GetRange(int p_startRowIndex,int p_startColIndex,int p_endRowIndex,int p_endColIndex)
    {
    Excel.Range range;
    range = xlApp.get_Range(xlApp.Cells[p_startRowIndex,p_startColIndex],xlApp.Cells[p_endRowIndex,p_endColIndex]);

    return range;
    } #region GetCellText(p_Range])
    public string GetCellText(Excel.Range p_Range)
    {
    string strReturn = "";
    strReturn = p_Range.Text.ToString();
    return strReturn;
    }
    #endregion
    #region SetCellText(Range)
    public void SetCellText(Excel.Range p_Range,string p_text)
    {
    p_Range.Cells.FormulaR1C1 = p_text;
    }
    #endregion           //其它的就是重载函数了    }End Class}End Namespace
      

  28.   

    >>没有关键的class没有源代码之说了,这次发出去的是打印的完整的源码
    >>最后把Excel操作的核心附在这,与大家一起共勉!搞笑,核心的DrawBase, DrawGrid, GoldGrid, GridBase, IGrid,IDraw, 都没有公开。贴了一个操作excel的东西就声称“没有关键的class没有源代码之说了”?还是那句话,拜托,不要侮辱双方的智力。
      

  29.   

    楼主最新的贴子http://community.csdn.net/Expert/topic/3900/3900580.xml里是这么说的:“要100%源码,完整实现打印源码(没有GoldPrinter.dll了,提供核心源码)学习交流参考的网友,直接联系Email:[email protected][email protected] 信附上打印的完整的全部源码及最新测试版。
      “再次申明一下:源码仅供学习交流之用,虽然这次公布了完整的打印源码包括GoldPrinter.dll,但是我相信朋友们关注产不仅仅是GoldPrinter.dll本身  “献给那些需要了解打印分页原理、打印对话框、打印页面设置对话框、打印预览及怎么组织打印模块并实现二维网格、报表打印的朋友们作一个参考!”
    我留了email,楼主马上email给我了,看了一下,GoldPrinter.dll里有31个类,源代码未公布(下面标▲的)有11个Body Bottom Caption ▲ChineseNum ▲DrawBase DrawGrid DrawRectangle DrawText ▲ExcelAccess ▲ExcelBase* ▲ExceptionExcelCreateInstance ▲ExceptionInvalidPrinter Footer ▲GoldGrid GridBase Header ▲ImportExcelArgs MisGoldPrinter MultiHeader Outer Printer ▲PrinterBase PrinterMargins PrinterPageSetting ▲PrinterSingleton PrinterTabStops Sewing ▲TimeDef Title Top WebPrinterPageSetting*:ExcelBase在http://community.csdn.net/Expert/topic/3878/3878703.xml中公开了部分代码有3个接口,源代码未公布的有2个:▲IDraw ▲IGrid这样的代码,算不算开源,这样的“开源”,算不算欺世盗名,大家自己判断。请问版主,这归不归你们管?
      

  30.   

    支持楼主的开源激情,同时也感激flygoldfish(长江支流) 的努力,如果楼主收到了请发一份给小弟,谢谢!
    [email protected]
      

  31.   

    athossmth(athos):不公开源码是开发者的权利,但他最不应该的是没有开源说成了开源,这可能是你不能火气大的原因吧。不过我觉得许多程序员也太不把别人的劳动当回事了,比如我的电子表格控件Http://www.winfarsoft.com/winfar_richcell.rar,有许多人下载试用后就问我能不能开源,说实话,我花了我四年多的时间才做出来,其间的辛苦只有自己知道,我还真的指望它能给我带来的回报呢!大家想想我能开源吗?其实大家都是程序员,对别人劳动成果的尊重也是对自己的尊重。长江支流不开源大家也没有什么好说的,但长江支流不能骗人,不开源就不开源吧,又何必说是开源呢!