搜尋此網誌

2011年9月29日 星期四

Windows From 行事曆

資料來源:
    http://www.codeproject.com/KB/selection/MonthCalendar.aspx

前置準備:
由於windowform中的元件Month Calendar是無法改變單一日期顏色所以請先
請到資料來源的網站中下載元件
"Download demo (.NET 2.0) - 67.4 Kb"

一.開啟一個新的專案
二.專案-->屬性
















                                                                                               

                                            

確認目標Framework得屬性為.NETFramework4
   不要選到Clint那個不然等下元件加進去建置完就會消失
    之前沒注意到搞了好久~吃了好大的虧阿
三.工具箱-->加入索引標籤(Pabo)-->
    右鍵-->選擇項目-->然後加入MonthCalendar.dll















                                                           
                                                                                 
四.將MonthCalendar托放至畫面
五.變更假日跟當日顏色
 private void monthCalendar1_DayQueryInfo(object sender, Pabo.Calendar.DayQueryInfoEventArgs e)
 {
      // 假日變更顏色
      if (e.Date.DayOfWeek == DayOfWeek.Saturday || e.Date.DayOfWeek == DayOfWeek.Sunday)
     {
         if (e.Date.Month == monthCalendar1.ActiveMonth.Month)
        {
           // Add custom formatting
          e.Info.BackColor1 = Color.Red;
          e.Info.BackColor2 = Color.GhostWhite;
          e.Info.ImageListIndex = 3;
          // Set ownerdraw = true to add custom formatting
          e.OwnerDraw = true;
        }
     }
     //當日變更顏色
     if (monthCalendar1.ActiveMonth.Month  == DateTime.Now.Month )
     {
                if (e.Date == DateTime.Now.Date)
                {
                    e.Info.BackColor1 = Color.SandyBrown;
                    e.Info.BackColor2 = Color.GhostWhite;
                    e.Info.ImageListIndex = 3;
                    // Set ownerdraw = true to add custom formatting
                    e.OwnerDraw = true;
                }
     }




 }
六.變更年月份年份時執行
private void monthCalendar1_MonthChanged(object sender, Pabo.Calendar.MonthChangedEventArgs e)
{




}
七 雙擊點選時執行

private void monthCalendar1_DayDoubleClick(object sender, Pabo.Calendar.DayClickEventArgs e)
{
            //e.Date 等於點選的日期
}

讓VS2010可以使用VS2008開啟的方法

轉貼自http://blog.csdn.net/wyzxk888/article/details/6331950

使用此的原由:
使用同事建立好的widow form專案時發現
目標Framework沒有低階得選項只有4.0可以選
導致無法資料跑時無法正常執行。。。。


.sln檔

前兩行:
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

改為:
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008

.csproj檔

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0 " DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

改為:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5 " DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">


.csproj.user檔

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0 " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

改為:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5 " xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

專案開啟後
請先建置
修改你的目標Framework
假如你原始專案中App.config中有建立supportedRuntime
可能也要更著修改(我是直接把App.config砍了@@)
以上是作者本身碰到的問題~這裡記錄一下~





2011年9月27日 星期二

關於window server 2008的工作排程器

作者我最近由於專案上的需求~
所以需要在server上建立一個排程
但不知是我的設定問題呢~還是他本來的設計就是如此
以下是在這次設定中發生的事項~在此次紀錄之~
1.建立排程請使用Administrator帳號登入
   (雖然後來我沒在使用其他帳號試過但安全起見還是用Administrator吧)
2.工作排程器上的執行~只是該排程開始啓用掛載上去得意思而已
   你不管按幾次他都不會實際去跑
   (這點跟之前版本有點不太一樣~之前我還呆呆試了好幾次想說怎都不動作)
3.使用.bat檔執行
   (作者需要跑的排程是一個.exe檔但不知為啥直接跑它OK但是排程跑都失效
     會使用bat也是最後無奈的作法~好在最後成功了
   )








安全性選項 使用者帳號
(注意:以最高權限執行~並非一定要勾選看個人專案需求
  ~因為作者有碰過勾了執行結果說成功結果反而不能跑的狀況 )

2011年9月9日 星期五

GridView 隔行換色


//ds 抓取的資料
if (ds.Tables[0].Rows.Count > 0)
  {
      int j = 0;
      int co = 0;
     //pagecount 每頁要秀的筆數
     int rowcount = pagecount * (Rsult_Grid.PageIndex + 1);
     if (rowcount > ds.Tables[0].Rows.Count)
     {
         co = ds.Tables[0].Rows.Count - (pagecount * e.NewPageIndex);
     }
     else
     {
         if (Rsult_Grid.PageIndex == 0 && ds.Tables[0].Rows.Count > pagecount)
        {
              co = pagecount;
        }
        else
       {
             co = ds.Tables[0].Rows.Count - rowcount;
       }
     }
     if (co > pagecount)
     {
          j = pagecount;
     }
     else
     {
         j = co;
      }
      for (int i = 0; i <= j - 1; i++)
      {
           // Rsult_Grid  GridView
           Rsult_Grid.Rows[i].BackColor = System.Drawing.Color.Gainsboro;
           i = i + 1;
      }
  }

