2009年6月17日

 

人笨了是不是不应该学Java,不应该做程序...
我现在对程序彻底失去了信息,还没有普通员工做的开心
posted @ 2009-08-08 19:41 小末鱼 阅读(151) | 评论 (0)编辑 收藏
 

 

关键字: J2ME,C#,Mobile,Wireless
J2ME美好的write once,run anywhere的初衷,被各大手机厂商摧残的体无完肤,变成write once,debug everywhere(或者write once, port everywhere)。
在经历了2,3年头脑火热期后,J2ME developers终于意识到一个统一的J2ME JVM implementation的重要性。貌似IBM开始了一个J2ME标准制订的委员会,Sun也开始开源J2ME,希望不久的将来J2ME可以更加规范些。但各大手机厂商的态度很重要。看过太多的厂商口口声声说支持xxJSR标准,开放xx底层API,手机拿到手一看傻眼,JSR标准只支持一半,基本上无用。底层API只开放给自己的软件用,其它人开放的程序,对不起,没有permission。很多优秀的JSR,如PIM,MMS,等等,基本于我们无缘。模拟器里玩得很高潮,实际手机上一试,基本嗝屁!

SavaJe给了J2ME一线希望。SavaJe是直接的Java OS,而不是寄存于手机kernel OS上的一层JVM layer。在今年的JavaOne上大出风头。native执行J2ME程序的速度很快,也很酷。可惜没有得到大手机厂商的支持,月前据说烧了1个多亿的钱,目前运转有困难,融资又融不到,前景叵测。可惜。

Windows C#Compact Framework倒不同。只是因为MS垄断,但看起来至少在mobile方面,这个垄断挺好。
Windows Mobile (以下简称WM)在企业级的应用上,和MS的几个龙头产品的整合非常好。特别是outlook的整合,很受商业人士的青睐。他们最关切的不是技术上的优势和技术的领先程度,他们关心的是技术是否很好的为他们的商业发展服务。他们才不管MS的垄断与否。事实上,他们更希望一个统一的开发平台,所有的程序和数据可以很方便的整合。(虽然我是anti-MS,但他们商业应用上的优势不可否认)。WM上的POOM(Pocket Outlook Object Model)很好的结合了Outlook中基本(但很重要的)功能。另外一个摄像头的API,可以很方便的拍照片,视频聊天,拍video等等,开发者不需要写low level的摄像头驱动程序(J2ME这点做得很不够),直接调用摄像头API的功能,可以更专注于商业逻辑的开发。
posted @ 2009-06-28 15:59 小末鱼 阅读(238) | 评论 (1)编辑 收藏
 
     摘要:   阅读全文
posted @ 2009-06-28 14:09 小末鱼 阅读(200) | 评论 (0)编辑 收藏
 
:按下面的步骤一步一步做,不要作弊,否则你的希望会落空(用3
分钟完成)发送这个留言的人说:她的愿望在十分钟内变成现实,记住:不要有欺骗行为
。这个戏的结果非常有趣,注意:按顺序往下读,不能跳跃地往下读(只要花3分钟,值
得一试)首先拿一枝笔和一张纸,当你在作出选择时,如果是人物,保证是你认识的,无
论是数字或人物,必须是?#123;第1直觉,每次向下移动一行――记住:不要跳行往下读






一、首先,在一列中写下1到11的序号(即1、2、3、4、5、6、7、8、9、1
0、11)





二、在序号1和2的旁边,写下你所想的任意两个数字。





三、在序号3和7的旁边,写下任意两个异性的名字。(注意:不要跳跃的向下看)





四、在序号4、5、6的旁边,写下朋友或亲戚的名字。(不要有欺骗行为)





五、在序号8、9、10、11的旁边,写下4首歌的名字。





六、最後,许一个愿。





结果:
1. 你必须把这个游戏告诉给(序号2旁边写下的数字)个人。
2. 序号3是你所爱的人。
3. 序号7是你所喜欢的但不能与之相伴的人。
4. 序号4是你最关心的人。
5. 序号5是非常了解你的人。
6. 序号6是你重要的人。
7. 序号8的歌适合序号3的人。
8. 序号9的歌适合序号7的人。
9. 序号10的歌最能代表你的想法。
10. 序号11的歌是你对生活的感受。
读完这个结果之後,在一个小时之内转载到2个论坛,如果照此做,了你的许愿就会变成
现实,否则,就会事与愿违。
posted @ 2009-06-23 15:51 小末鱼 阅读(141) | 评论 (0)编辑 收藏
 
//有保存对话框

