gougou 的blog
Delphi中获取时间范围
由 gougou 于 星期三, 2005-02-16 18:44 发表今天写的一个报表要取时间范围,我首先到DateUtils单元中找了找,发现一个MonthSpan好像比较符合我的要求,看了看帮助,突然发现Delphi中的
MonthSpan的算法是将两个日期之间的天数除以一个每月平均天数算出来的,而不是我想要的两个日期的月份相减,险些上当,只好自己写了一个函数来完成。看了看其他的类似方法如MonthBetween等也有类似问题,以后使用时一定要看看源码才敢用(即便是Borland公司写的函数也有问题的说)
HtmlHelp2 真tmd的变态
由 gougou 于 星期三, 2005-02-16 00:10 发表检查DotNet Framework是否已经安装
由 gougou 于 星期六, 2005-02-12 21:41 发表检查注册表键是否存在 HKLM\SOFTWARE\Microsoft\,NetFramework\Policy\v1.1
检查$WinDir\Microsoft.NET\Framework\目录是否存在
创建QuickReport的自定义函数
由 gougou 于 星期六, 2005-02-12 12:54 发表n年没有用QuickReport了,最近要用它写报表,中间写一个复杂的报表表达式时,觉得太复杂了,决定自己写一个QuickReport的自定义函数。QuickReport的函数实现方法还是挺简单的,只要从TQREvElementFunction基类派生,并实现Calculate方法就可以了,所有传进来的参数可以通过Argument方法获取。
function TQREvAcountFunction.Calculate: TQREvResult;
var
strDeType:string;
function GetResultType:TQREvResultType;
begin
Result:=resDouble;
end;
function ZeroResult:TQREvResult;
begin
Result.Kind:=resDouble;
Result.dblResult:=0;
end;
begin
if (ArgList.Count = 2) and (Argument(0).Kind = resString) and ((Argument(1).Kind=resDouble) or (Argument(1).Kind=resInt)) then
begin
strDeType:=Trim(Argument(0).strResult);
if MatchType(strDeType) then
Result := Argument(1)
else
Result :=ZeroResult ;
end else
Result := ErrorCreate(Format(SqrExpWrongArguments, ['Account Function'])); // Do not translate
end;
const
SqrDesc = 'Returns <X> or 0 depending on the <Type>';
SqrSoft = 'Sysa';
initialization
RegisterQRFunction(TQREvEtcFunction,'Etc', 'Etc(<Type>, <Count>)|' + SqrDesc, SqrSoft, '2SN');
唯一要注意的是RegisterQRFunction的第四个参数是一个字符串,2表示统计函数,S表示第一个参数是字符串,N表示第2个参数是数字。
Norton真tmd烂
由 gougou 于 星期二, 2005-02-08 14:36 发表百度没有前途
由 gougou 于 星期五, 2004-12-31 00:32 发表以前我的网站来自百度的访问量大概有10-20%,但是后来直线下降,一直不明白为什么。最近上百度搜索医院,突然发现一个熟悉的小医院排名居然排在第一位,我老婆是做在线广告的,告诉我该医院买了百度的搜索排名的服务,所以能排在前面,联想到很久以前一些知名的搜索引擎厂商就因为卖搜索排名,把自己的名声搞臭了,结果Google异军突起。联想到现在的百度,老这么搞的话,我担心下场好不了。
FireFox越来越流行了
由 gougou 于 星期二, 2004-12-28 20:11 发表我的个人网站访问者,中firefox的用户从2%增加到了4%
昨天看了一个流量在1200独立ip的欧洲网站的统计,firefox的用户在20%以上了。ie的用户才50%(不算myie这类工具)
不过maxthon和myie在国外用的还不是很多,虽然在国内占了20%左右。
.Net Framework中一个拙劣的设计
由 gougou 于 星期二, 2004-12-07 22:25 发表Toolbar响应按钮点击事件不是为每个Button定义一个OnClick事件,而是要求你在ButtonClick事件中统一进行处理,这会导致一种很糟糕的编程风格:
if (e.Button==btn1)
do1;
else if (e.Button==btn2)
do 2;
....
可以想像如果你的工具条上有20多个按钮,你的ButtonClick事件中会堆满了一堆乱草
其实,原来我对这个糟糕的设计并不是那么气愤,真正让我气愤的是因为微软那个傻X工程师的设计间接导致我写的一个控件对于ToolbarButton的绑定无效。这个意外又将花费我一些时间去研究,强烈鄙视作者!
使用Infopath和SharePoint进行信息采集
由 gougou 于 星期二, 2004-11-30 12:20 发表部门中经常需要让大家填写工作周报、日报等等,填写完之后进行汇总是一个比较麻烦的事情。
今天试验着用InfoPath和SharePoint做了一下,感觉不错。首先就是用InfoPath建一个表单,然后发布到SharePoint的表单库。建好后,发一个Email给大家,让大家填写。填写后,用Merge Form的功能就可以将这些表单进行汇总。另外,SharePoint还支持对InfoPath的过滤,全文检索,分组等功能,还可以对某个表单的修改监视。