Saturday, January 23, 2010

www.cisait.com , Good articles on DWBI

发现了一家北京钢冶联信息科技有限公司, 网站上都是DWBI的好文章, 收藏之,

http://www.cisait.com/

develop SSIS SSH/SFTP/SCP task

最近我在维护公司的DWH,  DWH数据库用的Oracle, 服务器用的是Linux, ETL用的是DataStage 7.5.3,  DataStage的Job Sequence功能实在不怎么样(和SSIS的control flow实在没法比). 公司也仅仅是是使用了DataStage的Parallel Job来进行数据的ETL, 根本就没有一个Sequence类型Job. 流程控制不得不用Linux Shell来控制. 但Shell 毕竟不像一般的编程语言,  一来不直观, 而来维护成本也高.

因此我有个想法, 开发一套SSIS  Task, 包括SSH, SFTP/SCP, SSH Connection.  如果有了这些Task组件, 那么SSIS Package就能实现了Linux/Unix命令发送/文件获取, 解决了大部分的跨OS交互问题. 也许有点市场, 能挣点小钱.

下面是收集的一些SSIS Sample, 另外意外地发现, 已经有厂家提供类似的组件.

Hello World Task Sample
http://www.codeplex.com/SQLSrvIntegrationSrv/Release/ProjectReleases.aspx?ReleaseId=17648

Enhanced SSIS Execute Package Task

http://ssisexec.codeplex.com/sourcecontrol/changeset/view/46583?projectName=SSISExec

Excel2 Connection Manager
http://ssisctc.codeplex.com/wikipage?title=Excel2%20Connection%20Manager&referringTitle=Home

SQL Server Integration Services Product Samples
http://www.codeplex.com/MSFTISProdSamples

SSIS Community Tasks and Components
http://ssisctc.codeplex.com/

两个提供类似产品的商业厂家
http://www.cozyroc.com/products
http://www.cozyroc.com/ssis/ssh-connection
http://www.cozyroc.com/ssis/ftps-connection
http://www.cozyroc.com/ssis/ssh-execute-task
http://www.cozyroc.com/ssis/scp-task
http://www.cozyroc.com/purchase

http://www.nsoftware.com/ssis/
http://www.nsoftware.com/order/options.aspx?part=EAS3-A

Saturday, January 16, 2010

craagle (crack google)

Craagle

这东西是干啥的? 搜索序列号或者软件破解工具的。我不是鼓励你用盗版,但如果是学习或者研究的目的.....要问哪里可下载,Google 一下就知道。

FairUse4WM

下载了视频文件发现需要 DRM ? FairUse4WM 就是用来破解 DRM 问题的。偶而一用,还真的不错。这工具的名字也挺有意思的,Fair -- 认为 DRM 不公平才开发的。

fastcopy
ipmessenger(国内叫飞鸽)作者的另一个作品,利用磁盘cache很出色,复制大文件时速度奇快。

Saturday, January 9, 2010

Tips of FastReport for .Net

在用Delphi开发报表时代, FastReport是我不二的选择. 现在用C#, 一直没有找到合适的报表工具, 微软的RDLC, 我是怎么都不习惯.  最近我下载了FastReport For .Net, 又让我找回了开发报表的快感. 官网上下载的demo版本, 只有唯一的一个限制, 就是最终报表预览会有一个Demo Version的水印,  FR官方够慷慨啊.

一般设计时, 只需在Form上放两个FastReport的组件EnvironmentSettings, Report. 其中EnvironmentSettings可以用来设定FastReport的UI风格/Email设置/Preview设置等等, 我们可以在Report组件中设计报表, 在报表中, 可以添加DataSource和Parameter.  一般的中国式报表, 我们都需要加个Data Band在Page页面上. 需要为Data Band指定一个data Source, 这样Data Band上的TextBox才会在循环取出Data Source中每个记录, 否则DataBand只能显示DataSource的第一条记录.


下面的代码是, 怎样在Form中显示FastReport的预览界面.

        private void ShowRptWithFastReport()
        {
            int categoryID = ((FeeCategory)(comboBoxFeeCategory.SelectedItem)).CategoryID;

            //往report中传递两个参数值
            report1.SetParameterValue("ParamMagicNumber", m_MagicNumber);
            report1.SetParameterValue("ParaFeeCategory", categoryID);

            //动态设置Report中数据源(该数据源名为Connection)的ConnectionString
            var frConn = (MsSqlDataConnection)report1.FindObject("Connection");
            frConn.ConnectionString = Settings.Default.AccSetDbConnectionString;

            ////显示报表预览界面
            report1.Show(true);
        }



我们的软件有正式版和试用版之分, 对于试用版, 我们只允许用户打印前5页. 那么, 该如何控制呢? 用FastReport非常简单. 
步骤1: 设置Report的DoublePass属性为True,  这样FastReport引擎会对报表扫描2次, 第一次取数据, 第二次显示数据.
步骤2: 在Data1(它是个DataBand)上增加下面的事件.

    private void Data1_BeforePrint(object sender, EventArgs e)
    {
      if (Engine.FinalPass)
      {
        if (Engine.CurPage>=Convert.ToInt32(Report.GetParameterValue("ParamMagicNumber")) )
        {
          if (Engine.CurPage<=Engine.TotalPages-1)
            MessageBox.Show("本报表总页数为"+Engine.TotalPages.ToString()+", 但此试用版的软件不允许打印全部的页数! ") ;

          Report.Abort();
        }
      }
    }