問題:
若是2008以下的Reportviewer在Win7環境以上匯出時會變亂碼,在XP則正常。
原因:
因為字型編碼改掉的關係。
解決:
RDLC 匯出PDF中文問題 [這個]
How do I use ReportViewer 2010 in Visual Studio 2008 project?
ReportViewer Exoprt to PDF 出現亂碼 in WIN7
廠商的reporting servicen所作出的檔案無法險示或亂碼
2014年9月17日 星期三
2014年7月10日 星期四
[學習] 從自訂義類別中查詢 linq & lambda
說明:
主細表 Master-Detail
中幫USER自動瀘掉, Detail DGV某欄位(combobox)已存在的選項(ex: A 與 B)
當DGV AddNewRow時, 自動選出不包含A 與 B 的第一個選項(ex: C)
解決:
不知怎麼直接截取DGV當時對應於Master畫面的選項值
ex:
MasterA -> Detail A,B
MasterB -> Detail C
所以只好重新從D etail DataTable select 出來
籂選出DataRow
Dim b() As DataRow = CType(bs_tblB備案手冊號基本資料表進口項次.DataSource, DataSet).Tables(tblProductName).Select("手冊編號='" & txt_手冊編號.Text & "' AND 進口項次號=" & txt_進口項次號.Text)
將DataRow取其中一個欄位,並轉成陣列
Dim c = b.Select(Function(o) o("產品大類")).ToArray
飾選出來共有這麼多
MsgBox(CType(CType(dgv_項次產品.Columns("產品大類"), DataGridViewComboBoxColumn).DataSource, List(Of Mdl.tblBProductsType)).Where(Function(o) Not c.Contains(o.ProductsTypeID)).Count)
找出第一筆要的欄位資料
MsgBox(CType(CType(dgv_項次產品.Columns("產品大類"), DataGridViewComboBoxColumn).DataSource, List(Of Mdl.tblBProductsType)).Where(Function(o) Not c.Contains(o.ProductsTypeID))(0).ProductsTypeID)
參考:
逐步解說:使用兩個 Windows Form DataGridView 控制項建立主要/詳細表單
[學習] Master-Detail 父子表(主細表)
LINQ運算式基本構成子句
Lambda 運算式 (Visual Basic)
Visual Basic 中的 LINQ 簡介
[VB.NET]Lambda運算式
Lambda Expression for “not in”?
How to implement NOT IN clause in LINQ/LAMBDA Query expression?Explain with an example.
[C#][LINQ]動態組Where條件
How to select a field with linq on datarow
[LINQ] 查詢DataRow欄位(LINQ to DataSet)
VB.Net Linq - How to append a where clause?
How would you do a “not in” query with Linq?
Linq to Datarow, Select multiple columns as distinct?
Use LINQ to get items in one List<>, that are not in another List<>
LINQ - 在WHERE條件式中使用IN與NOT IN
LINQ to SQL 可以做到的功能
LINQ to Object - VB.NET
how to filter list in c# with lambda expression?
Filtering collections in C#
DataRow.GetChildRows 方法 (DataRelation)
比較 DataRow (LINQ to DataSet)
主細表 Master-Detail
中幫USER自動瀘掉, Detail DGV某欄位(combobox)已存在的選項(ex: A 與 B)
當DGV AddNewRow時, 自動選出不包含A 與 B 的第一個選項(ex: C)
解決:
不知怎麼直接截取DGV當時對應於Master畫面的選項值
ex:
MasterA -> Detail A,B
MasterB -> Detail C
所以只好重新從D etail DataTable select 出來
籂選出DataRow
Dim b() As DataRow = CType(bs_tblB備案手冊號基本資料表進口項次.DataSource, DataSet).Tables(tblProductName).Select("手冊編號='" & txt_手冊編號.Text & "' AND 進口項次號=" & txt_進口項次號.Text)
將DataRow取其中一個欄位,並轉成陣列
Dim c = b.Select(Function(o) o("產品大類")).ToArray
飾選出來共有這麼多
MsgBox(CType(CType(dgv_項次產品.Columns("產品大類"), DataGridViewComboBoxColumn).DataSource, List(Of Mdl.tblBProductsType)).Where(Function(o) Not c.Contains(o.ProductsTypeID)).Count)
MsgBox(CType(CType(dgv_項次產品.Columns("產品大類"), DataGridViewComboBoxColumn).DataSource, List(Of Mdl.tblBProductsType)).Where(Function(o) Not c.Contains(o.ProductsTypeID))(0).ProductsTypeID)
參考:
逐步解說:使用兩個 Windows Form DataGridView 控制項建立主要/詳細表單
[學習] Master-Detail 父子表(主細表)
LINQ運算式基本構成子句
Lambda 運算式 (Visual Basic)
Visual Basic 中的 LINQ 簡介
[VB.NET]Lambda運算式
Lambda Expression for “not in”?
How to implement NOT IN clause in LINQ/LAMBDA Query expression?Explain with an example.
[C#][LINQ]動態組Where條件
How to select a field with linq on datarow
[LINQ] 查詢DataRow欄位(LINQ to DataSet)
VB.Net Linq - How to append a where clause?
How would you do a “not in” query with Linq?
Linq to Datarow, Select multiple columns as distinct?
Use LINQ to get items in one List<>, that are not in another List<>
LINQ - 在WHERE條件式中使用IN與NOT IN
LINQ to SQL 可以做到的功能
LINQ to Object - VB.NET
how to filter list in c# with lambda expression?
Filtering collections in C#
DataRow.GetChildRows 方法 (DataRelation)
比較 DataRow (LINQ to DataSet)
2014年5月14日 星期三
[學習] DataGridView 設置 Column 顯示的格式為百分比
目的:
將Column的格式設置為百分比!
法一:
DataGridView1.DataSource = dt
DataGridView1.Columns("新增次數").Visible = False
DataGridView1.Columns("供應商成交率").DefaultCellStyle.Format = "p"
DataGridView1.Columns("集團成交率").DefaultCellStyle.Format = "p"
法二:
Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If Me.DataGridView1.Columns(e.ColumnIndex).Name = "供應商成交率" OrElse Me.DataGridView1.Columns(e.ColumnIndex).Name = "集團成交率" Then
If e.Value IsNot Nothing Then
e.Value = e.Value * 100 & "%"
End If
End If
End Sub
結果:
(1)原始資料
(2)顯示資料
參考:
DataGridView中显示百分比
DataGridView.CellFormatting 事件
格式化 Windows Form DataGridView 控制項中的資料
[C#] 字串輸出格式
string.Format 格式參數
23654.3654 Result
N0 取整數 23654
N1 取一位數 23654.3
N2 取二位數 23654.36(若有進位就 23654.37)
以此類推
DataGridView 控制項 (Windows Form)
[ASP.NET] Gridview 欄位輸出格式 DataFormatString
http://msdn.microsoft.com/zh-tw/library/vstudio/f9x2790s(v=vs.100).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
將Column的格式設置為百分比!
法一:
DataGridView1.DataSource = dt
DataGridView1.Columns("新增次數").Visible = False
DataGridView1.Columns("供應商成交率").DefaultCellStyle.Format = "p"
DataGridView1.Columns("集團成交率").DefaultCellStyle.Format = "p"
法二:
Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If Me.DataGridView1.Columns(e.ColumnIndex).Name = "供應商成交率" OrElse Me.DataGridView1.Columns(e.ColumnIndex).Name = "集團成交率" Then
If e.Value IsNot Nothing Then
e.Value = e.Value * 100 & "%"
End If
End If
End Sub
結果:
(1)原始資料
(2)顯示資料
參考:
DataGridView中显示百分比
DataGridView.CellFormatting 事件
格式化 Windows Form DataGridView 控制項中的資料
[C#] 字串輸出格式
string.Format 格式參數
23654.3654 Result
N0 取整數 23654
N1 取一位數 23654.3
N2 取二位數 23654.36(若有進位就 23654.37)
以此類推
DataGridView 控制項 (Windows Form)
[ASP.NET] Gridview 欄位輸出格式 DataFormatString
http://msdn.microsoft.com/zh-tw/library/vstudio/f9x2790s(v=vs.100).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
2014年5月5日 星期一
[閱讀] DVD43破解CSS加密保護的DVD光碟 + DAEMON Tools Lite錄製映像檔 + Astroburn燒錄 = 破解CSS方程式
2014年4月16日 星期三
[除錯] 控制項Dock Left(Up/Down/Right)在Panel時的dock順序
問題:
在設計模式,dock的順序會亂跳(我也不知程式是依什麼來做插入的順序??)
解決:
Dock Left
Form1.Designer.vb
需修改Panel1.Controls.Add順序
Code:
Me.Panel1.Controls.Add(Me.Button5)
Me.Panel1.Controls.Add(Me.Button4)
Me.Panel1.Controls.Add(Me.Button3)
Me.Panel1.Controls.Add(Me.Button2)
Me.Panel1.Controls.Add(Me.Button1)
參考:
在設計模式,dock的順序會亂跳(我也不知程式是依什麼來做插入的順序??)
解決:
Dock Left
Form1.Designer.vb
需修改Panel1.Controls.Add順序
Code:
Me.Panel1.Controls.Add(Me.Button5)
Me.Panel1.Controls.Add(Me.Button4)
Me.Panel1.Controls.Add(Me.Button3)
Me.Panel1.Controls.Add(Me.Button2)
Me.Panel1.Controls.Add(Me.Button1)
參考:
2014年3月23日 星期日
[除錯] System.InvalidCastException: System.Data.DataViewManagerListItemTypeDescriptor
原始碼:
Function_A 初始化ComboBox內容選擇值
DataTable dt=new DataTable("ExchangeRateType");
dt.Columns.Add("en", typeof(Int16));
dt.Columns.Add("zh", typeof(string));
dt.Rows.Add("0", "×(乘)");
dt.Rows.Add("1", "÷(除)");
cbo_ExchangeRateType.DisplayMember = "zh";
cbo_ExchangeRateType.ValueMember = "en";
cbo_ExchangeRateType.DataSource = dt;
cbo_ExchangeRateUSDType.DisplayMember = "zh";
cbo_ExchangeRateUSDType.ValueMember = "en";
cbo_ExchangeRateUSDType.DataSource = dt.DefaultView ;
Function_B 從資料庫撈資料
dt = GetDataSet(OriginFindQry).Tables[0].Copy();
dt.TableName = _TblName;
if (ds.Tables.Contains(_TblName))
{
ds.Tables[_TblName].Dispose();
ds.Tables.Remove(_TblName);
}
ds.Tables.Add(dt);
Function_C 為每個控制項DataBinding
foreach (Control item in this.tableLayoutPanel1.Controls)
{
item.DataBindings.Clear();
}
txt_CustomerOrderNo.DataBindings.Clear();
txt_ExchangeRate.DataBindings.Clear();
txt_ExchangeRateUSD.DataBindings.Clear();
cbo_ExchangeRateType.DataBindings.Clear();
cbo_ExchangeRateUSDType.DataBindings.Clear();
bs_tblT訂單統計資料表.DataMember = null;
bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
bs_tblT訂單統計資料表.DataMember = _TblName;
bs_tblT訂單統計資料表.DataSource = ds;
this.bindingNavigator1.BindingSource = bs_tblT訂單統計資料表;
dataGridView1.DataSource = bs_tblT訂單統計資料表;
cbo_ExchangeRateType.DataBindings.Add("SelectedValue", bs_tblT訂單統計資料表, "ExchangeRateType");
cbo_ExchangeRateUSDType.DataBindings.Add("SelectedValue", bs_tblT訂單統計資料表, "ExchangeRateUSDType");
問題: 紫色底為錯誤發生點
(1)錯誤訊息:
bs_tblT訂單統計資料表.DataMember = null;
bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
========
(2)錯誤訊息:
//bs_tblT訂單統計資料表.DataMember = null;
bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
========
(3)錯誤訊息: 無法清除這個清單
//bs_tblT訂單統計資料表.DataMember = null;
//bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
原因:
解決:
cbo_ExchangeRateType.DataBindings.Clear();
參考:
[除錯] 無法繫結至 DataSource 上的屬性或欄位 或 無法清除這個清單
疑難排解例外狀況:System.InvalidCastException
InvalidCastException 類別
关于模板控件如何实现多数据源绑定的问题
Function_A 初始化ComboBox內容選擇值
DataTable dt=new DataTable("ExchangeRateType");
dt.Columns.Add("en", typeof(Int16));
dt.Columns.Add("zh", typeof(string));
dt.Rows.Add("0", "×(乘)");
dt.Rows.Add("1", "÷(除)");
cbo_ExchangeRateType.DisplayMember = "zh";
cbo_ExchangeRateType.ValueMember = "en";
cbo_ExchangeRateType.DataSource = dt;
cbo_ExchangeRateUSDType.DisplayMember = "zh";
cbo_ExchangeRateUSDType.ValueMember = "en";
cbo_ExchangeRateUSDType.DataSource = dt.DefaultView ;
Function_B 從資料庫撈資料
dt = GetDataSet(OriginFindQry).Tables[0].Copy();
dt.TableName = _TblName;
if (ds.Tables.Contains(_TblName))
{
ds.Tables[_TblName].Dispose();
ds.Tables.Remove(_TblName);
}
ds.Tables.Add(dt);
Function_C 為每個控制項DataBinding
foreach (Control item in this.tableLayoutPanel1.Controls)
{
item.DataBindings.Clear();
}
txt_CustomerOrderNo.DataBindings.Clear();
txt_ExchangeRate.DataBindings.Clear();
txt_ExchangeRateUSD.DataBindings.Clear();
cbo_ExchangeRateType.DataBindings.Clear();
cbo_ExchangeRateUSDType.DataBindings.Clear();
bs_tblT訂單統計資料表.DataMember = null;
bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
bs_tblT訂單統計資料表.DataMember = _TblName;
bs_tblT訂單統計資料表.DataSource = ds;
this.bindingNavigator1.BindingSource = bs_tblT訂單統計資料表;
dataGridView1.DataSource = bs_tblT訂單統計資料表;
cbo_ExchangeRateType.DataBindings.Add("SelectedValue", bs_tblT訂單統計資料表, "ExchangeRateType");
cbo_ExchangeRateUSDType.DataBindings.Add("SelectedValue", bs_tblT訂單統計資料表, "ExchangeRateUSDType");
問題: 紫色底為錯誤發生點
(1)錯誤訊息:
bs_tblT訂單統計資料表.DataMember = null;
bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
========
(2)錯誤訊息:
//bs_tblT訂單統計資料表.DataMember = null;
bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
========
(3)錯誤訊息: 無法清除這個清單
//bs_tblT訂單統計資料表.DataMember = null;
//bs_tblT訂單統計資料表.DataSource = null;
bs_tblT訂單統計資料表.Clear();
原因:
解決:
cbo_ExchangeRateType.DataBindings.Clear();
參考:
[除錯] 無法繫結至 DataSource 上的屬性或欄位 或 無法清除這個清單
疑難排解例外狀況:System.InvalidCastException
InvalidCastException 類別
关于模板控件如何实现多数据源绑定的问题
2014年2月10日 星期一
[閱讀] 32bit系統VirtualBox安裝64bit系統(Win7)
1.首先CPU必須支援虛擬化技術
2.進入實體Bios進入CPU選項開啟虛擬化技術
3.VBox選擇安裝Win7X64bit即可
參考:
virtual box不能裝win7 64bit
殘念 下次買電腦CPU要支援Virtualization
VirtualBox安裝Windows7
How to Install Retail Mac Os X 10.8.2 Mountain Lion on Asus P8B75-M LX + update to 10.8.4
2.進入實體Bios進入CPU選項開啟虛擬化技術
3.VBox選擇安裝Win7X64bit即可
參考:
virtual box不能裝win7 64bit
殘念 下次買電腦CPU要支援Virtualization
VirtualBox安裝Windows7
How to Install Retail Mac Os X 10.8.2 Mountain Lion on Asus P8B75-M LX + update to 10.8.4
訂閱:
文章 (Atom)