public void dgvToExcel(System.Windows.Forms.DataGridView datagridview, string SheetName)
        {
            
int iRows = 0;
            
int iCols = 0;
            
int iTrueCols = 0;
            Microsoft.Office.Interop.Excel.Application app 
= new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook wb 
= app.Workbooks.Add(System.Reflection.Missing.Value);
            Microsoft.Office.Interop.Excel.Worksheet ws 
= null;

            
if (wb.Worksheets.Count > 0)
            {
                ws 
= (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets.get_Item(1);
            }
            
else
            {
                wb.Worksheets.Add(System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
                ws 
= (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets.get_Item(1);
            }
            
if (ws != null)
            {
                
if (SheetName.Trim() != "")
                {
                    ws.Name 
= SheetName;
                }
                iRows 
= datagridview.Rows.Count;      //加上列头行
                iTrueCols = datagridview.Columns.Count;   //包含隐藏的列,一共有多少列
                
//求列数,省略Visible = false的列
                for (int i = 0; i < datagridview.Columns.Count; i++)
                {
                    
if (datagridview.Columns[i].Visible) iCols++;
                }
                
string[,] dimArray = new string[iRows + 1, iCols];
                
for (int j = 0, k = 0; j < iTrueCols; j++)
                {
                    
//省略Visible = false的列
                    if (datagridview.Columns[j].Visible)
                    {
                        dimArray[
0, k] = datagridview.Columns[j].HeaderText;
                        k
++;
                    }
                }
                
for (int i = 0; i < iRows; i++)
                {
                    
for (int j = 0, k = 0; j < iTrueCols; j++)
                    {
                        
//省略Visible = false的列
                        if (datagridview.Columns[j].Visible)
                        {
                            
if (datagridview.Rows[i].Cells[j].Value != null)
                            {
                                dimArray[i 
+ 1, k] = datagridview.Rows[i].Cells[j].Value.ToString();
                            }
                            
else
                            {
                                dimArray[i 
+ 1, k] = "";
                            }
                            k
++;
                        }
                    }
                }
                ws.get_Range(ws.Cells[
11], ws.Cells[iRows + 1, iCols]).Value2 = dimArray;
                ws.get_Range(ws.Cells[
11], ws.Cells[1, iCols]).Font.Bold = true;
                ws.get_Range(ws.Cells[
11], ws.Cells[iRows + 1, iCols]).Font.Size = 10.0;
                ws.get_Range(ws.Cells[
11], ws.Cells[iRows + 1, iCols]).RowHeight = 14.25;
                
//ws.Columns[.ColumnWidth = datagridview.Columns[0].Width;
                for (int j = 0, k = 0; j < iTrueCols; j++)
                {
                    
//省略Visible = false的列
                    if (datagridview.Columns[j].Visible)
                    {
                        ws.get_Range(ws.Cells[
1, k + 1], ws.Cells[1, k + 1]).ColumnWidth = (datagridview.Columns[j].Width / 8.4> 255 ? 255 : (datagridview.Columns[j].Width / 8.4);
                        
//ws.Columns.c = datagridview.Columns[j].Width;
                        k++;
                    }
                }
            }
            app.Visible 
= true;
        }
posted @ 2009-06-17 19:53 小末鱼 阅读(1746) | 评论 (0)编辑 收藏
 

当月第几个星期:

方法一: datepart(week,OrderDate)-datepart(week,OrderDate-day(OrderDate))+1
方法二: 
datediff(week,DATEADD(mm,   DATEDIFF(mm,0, OrderDate),   0), OrderDate)+1 

 

--行列转换,显示的列,必需出现在聚合函数,或 group by   

select uvw.upclassname ,
sum(case when (datepart(wk,uvw.orderdate)=datepart(wk,'2009-6-1'))  then (uvw.orderqty) else 0 end  ) 'first week' ,
sum(case when  (datepart(wk,orderdate)-1=datepart(wk,'2009-6-1'))  then orderqty else 0 end  ) 'second week',
sum(case when  (datepart(wk,orderdate)-2=datepart(wk,'2009-6-1'))  then orderqty else 0 end  ) 'third week',
sum(case when  (datepart(wk,orderdate)-3=datepart(wk,'2009-6-1'))  then orderqty else 0 end  ) 'fourth week',
sum(case when  (datepart(wk,orderdate)-4=datepart(wk,'2009-6-1'))  then orderqty else 0 end  ) 'fifth week'
from ( select upclassname,sum(orderqty) orderqty,orderdate from uvw_orderlistforqty
group by upclassname,orderdate having sum(orderqty) >0 ) as uvw

 
查看#建立的临时表

select   *   from   sysobjects   where   name   like   '#t%'  
Drop   Table   #t  
posted @ 2009-06-17 19:50 小末鱼 阅读(96) | 评论 (0)编辑 收藏