2011年9月6日 星期二

DataTable轉EXCEL

通常我們在匯入excel後會在多產生一個錯誤報表給使用者更新
這邊提供的方法為
A網頁
.aspx

function erxls()
 {
        if(confirm("匯入完畢,是否匯出錯誤報表"))
       {
            window.open('B.aspx','錯誤資訊')
       }
      else
      {
   return false;
      }
 }



.cs檔
判斷產生的datatable有無資料
有資料後
將datatable存入Session
呼叫javascript function   erxls()


B網頁
DataTable errResult = (DataTable)Session["errResult"];

 if (errResult.Rows.Count > 0)
 {
                //呼叫APP_CODE中的CS檔
                XXXX ai = new XXXX();
                StringBuilder sb = ai.DtToExcel(errResult);
                //假如在A網頁中直接呼叫由於被清掉的緣故會導致畫面變成一片
                // 空白所以在這邊我們採用另開視窗的方式
                Response.ClearHeaders();
                Response.Clear();
                Response.ContentType = "application/vnd.ms-excel";
                Response.Buffer = true;
                Response.Expires = 0;
                Response.AddHeader("Content-Disposition", "attachment; filename=" + "error" + ".xls");
                Response.Write("<meta https-equiv=Content-Type content=text/html;charset=UTF-8>");
                Response.Charset = "UTF-8";
                Response.Write(sb);
                Response.End();
}


App_Code

public StringBuilder DtToExcel(DataTable dt)
{
         StringBuilder sb = new StringBuilder();
         if (dt.Rows.Count >0)
         {
             
             sb.Append("<html><body>");
             sb.Append("<table  cellspacing='0' cellpadding='0' width='50px'>");
             for ( int ii = 0 ; ii<= dt.Rows.Count - 1;ii++)
             {
                 sb.Append("<tr><td colspan='1' align='center'>欄位名稱:" + dt.Rows[ii]["XX"] + "</td> ");
                 sb.Append("<td colspan='1' align='center'>欄位名稱:" + dt.Rows[ii]["XXX"] + "</td>");
                 sb.Append("<td colspan='1' align='left'>欄位名稱:" + dt.Rows[ii]["XXX"] + "</td></tr> ");
             }
             sb.Append("</table>");
             sb.Append("</body></html>");
         }
         return sb;
}





2011年9月4日 星期日

Mono for Android初體驗(C# & Android)

以下文章參考網址
http://blog.xuite.net/keigen/SoftwareFactory/43443432
http://www.dotblogs.com.tw/joe80075/archive/2011/06/25/29930.aspx

安裝環境設置
安裝前請先確認VS2010有裝
假如全部裝完後才發現沒裝的話~第三步可是要重裝的~
以下連結是3個安裝檔的合併壓縮檔假如想偷懶一點的可從下方連結下載
https://docs.google.com/leaf?id=0B5I8M6D1VYZ4NzFjNzZjMTYtZWU4OS00MTA2LTlhYjctN2M5MjFkMjU1ZmQ1&hl=en_US
資料來源分別為
JDK
http://cn.forums.oracle.com/forums/thread.jspa?threadID=2270559
Windows SDK installer
http://developer.android.com/sdk/index.html
Mono for Android
http://mono-android.net/DownloadTrial



1.首先下載JDK(32bit)
   以下是oracle 下載網址
   http://www.oracle.com/technetwork/java/javase/downloads/index.html
   不過由於目前已無看到可下載的32bit的載點
   所以假如真的找不到可下載筆者的合併壓縮檔



2.安裝 Windows SDK installer
   下載網址為http://developer.android.com/sdk/index.html












2011年9月1日 星期四

C#開發android 相關文章

C#開發android
今天心血來潮時突然想到C#不知能不能開發android 系統
沒想到查查GOOGLE時意外發現好幾篇
上面寫的主要是使用Mono for Android 該套件
http://ffej1022.blogspot.com/2011/06/vistual-studio2010-c-android.html
http://www.dotblogs.com.tw/joe80075/archive/2011/06/25/29930.aspx
http://news.cnblogs.com/n/96608/
http://blog.xuite.net/keigen/SoftwareFactory/43443432

問題紀錄

紀錄運行中碰到的一些問題
PL/SQL developer 
Q:登錄時出現空白提示窗 登錄失敗
A:對捷徑點選內容-->相容性-->以系統管理員執行此程式
    此問題應為發生系統錯誤SP2-1503:无法初始化oracle调用界面
參考網址:http://honley.iteye.com/blog/1103651  

ASP.NET
Q: javascript 錯誤 WebForm_InitCallback()必須要有物件
A:此為伺服器上時間的問題日期調對即可
參考網址:http://hi.baidu.com/thinkibm/blog/item/b9efb500f5c01282e850cd6b.html

換行符號的轉換

\r=chr(13)=vbcr
\n=chr(10)=vblf
\r\n=vbcrlf


CSS
Q:position: absolute; top: 248px; left: 0px; width: 620px; height: 65px; z-index: -1
   在ie可以跑firefox google不能跑
A:firefox google 內z-index不能為負