2015年10月26日 星期一

SSRS RDL 顯示不出微軟正黑體

同事傳來一個SSRS RDL報表檔,說table的欄位字型設成微軟正黑體後,預覽時,全部都變成了空白的一片。但匯出PDF,報表的字型顯示又都很OK,只有在預覽時不正常。

但將微軟正黑體改成新細明體後,預覽又都變得很正常。

把他的rdl用我的SSDT BI 2013打開來看,預覽了一下,在我的機器上看來都很OK咧。

因同事的REPORT DESIGNER是VS2008的中文版本,在設計報表時,字型的下拉選項是直接可看到微軟正黑體的選項,但我的是VS2013英文版,只有Microsoft JhengHei UI這個選項,但不論我是打微軟正黑體、Microsoft JhengHei或是選Microsoft JhengHei UI,報表預覽都很正常。

後來測了一下,發現只要在VS2008的環境中,把字型輸入改為直接打上Microsoft JhengHei後,神奇的是,報表預覽就一切都正常了。

怪哉!


2015年9月2日 星期三

該打掉重練的微軟合作伙伴網站

https://mspartner.microsoft.com

微軟合作伙伴的網頁,用了幾年,無疑是我認為最沒長進的網站了。

微軟自家的網站怎麼可以慢到一個不行?

然後有時還會導到莫名的錯誤頁面。

一堆連結連來連去的,我都花了。

操作的UI很不友善(就如同人客幹譙我們一様...哈哈)

我覺得他要打掉重練吧 (就如同我自已的內容OS一樣....哈哈)

VS2015 部份欄位變亂碼

安裝了VS2015後,將原本的專案PUBLISH。
結果有一個畫面部份欄位中文變成了亂碼。

原本以為是.cshtml中文字亂掉了,結果一看,都是自訂的mvchtmlhelper所產出的label欄位
怪的是,同一個model,部份欄位中文顯示亂碼,但部份欄位則顯示正常的中文。



參考了二篇文章
【茶包射手日記】VS2015程式檔編碼問題
Visual Studio 2015的坑:中文字符串编译后成乱码 (這標題很貼切,真是他媽的坑...)

也用notpad++查看可疑的.cs檔,

咦,還真的是big5咧。





2015年8月31日 星期一

T400 Windows 10

實在是很痛苦的安裝經驗。
想把一顆原本安裝WIN8的硬碟換成WIN10看看。殊不知開啟了二天二夜今人沮喪、灰心的心路歷程。把我過去多年來的安裝經驗給重新清洗一遍。
所以要好好記錄一下。

之前習慣用WINUSB這個工具製作USB安裝開機,做過WIN7及WIN8安裝使用都沒有什麼問題。

但這次製作WIN10的開機USB後 ,進入到選取安裝磁碟機時,就出現以下的訊息

安裝程式無法建立新的系統磁碟分割, 也找不到現有的系統磁碟分割

試了網路上的所有方法後,一切了然,通通無效,包括安裝過程中SHIFT+F10 DISKPART設定磁碟、包括USB3.0換成USB2.0開機安裝相同(要再安裝之前裝WIN8用的USB也變得無理取鬧了起來)。

很奇怪咧,難到是鬼月嗎?

最後回到光碟機開機安裝,重見光明,所有的鬼的跑了,完成WIN10的安裝。

2015年8月11日 星期二

Entity Framework 設定command timeout及isolationlevel

 
修改你的emdx例 MyData.edmx 下的MyData.Context.cs檔
在初始化時加入設定,如下:

 public MyDataContext()
            : base("name=MyDataContext")
{
 this.Database.CommandTimeout = 180;  //秒,語法執行timeout時間
 ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180; //這樣也可
 //isolation=readuncommitted         
 ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;");

}


在SSMS 模擬LOCK狀態
begin transaction
update mytable set mycolymn =1 where myid = 1

然後執行網站上的查詢程式,會發現畫面一直在處理中

在SSMS 執行rollback還原後,網站畫面就可以顯示查詢結果了

在context建立時加入上述設定,就可避掉資料批次異動處理時造成的LOCK而無讀取。


2015年7月26日 星期日

移機掛載MDF

重裝OS WIN8,想將原來的SQL2014 資料庫利用附加方式掛載,掛載時出現以下訊息:

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

CREATE FILE encountered operating system error 5(存取被拒。) while attempting to open or create the physical file 'E:\WorkDB\SQL2014\Data\XXXXX.mdf'. (Microsoft SQL Server, Error: 5123)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=12.00.4100&EvtSrc=MSSQLServer&EvtID=5123&LinkId=20476



------------------------------

爬文查看後,開啟SSMS時得要用Administrator權限。
解法是直接關掉UAC,除了 控制台\使用者帳戶和家庭安全\使用者帳戶 變更使用者帳戶控制設定調到不通知外,還得改一下機碼才可在WIN8真正關掉UAC

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\EbableLUA 設為0 

太久沒重裝了,都忘了要先關UAC,關了他避免掉許多麻煩,但自已得要有SENSE不要開了不該開的東西啊。 

ps.一直搞不懂,登入帳號就是administrators群組了,為何開啟應用程式時,老要問我是否要以系統管理者執行呢? 

2015年4月26日 星期日

rdlc 匯出excel,不合法的 xml 字元

rdlc或rdl,在匯出excel(xlsx)後,開啟execl檔,出現『我們發現XXX.xlsx的部份內容有問題。您要我們盡可能嘗試復原嗎?如果您信任此活頁簿,請按一下【是】』。

接著點選【是】 後,就出現以下錯誤:

已取代的部分: /xl/worksheets/sheet1.xml 部分具有 XML 錯誤。  不合法的 xml 字元。 行 17,欄 441033。

測試後,原來有一個欄位的內容造成匯出的錯誤。但不解的是WHY??

這個欄位的內容如下,看起來似乎很正常,但把他COPY起來貼到記事本後,會發現設備前多了一個看似空白的空格。

脈衝電場(PEF)殺菌 設備

解出來是0x0B,在XML上這是個不合法的字元。

所以先把這個看似空白的字元刪除,匯出後開啟EXCEL就OK了。

IIS 網站無法下載中文檔名檔案因為取消高位元字元

 網址+中文檔案名稱方式下載檔案顯示 404 - 找不到檔案或目錄。 但英數字檔案名稱則可下載。 因為設定GCB IIS,其中1項 將高位元字元預設取消勾選了。 27 TWGCB-04-014-0028 要求篩選與其他限制模組 允許高位元字元 這項原則設定決定查詢...