之前的專案 有些DataTable欄位寫入excel cell需要明確轉型,比如數字要轉Decimal ,但如果遇到DBNULL可能就要做一堆判斷或是寫擴充方法處理。
DevExpress有一個方法叫SetValue 例如
worksheet.Rows["5"][i + 1].SetValue(array[i]);
這個就會自動轉成應有的型別,可以省很多工~
之前有將兩個資料比對的需求,雖然只要搜索這個關鍵字就能找到很多答案,但很多都是錯的! 感謝這個作者提供正確的程式碼,在現在網路資訊量越來越龐大的情況下,還是自己記錄一下這個寫法比較保險。
public bool DataTableTheSame(DataTable Table1, DataTable Table2)
{
if (Table1 == null || Table2 == null)
{
return false;
}
if (Table1.Rows.Count != Table2.Rows.Count)
{
return false;
}
if (Table1.Columns. Count != Table2.Columns.Count)
{
return false;
}
for (int i = 0; i < Table1.Rows.Count; i++)
{
for (int j = 0; j < Table1.Columns.Count; j++)
{
if (Table1.Rows[i][ j].ToString() != Table2.Rows[i][j].ToString())
{
return false;
}
}
}
return true;
}
如果靠左就是選擇Near第一次看到這整個傻眼XDD
這個需求是在一個群組內,一個欄位不顯示重複的名稱,通常是處理類似分類品項,如下表動物清單
每個品種會對一個動物(類別)名稱
動物 | 品種 |
---|---|
貓 | 波斯貓 |
貓 | 孟加拉貓 |
貓 | 伯曼貓 |
貓 | 布偶貓 |
狗 | 巴哥犬 |
狗 | 吉娃娃 |
狗 | 馬爾濟斯 |
狗 | 博美犬 |
以下把[動物]欄位的重複名稱去除,讓整個Report重複的資料只顯示一次。
DetailCel.ProcessDuplicatesMode=ProcessDuplicatesMode.SuppressAndShrink;
DetailCel.ProcessDuplicatesTarget = ProcessDuplicatesTarget.Value;
如果用detailCell.ProcessDuplicatesMode = ProcessDuplicatesMode.Merge; 會變成在每一頁都顯示一次
設定後的結果
動物 | 品種 |
---|---|
貓 | 波斯貓 |
孟加拉貓 | |
伯曼貓 | |
布偶貓 | |
狗 | 巴哥犬 |
吉娃娃 | |
馬爾濟斯 | |
博美犬 |
參考網址資料: https://documentation.devexpress.com/XtraReports/DevExpress.XtraReports.UI.ProcessDuplicatesTarget.enum https://www.devexpress.com/Support/Center/Question/Details/T117746/how-to-use-rowspan-property-to-create-table
之前工作查詢NLog相關資料
Copyright © John Coding 技術筆記 | Powered by Blogger
Design by Anders Noren | Blogger Theme by NewBloggerThemes.com