tag:blogger.com,1999:blog-55518321118264957192024-03-13T16:43:18.906+07:00noteAcodeโค้ดเคยเขียน written code in vb.net, c#, sql, winforms, control, componentthammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-5551832111826495719.post-8558650992994971282011-04-24T11:28:00.000+07:002011-04-24T11:28:31.504+07:00VDO สอนใช้ Grid ในชุด StoneUI แบบเริ่มต้น<a href="http://www.facebook.com/video/video.php?v=1505762823115">http://www.facebook.com/video/video.php?v=1505762823115</a>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-37150801040590532902011-04-18T06:36:00.002+07:002011-04-18T06:46:27.310+07:00Free Button Control 6 Styles 5 ThemesAsButton เป็นคอนโทรลประเภทปุ่มกดที่อยู่ในชุด StoneUI สามารถใช้ได้ฟรี <br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3nOZo4gIzr-MeUj4sfHKgO-teOfyKEwsu-QztnPaIzDwrKAugtmObkYF0IpzS8C4Ih6XSoX8dTrKCNE9fzba6Vpkv8EDB_olqtLsGkTCN_Lk0FnPTFaQJCy3_UkdSXCr2zNf6jIYwHag/s1600/AsButton.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3nOZo4gIzr-MeUj4sfHKgO-teOfyKEwsu-QztnPaIzDwrKAugtmObkYF0IpzS8C4Ih6XSoX8dTrKCNE9fzba6Vpkv8EDB_olqtLsGkTCN_Lk0FnPTFaQJCy3_UkdSXCr2zNf6jIYwHag/s640/AsButton.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"></td></tr>
</tbody></table><div class="separator" style="clear: both; text-align: left;"></div><div class="separator" style="clear: both; text-align: left;">กำหนดลักษณะการทำงานได้ 6 แบบคือ</div><ol><li>Push Button เป็นปุ่มกดปกติ</li>
<li>Color Picker เป็นปุ่มกดแล้วเลือกสีได้</li>
<li><div class="separator" style="clear: both; text-align: left;">Toggle Button เป็นปุ่มกดแล้วสลับไปมาระหว่างสถานะ กด/ปกติ (เหมือน checkbox)</div></li>
<li><div class="separator" style="clear: both; text-align: left;">Toggle Button for iPhone style เป็นปุ่มกดหรือสไลด์ไปมาระหว่างสถานะ On/Off </div></li>
<li><div class="separator" style="clear: both; text-align: left;">Dropdown Button เป็นปุ่มกดแล้วมีเมนูให้เลือก</div></li>
<li><div class="separator" style="clear: both; text-align: left;">Split Button เป็นปุ่มกดปกติและมีเมนูให้เลือกด้วย</div></li>
</ol><div class="separator" style="clear: both; text-align: left;">มีรูปแบบให้เลือกได้ 5 แบบ</div><ol><li><div class="separator" style="clear: both; text-align: left;">System3D (supported visual style) </div></li>
<li><div class="separator" style="clear: both; text-align: left;">OfficeXP</div></li>
<li><div class="separator" style="clear: both; text-align: left;">Office2003</div></li>
<li><div class="separator" style="clear: both; text-align: left;">AeroGlass</div></li>
<li><div class="separator" style="clear: both; text-align: left;">Office2007</div></li>
</ol><div class="separator" style="clear: both; text-align: left;">Download: <a href="https://sites.google.com/site/noteacode/files/StoneUI_Pro_Net2_WinForms.zip?attredirects=0&d=1">https://sites.google.com/site/noteacode/files/StoneUI_Pro_Net2_WinForms.zip?attredirects=0&d=1</a> </div><div class="separator" style="clear: both; text-align: center;"><br />
</div>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-46272806819713975472011-04-09T17:12:00.001+07:002011-04-09T17:13:25.286+07:00ต้องการ Tester สำหรับ StoneUI Grid and DataEditors for .Net WinForms<span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;">StoneUI Grid and DataEditors for .Net WinForms เป็น Components สำหรับ Visual Studio 2005(.Net2) ขึ้นไป </span><br />
<span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;"><br />
</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;">ต้องการอาสาสมัคร(100 ท่าน) ทดสอบ Components ชุดนี้ ซึ่งคุณจะได้รับ license ฟรี 1 ชุด โดยมีเงื่อนไข 3 ข้อครับ</span><span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;"><br />
</span><span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;">1. comment หรือแจ้ง bug ที่ท่านพบ</span><span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;"><br />
</span><span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;">2. capture หน้าจอ project ของท่านที่ใช้กับ components ชุดนี้(ขอ 3 รูปขึ้นไป) + คำอธิบายย่อ ๆ เกี่ยวกับ project</span><span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;"><br />
</span><span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;">3. ชื่อ-นามสกุล และชื่อที่ทำงาน(ถ้ามี)</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;"><br />
</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; color: #333333; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 11px; line-height: 15px;">Download ได้ที่ <a href="https://sites.google.com/site/noteacode/files/">https://sites.google.com/site/noteacode/files/</a></span>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-59073177041332306502011-04-01T08:01:00.000+07:002011-04-01T08:01:00.565+07:00อะไรคือ WPF แล้ว Silverlight ล่ะWPF(Windows Presentation Foundation) เป็นเทคโนโลยีใหม่ของ ms ที่สร้างขึ้นมาเพื่อเป็นอนาคตของ Applcation บน Windows(และ run บน windows เท่านั้น) ที่สามารถสร้างสรรค์ Application ในแบบ rich ui, supported render 3d แม้กระทั่งใช้ความสามารถของ directX และความสามารถใหม่ ๆ หลายอย่างที่เพิ่มขึ้นจากเทคโนโลยี WinForms แต่ด้วยว่า WPF เป็นเทคโนโลยีที่สร้างขึ้นใหม่ มันจึงยังต้องการการพัฒนา ให้มีความสามารถเหนือกว่า WinForms ในทุก ๆ ด้าน เช่น แม้ WPF จะ render 3d โดยใช้ direcxtX ได้ คือใช้ความสามารถของการ์ดจอได้โดยตรง แต่ทำไมรู้สึกว่ามันทำงานได้ช้ากว่า WinForms ก็ไม่รู้เหมือนกัน<br />
<br />
ส่วน Silverlight นั้นเป็น subset ของ WPF อีกที ที่ต้องการให้มันสามารถรันข้ามแพลตฟอร์มได้ในทุก ๆ browser จบ.thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-5336819754638289352010-12-27T09:50:00.000+07:002010-12-27T09:50:51.530+07:00คำศัพท์คอมพิวเตอร์ แปลไทยระเบียน <span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, 'san serif'; font-size: 14px; line-height: 21px;">(Record, Row) = โครงสร้างข้อมูลที่แทนตัววัตถุชิ้นหนึ่ง</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, 'san serif'; font-size: 14px; line-height: 21px;">สดมภ์ (Column) = ช่องในแนวตั้ง</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, 'san serif'; font-size: 14px; line-height: 21px;">เส้นพิกัด (Grid) = เส้นบอกตำแหน่ง</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, 'san serif'; font-size: 14px; line-height: 21px;">เข้าใช้ระบบ (Log in) = การตรวจสอบตัวตนก่อนเข้าใช้งาน</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, 'san serif'; font-size: 14px; line-height: 21px;">ส่วนติดต่อผู้ใช้ (User Interface) = เช่นปุ่มกด คอมโบ เรดิโอบ๊อกซ์</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, 'san serif'; font-size: 14px; line-height: 21px;">รูปลักษณ์ (Appearance) = ลักษณะ รูปทรงที่มองเห็นได้</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, 'san serif'; font-size: 14px; line-height: 21px;">บริบท (Behavior) = พฤติกรรม ท่าทาง อาการ</span><br />
<span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, 'san serif'; font-size: 14px; line-height: 21px;"><br />
</span>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-52381645192847127522010-11-12T14:17:00.003+07:002010-11-12T14:24:23.450+07:00ลบอักขระเว้นวรรคหลาย ๆ ตัวที่อยู่ติดกันให้เหลือเว้นวรรคเดียว/Trim all white space in string to singleอักษรเว้นวรรค(space bar/white space) ที่อยู่ติดกันหลาย ๆ ตัวที่บางที user คีย์เข้ามาใส่ในโปรแกรมหรือฐานข้อมูล พอจะเอามาแสดงผลมันจะกลายเป็นช่องว่างไม่สวยงาม ซึ่งหลาย ๆ คนคงคิดถึงเจ้าฟังก์ชั่นที่ชื่อ Trim แต่ฟังก์ชั่นนี้สามารถตัดอักขระที่อยู่ด้านหน้าและด้านหลังของข้อความเท่านั้น ส่วนอักขระเว้นวรรคที่อยู่ตรงกลางข้อความจะไม่มีผลอะไร ซึ่งหากเราหันไปใช้ฟังก์ชั่่น Remove หรือ Replace ก็อาจจะไม่สะดวกเพราะไม่ทราบจำนวนอักขระเว้นวรรคที่แน่นอนได้<br />
<br />
แต่ยังมี class ที่น่าสนใจอีกตัวหนึ่งคือ RegEx ที่มีฟังก์ชั่น Replace ที่แก้ปัญหานี้ได้ มีรูปแบบการใช้งานคือ<br />
<br />
c#<br />
<!--StartFragment--> <style type="text/css">
.cf { font-family: Courier New; font-size: 10pt; color: black; background: #f4f5e2; }
.cl { margin: 0px; }
.cb1 { color: blue; }
.cb2 { color: #2b91af; }
.cb3 { color: red; }
.cb4 { color: #a31515; }
</style> <br />
<div class="cf"> <div class="cl"><span class="Apple-style-span" style="color: blue;"><!--StartFragment--> <style type="text/css">
.cf { font-family: Courier New; font-size: 10pt; color: black; background: #f4f5e2; }
.cl { margin: 0px; }
.cb1 { color: blue; }
.cb2 { color: #2b91af; }
.cb3 { color: red; }
.cb4 { color: #a31515; }
</style> </span></div><div class="cf"><span class="Apple-style-span" style="color: blue;"> <div class="cl"><span class="cb1"> public</span> <span class="cb1">static</span> <span class="cb1">string</span> TrimSpace(<span class="cb1">string</span> text)</div><div class="cl"> {</div><div class="cl"> <span class="cb1">return</span> <span class="cb2">Regex</span><span class="cb3">.</span>Replace(text, <span class="cb4">@"\s+"</span>, <span class="cb4">" "</span>);</div><div class="cl"> }</div></span></div><span class="Apple-style-span" style="color: blue;"> <!--EndFragment--></span><br />
</div><!--EndFragment--><br />
<br />
<br />
vb<br />
<!--StartFragment--> <style type="text/css">
.cf { font-family: Courier New; font-size: 10pt; color: black; background: #f4f5e2; }
.cl { margin: 0px; }
.cb1 { color: blue; }
.cb2 { color: #a31515; }
</style> <br />
<div class="cf"> <div class="cl"> <span class="cb1">Public</span> <span class="cb1">Shared</span> <span class="cb1">Function</span> TrimSpace(<span class="cb1">ByVal</span> text <span class="cb1">As</span> <span class="cb1">String</span>) <span class="cb1">As</span> <span class="cb1">String</span></div><div class="cl"> <span class="cb1">Return</span> Regex.Replace(text, <span class="cb2">"\s+"</span>, <span class="cb2">" "</span>)</div><div class="cl"> <span class="cb1">End</span> <span class="cb1">Function</span></div></div><!--EndFragment--><br />
<br />
<br />
<br />
เพียงเท่านี้ชีวิตเราก็จะง่ายขึ้นไปอีกนิดนึงแล้วthammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-9867768528003455512010-08-06T14:02:00.002+07:002010-08-11T17:26:12.430+07:00ToolStripLabelItemแถบเมนูที่เป็นรูปแบบ Office2007 เป็นเมนูแบบที่คลิ้กไม่ได้ ใช้แสดงหัวข้อ หรือกลุ่มของรายการเมนูย่อย<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0uhpavYj3O_0RaI-2eD42Dt4hyRk-wlZrtI1dRKnHddlyxRRw_9y4WLdE6asnh-wR1INTqFRudyskr2McE4QiQ-lpR9RVMMssl5fWMQ8GOrn6Uku0n4vNLB0FWuCCcZrrfF97sJXlnpo/s1600/ToolStripLabelItem.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" bx="true" height="385" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0uhpavYj3O_0RaI-2eD42Dt4hyRk-wlZrtI1dRKnHddlyxRRw_9y4WLdE6asnh-wR1INTqFRudyskr2McE4QiQ-lpR9RVMMssl5fWMQ8GOrn6Uku0n4vNLB0FWuCCcZrrfF97sJXlnpo/s400/ToolStripLabelItem.png" width="400" /></a></div><br />
ให้ dowload source code ด้านล่างนี้ไป compile เข้ากับ project ของคุณ หลังจากนั้นเวลาที่สร้างเมนูใหม่ จะมีตัวเลือก "LabelItem" มาให้เลือก (ตามรูปตัวอย่าง)<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Download source code: <strong><a href="https://sites.google.com/site/noteacode/files/ToolStripLabelItem.cs?attredirects=0&d=1">ToolStripLabelItem.cs</a></strong>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-10538960395416122072010-08-06T12:46:00.000+07:002010-08-06T12:46:23.485+07:00Database.NET (A MultiDatabase Manager)<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDClH-_zuv1-5trWHonKJSTQhdD6I66t5h6M4PznEPwm6JxY5eiqnmX3rLPmrvpWEgkFeCWWaxLkbNmDHZzijRSnNAW9E8BUKsBvZLgs6ofRUTzyuavO4eqRdd8F9DS2ir5gPjOa_FtDQ/s1600/Database.Net.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" bx="true" height="313" hspace="10" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDClH-_zuv1-5trWHonKJSTQhdD6I66t5h6M4PznEPwm6JxY5eiqnmX3rLPmrvpWEgkFeCWWaxLkbNmDHZzijRSnNAW9E8BUKsBvZLgs6ofRUTzyuavO4eqRdd8F9DS2ir5gPjOa_FtDQ/s400/Database.Net.png" width="400" /></a></div>โปรแกรมนี้สามารถเชื่อมต่อเข้ากับฐานข้อมูลได้หลากหลายชนิด อาทิ <br />
<ul><li>MS-Access</li>
<li>MS-Excel</li>
<li>dBase</li>
<li>FireBird</li>
<li>MySQL</li>
<li>SQL Server</li>
<li>SQL Azure</li>
<li>SQL Server CE</li>
<li>SQLite</li>
<li>PostgreSQL</li>
<li>Oracle</li>
<li>OLE DB</li>
<li>ODBC</li>
</ul><br />
รองรับ Syntax Highlight และคำสั่งต่าง ๆ ที่จำเป็นของฐานข้อมูลนั้น ๆ<br />
พัฒนาด้วย .NET(2, 3.5)<br />
สามารถ download ไปใช้ได้ฟรี <br />
ไฟล์โปรแกรมมีไฟล์เดียว ขนาดประมาณ 7 MB. (ไม่จำเป็นต้องติดตั้ง copy, paste ใช้ได้เลย)<br />
ไปที่เว็บไซต์ของผู้พัฒนาโปรแกรม <a href="http://fishcodelib.com/Database.htm">http://fishcodelib.com/Database.htm</a>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-4825444858773433162010-08-06T12:01:00.001+07:002010-08-11T17:29:18.881+07:00PopupTipTimerเป็น Control ที่ดูคล้าย ToolTip สามารถกำหนดเวลาได้ว่าจะแสดงนานแค่ไหน (เป็น 1/1000 วินาที) <br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpkhTOxJDOOQ4_-6pD6KOGf4e4Ltja2lIg0NAYyPR5WUypmJ5qZ94lKTFoAO3jrV8hMysFhQWQsKBoYNpZBKzOlCe5aD0GJug8mG5umGrU2oJCx3WnbKA4-Nj9vpD6quYEaacyW0rexpU/s1600/PopupTipTimer1-2.png" imageanchor="1" style="clear: left; cssfloat: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" bx="true" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpkhTOxJDOOQ4_-6pD6KOGf4e4Ltja2lIg0NAYyPR5WUypmJ5qZ94lKTFoAO3jrV8hMysFhQWQsKBoYNpZBKzOlCe5aD0GJug8mG5umGrU2oJCx3WnbKA4-Nj9vpD6quYEaacyW0rexpU/s320/PopupTipTimer1-2.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">ภาพก่อนแสดง PopupTipTimer</td></tr>
</tbody></table><br />
<div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4I08o6x4Vyf_Z5CJyXqYoldGngPNYJfUY6bwXuIY7fl8-vCWL-axHDEekwaWPnvO1AFunmH7baMmh44SHd1YD2_jGxrtMIVNdcBUzhoi5g-5NBTiCrKyi618uzQ2ftaSD-BgBhdhIZSo/s1600/PopupTipTimer2-2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" bx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4I08o6x4Vyf_Z5CJyXqYoldGngPNYJfUY6bwXuIY7fl8-vCWL-axHDEekwaWPnvO1AFunmH7baMmh44SHd1YD2_jGxrtMIVNdcBUzhoi5g-5NBTiCrKyi618uzQ2ftaSD-BgBhdhIZSo/s320/PopupTipTimer2-2.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">ภาพขณะแสดง PopupTipTimer</td></tr>
</tbody></table><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<strong>ตัวอย่างการใช้งาน</strong><br />
<br />
<style type="text/css">
.cf { font-family: Courier New; font-size: 10pt; color: black; background: #f5fff4; }.cl { margin: 0px; }.cb1 { color: blue; }.cb2 { color: red; }.cb3 { color: #2b91af; }.cb4 { color: #a31515; }
</style><br />
<div class="cf"><div class="cl"><span class="cb1">using</span> System;</div><div class="cl"><span class="cb1">using</span> System<span class="cb2">.</span>Drawing;</div><div class="cl"><span class="cb1">using</span> System<span class="cb2">.</span>Windows<span class="cb2">.</span>Forms;</div><div class="cl"><span class="cb1">using</span> Stone<span class="cb2">.</span>WinUI;</div><div class="cl"><br />
</div><div class="cl"><span class="cb1">namespace</span> TestPro</div><div class="cl">{</div><div class="cl"> <span class="cb1">public</span> <span class="cb1">partial</span> <span class="cb1">class</span> <span class="cb3">Form2</span> : <span class="cb3">Form</span></div><div class="cl"> {</div><div class="cl"> <span class="cb1">public</span> Form2()</div><div class="cl"> {</div><div class="cl"> InitializeComponent();</div><div class="cl"> <span class="cb1">this</span><span class="cb2">.</span>popupTip <span class="cb2">=</span> <span class="cb1">new</span> <span class="cb3">PopupTipTimer</span>();</div><div class="cl"> <span class="cb1">this</span><span class="cb2">.</span>popupTip<span class="cb2">.</span>BackColor <span class="cb2">=</span> <span class="cb3">Color</span><span class="cb2">.</span>Silver;</div><div class="cl"> }</div><div class="cl"><br />
</div><div class="cl"> <span class="cb1">private</span> <span class="cb3">PopupTipTimer</span> popupTip;</div><div class="cl"><br />
</div><div class="cl"> <span class="cb1">private</span> <span class="cb1">void</span> textBox1_Enter(<span class="cb1">object</span> sender, <span class="cb3">EventArgs</span> e)</div><div class="cl"> {</div><div class="cl"> <span class="cb1">this</span><span class="cb2">.</span>popupTip<span class="cb2">.</span>ShowDuration(<span class="cb1">this</span><span class="cb2">.</span>textBox1, </div><div class="cl"> <span class="cb4">"Please fill customer name"</span>, </div><div class="cl"> <span class="cb4">"Do not leave blank for this field, this is important information."</span>, </div><div class="cl"> <span class="cb3">ToolTipIcon</span><span class="cb2">.</span>None, </div><div class="cl"> Properties<span class="cb2">.</span><span class="cb3">Resources</span><span class="cb2">.</span>User1, </div><div class="cl"> <span class="cb2">8000</span>);</div><div class="cl"> }</div><div class="cl"> }</div><div class="cl">}</div></div><br />
<br />
<strong>Download Source Code: <a href="https://sites.google.com/site/noteacode/files/PopupTipTimer.cs?attredirects=0&d=1">PopupTipTimer.cs</a></strong>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-57802344184079964452010-08-05T11:41:00.006+07:002011-04-11T22:37:32.581+07:00Calendar Winforms Control<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQxREgdcPiHB3iDabCqISO1KH9x3Eks779YQVqX4goiN5zckdWeJ-XTFCiuTzfkKqOSBdwsUhv-Rn_X7JkRwfNfqi0UOwzsQC7eghhKgLZYUsKw8pMYzUJorSMpMU1nUmOUuwjWmcsVM0/s1600/CalendarControl.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" bx="true" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQxREgdcPiHB3iDabCqISO1KH9x3Eks779YQVqX4goiN5zckdWeJ-XTFCiuTzfkKqOSBdwsUhv-Rn_X7JkRwfNfqi0UOwzsQC7eghhKgLZYUsKw8pMYzUJorSMpMU1nUmOUuwjWmcsVM0/s400/CalendarControl.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Screen short</td></tr>
</tbody></table><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPelUyau0dUXvWmAAr3SwVcITKu1VyydlQzEW-Q3h_HnFJuHfkLldzaNmgPv7r3FcQgE7Eq-Oh7X81kYU3lqP1XTf5HPPohtBtkLWow6_MBGQ-7M07jgQvOvVd7JeP-sEjNoMCZofZkf4/s1600/CalendarDiagram.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" bx="true" height="555" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPelUyau0dUXvWmAAr3SwVcITKu1VyydlQzEW-Q3h_HnFJuHfkLldzaNmgPv7r3FcQgE7Eq-Oh7X81kYU3lqP1XTf5HPPohtBtkLWow6_MBGQ-7M07jgQvOvVd7JeP-sEjNoMCZofZkf4/s640/CalendarDiagram.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Class Diagram</td></tr>
</tbody></table><br />
<b>Update</b>: April 11, 2011 + Demo for VB.Net<br />
<strong><a href="https://sites.google.com/site/noteacode/files/System.Windows.Forms.Calendar.zip?attredirects=0&d=1">Download Here</a> </strong>include sourcecode, demo(c#, vb.net)<br />
<br />
<strong>Modify by</strong> : thammapat[at]gmail.com <br />
<br />
<strong>Job base on</strong> : Calendar of Jose Menendez Póo (link to original: <a href="http://www.codeproject.com/KB/docview/WinFormsCalendarView.aspx">http://www.codeproject.com/KB/docview/WinFormsCalendarView.aspx</a>)<br />
<strong>Modify date</strong> : October 30, 2009 <br />
<strong>Change Log</strong>:<br />
<br />
<ol><li>Calendar class</li>
<ul><li>Inherit from class Control instead of ScrollableControl.</li>
<li>Add vertical scrollbar for DaysMode.Expanded view.</li>
<li>Add event 'ItemDrawContent' </li>
<li>Add method 'BeginUpdate' and 'EndUpdate'.</li>
<li>Add property 'MultiSelect', 'RendererMode'</li>
<li>Add ToolTip component</li>
<li>Add Icon</li>
<li>Override 'PreProcessMessage' for supported keyboard navigator(left, right, up, down, pageup, pagedown) and editing item(insert, del, escape, f2).</li>
<li>Override 'WndProc' to force focus after key down.</li>
<li>Change some property name to shortly.</li>
<li>Change method 'ScrollCalendar' from move a week -> move a month.</li>
<li>Change all event signature to EventHandler<teventargs> style.</teventargs></li>
<li>Adjust FinalizeEditMode.</li>
<li>Adjust draw item content.</li>
<li>Adjust xml document.</li>
<li>Double check before raise event 'ItemDatesChanged' is realy changed.</li>
</ul><li>CalendarItemCollection class</li>
<ul><li>Add method 'Sort' when 'CollectionChanged'</li>
</ul><li>CalendarItem class</li>
<ul><li>Add Property: ToolTipText, Values, Visible. </li>
<li>Add Method: GetValue, LoadDataRow</li>
<li>Implement interface ICloneable</li>
<li>Adjust resizing, dragging behavior</li>
</ul><li>CalendarSystemRenderer class</li>
<ul><li>Change some color</li>
</ul><li>MonthView class</li>
<ul><li>Inherit from class Control instead of ContainerControl.</li>
<li>Add Icon</li>
<li>Add Method: SetSelectionRange(start, end)</li>
<li>Add event 'DateChanged'.</li>
<li>Add ContextMenuStrip when mouseup at title Month or Year.</li>
<li>Override 'PreProcessMessage' for supported keyboard navigator(left, right, up, down, pageup, pagedown)</li>
<li>Override 'WndProc' to force focus after key down.</li>
<li>Adjust OnMouseMove when highlighting date[s], event 'SelectionChanged' will be raise after mouse up.</li>
<li>Adjust OnMouseDown when clicked at gray text, go to that month.</li>
<li>Adjust xml document.</li>
<li>Change property name from 'DayGrayedText' -> 'TrailingForeColor'</li>
<li>Remove property 'MonthTitleColorInActive', 'MonthTitleTextColorInActive'</li>
</ul></ol><strong><a href="https://sites.google.com/site/noteacode/files/System.Windows.Forms.Calendar.zip?attredirects=0&d=1">Download Here</a> </strong>include sourcecode, demo(c#, vb.net)thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com5tag:blogger.com,1999:blog-5551832111826495719.post-54444162790527020142010-05-01T07:37:00.000+07:002010-05-01T07:37:04.537+07:00PHP กับ IIS7 ง่ายมาก ๆเมื่อก่อนคนที่ใช้ windows ถ้าจะทำงานกับ php แล้วนอกจากจะต้องโหลด php มาลงแล้ว ก็ต้องตาม set โน่นนี่อีกหลายอย่าง ทีนี้พอเป็น IIS7 ปั๊บ ง่ายเลย เข้าไปที่ <a href="http://php.iis.net/">http://php.iis.net/</a> แล้วกดที่ <strong>Install PHP</strong> แล้วก็ next ๆ ไปเรื่อย ๆ (ติดตั้งผ่าน Web PlatForm) ตัว setup นี้จะโหลดโปรแกรมที่เกี่ยวข้องพร้อมกับ setup ให้ IIS7 ของเราใช้ php ได้เลย <br />
<br />
ง่ายจริง ๆthammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-64236567005125364322010-03-25T08:17:00.001+07:002010-03-25T08:18:34.479+07:00.net 2 กับ ActiveControl ที่ขัด ๆ กับที่คิดไว้เดิมใน .net 1.1 ถ้าเรียกใช้ ActiveControl จะบ่งถึงตัว Control ที่กำลัง Active อยู่ แต่ใน .net 2 จะบอกตามชั้นคือ<br />
<br />
Form<br />
|-- UserControl<br />
|-- Button<br />
<br />
ขณะที่ Button กำลัง Active และเรียก property <strong>ActiveControl</strong> เราจะได้ค่า "UserControl" แทนที่จะเป็น Button <br />
<br />
<u>Work around</u><br />
<br />
Control activeControl = base.ActiveControl;<br />
if (activeControl is IContainerControl)<br />
{<br />
IContainerControl container = activeControl as IContainerControl;<br />
activeControl = container.ActiveControl;<br />
}thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-14576184615367252582010-03-12T15:47:00.001+07:002010-03-12T15:55:38.967+07:00ขึ้นบรรทัดใหม่ใน SQL-Transactวันนี้มีโอกาสต้องเขียน function สำหรับ get ข้อมูลหลาย ๆ table มารวมกันให้เหลือบรรทัดเดียว แต่พอข้อมูลมันมีเยอะเข้าเลยดูยาก ก็เลยอยากจะให้มันแยกบรรทัดด้วย กลับไปดูของเก่า ๆ อ้อ เคยทำไว้แล้ว ม้นต้องเชื่อมด้วย Char(10)+ Char(13) ทีนี้ output มันจะออกมาแบบนี้<br />
<br />
<span class="Apple-style-span" style="color: #444444;">1002999393 VISA 2,500.00,</span><br />
<span class="Apple-style-span" style="color: #444444;">2001029992 MAST 4,225.00,</span><br />
<span class="Apple-style-span" style="color: #444444;">1000229291 VISA 1,988.25</span><br />
<br />
<br />
<br />
-- * ฟังก์ชั่น FormatNumber ให้ดูที่ <a href="http://www.novicksoftware.com/udfOfWeek/Vol1/T-SQL-UDF-Volume-1-Number-48-formatnumber.htm">http://www.novicksoftware.com/udfOfWeek/Vol1/T-SQL-UDF-Volume-1-Number-48-formatnumber.htm</a><br />
-- ==========<br />
<br />
<span class="Apple-style-span" style="color: blue;">Create Function</span> GetMultiLineCreditCardInfo(@docno <span class="Apple-style-span" style="color: blue;">varchar</span>(30))<br />
<span class="Apple-style-span" style="color: blue;">Returns varchar</span>(1000)<br />
<span class="Apple-style-span" style="color: blue;">As</span><br />
<span class="Apple-style-span" style="color: blue;">Begin</span><br />
<span class="Apple-tab-span" style="white-space: pre;"><span class="Apple-style-span" style="color: blue;"> </span></span><span class="Apple-style-span" style="color: blue;">Declare</span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@field_Return <span class="Apple-style-span" style="color: blue;">varchar</span>(1000),<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>@delimiter <span class="Apple-style-span" style="color: blue;">varchar</span>(4)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-style-span" style="color: blue;">SET </span>@delimiter = <span class="Apple-style-span" style="color: red;">', '</span> + <span class="Apple-style-span" style="background-color: yellow;"><span class="Apple-style-span" style="color: blue;">Char</span>(10)+ <span class="Apple-style-span" style="color: blue;">Char</span>(13)</span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-style-span" style="color: blue;">Select </span>@field_Return = <span class="Apple-style-span" style="color: magenta;">Coalesce</span>(@field_Return + @delimiter, <span class="Apple-style-span" style="color: red;">''</span>)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>+ ( <span class="Apple-style-span" style="color: magenta;">IsNull</span>(CreditCardID, <span class="Apple-style-span" style="color: red;">''</span>) + <span class="Apple-style-span" style="color: red;">' '</span> + <span class="Apple-style-span" style="color: magenta;">IsNull</span>(CreditCardType, <span class="Apple-style-span" style="color: red;">''</span>) + <span class="Apple-style-span" style="color: red;">' '</span> + dbo.FormatNumber(NetAmount, <span class="Apple-style-span" style="color: red;">'2'</span>, <span class="Apple-style-span" style="color: red;">','</span>, <span class="Apple-style-span" style="color: red;">'zero'</span>) )<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-style-span" style="color: blue;">From </span>CreditCard<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-style-span" style="color: blue;">Where </span>RefDocument = @docno<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-style-span" style="color: blue;">Return </span>@field_Return<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-style-span" style="color: blue;">End</span>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-53826154380836227872010-03-11T11:42:00.004+07:002010-03-11T11:45:44.514+07:00An error occurred while parsing EntityName. Line 2, position 65.<span class="Apple-style-span" style="font-family: Arial; font-size: small;"><span class="Apple-style-span" style="font-size: 13px;"><br />
</span></span>ใน VS2008 พอเปิด project และพยายามจะเปิดฟอร์มที่เคยสร้างไว้จะพบ error นี้ทุกครั้ง ทั้ง ๆ ที่ตอนสร้าง project ก็ปกติดี โดยมีข้อความแจ้งว่า<br />
<blockquote>An error occurred while parsing EntityName. Line 2, position 65.</blockquote><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_LPuAVw6rJRzVdIT-K9mM971Doy5gCJRCBZqKojpbcgC1cflMB6aCZZes1Q9a4ZpD_fejEwn4GQKFXD_XfddWALe5m-w4ybD18vYIDRVeHBuR2gAmBMtg3xEV0TBgr6LFj4H7GsbLmws/s1600-h/ErrorOccurredWhileParsingEntityName.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_LPuAVw6rJRzVdIT-K9mM971Doy5gCJRCBZqKojpbcgC1cflMB6aCZZes1Q9a4ZpD_fejEwn4GQKFXD_XfddWALe5m-w4ybD18vYIDRVeHBuR2gAmBMtg3xEV0TBgr6LFj4H7GsbLmws/s640/ErrorOccurredWhileParsingEntityName.png" width="640" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
พอ search ไปในเน็ต (อ้างอิง <a href="http://social.msdn.microsoft.com/Forums/en-US/winformsdesigner/thread/9b346264-b744-43c1-86e8-7486fea87268">VS2005 Beta 2 form designer problem: error while parsing EntityName</a>) พบว่ามีอักษรบางตัวใน path ถูกตีความผิดไปคืออักษร "&"<br />
<br />
จากตัวอย่างใน project นี้เก็บอยู่ที่โฟลเดอร์ D:\Downloads\Control Report<span class="Apple-style-span" style="background-color: yellow;">&</span>Print\Report RDL\RecursiveData\RecursiveData<br />
พอเปลี่ยนชื่อโฟลเดอร์ใหม่เป็น D:\Downloads\Control Report<span class="Apple-style-span" style="background-color: yellow;">-</span>Print\Report RDL\RecursiveData\RecursiveData<br />
<br />
ทุกอย่างก็กลับสู่ปกติ<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijCZdFSevJsDMpse22lbxX-mc4Ve2SZohwIcj5yQjUa3KeQyUupbe-PxNCsDcb-0FIJTb9ByGmVqs01ASQsaASZSD0OLUoJA0S6VHXarhkSAG9w_yeR7sqXlLSfGAkAeZ7VHqDJKkO9Nw/s1600-h/AfterRenameFolder.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijCZdFSevJsDMpse22lbxX-mc4Ve2SZohwIcj5yQjUa3KeQyUupbe-PxNCsDcb-0FIJTb9ByGmVqs01ASQsaASZSD0OLUoJA0S6VHXarhkSAG9w_yeR7sqXlLSfGAkAeZ7VHqDJKkO9Nw/s640/AfterRenameFolder.png" width="640" /></a></div>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-37427184074677877942010-03-08T19:33:00.006+07:002010-03-08T19:50:46.379+07:00ให้ IDE หยุดตรงที่ Debug (เฉพาะเงื่อนไขที่กำหนดเท่านั้นนะ)นี้เป็นเทคนิคในการ debug โค้ด ปกติเราจะกด F9 เพื่อทำการ mark บรรทัดที่ต้องการให้ ide หยุดรอที่บรรทัดนั้น แต่ทีนี้พอกด run(F5) ทีไร ก็ต้องมาหยุดรอที่บรรทัดนี้ทุกที บางทีเราก็ไม่ได้ต้องการแบบนั้น อยากให้หยุดเฉพาะเมื่อเข้าเงื่อนไขเท่านั้น<br />
<br />
จริง ๆ แล้วตัว ide มีความสามารถนี้อยู่แล้วครับ หลังจากที่ทำการ mark จุดที่จะ debug แล้ว ให้คลิ้กขวาที่จุดนั้น แล้วเลือก Condition... ตามรูป<br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbllHrpbV0FPd4DYI9qBUtDIhYr4xmzY0TPoT9hpn7zB7mQIZE9P5hfa1TewthjVU8zNQ891KQbL7j-v6d9hS5Hcqn1IUGxJG6CZjUsvVHKkALkq8yiNVuxcI1G_NNSnld4YzPVLYWiXM/s1600-h/BreakPoint.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="273" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbllHrpbV0FPd4DYI9qBUtDIhYr4xmzY0TPoT9hpn7zB7mQIZE9P5hfa1TewthjVU8zNQ891KQbL7j-v6d9hS5Hcqn1IUGxJG6CZjUsvVHKkALkq8yiNVuxcI1G_NNSnld4YzPVLYWiXM/s640/BreakPoint.jpg" width="640" /></a></div><br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlnRl-sDcTbX2FukLTO7xmQWmGS3s9f7rBvBcaqizxwbZUkGbTYWdwVFkIpdyTyXIBP6rSnIoXyD7EiTQm4yngcEdoDLWarO3gAYOoKdKFHEY1h9c9pp6GJj13JBv44Wa6enPA3Cmdai0/s1600-h/BreakPoint-Condition.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlnRl-sDcTbX2FukLTO7xmQWmGS3s9f7rBvBcaqizxwbZUkGbTYWdwVFkIpdyTyXIBP6rSnIoXyD7EiTQm4yngcEdoDLWarO3gAYOoKdKFHEY1h9c9pp6GJj13JBv44Wa6enPA3Cmdai0/s400/BreakPoint-Condition.jpg" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgETNN9N2mr1Wn-XWheoi9Dy0zRxfZzYHAZXtXmi4hlSe6BdiQ2HX03pWuKQDCoCq0GJ9G6dIh9s9sjgYR8xFRjQtrMvM-6t1yDDMMpUlcjtqHgdZLYGi-3ixGx6C2HR8nquC8fi-V9SWQ/s1600-h/BreakPoint-Condition-Finish.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgETNN9N2mr1Wn-XWheoi9Dy0zRxfZzYHAZXtXmi4hlSe6BdiQ2HX03pWuKQDCoCq0GJ9G6dIh9s9sjgYR8xFRjQtrMvM-6t1yDDMMpUlcjtqHgdZLYGi-3ixGx6C2HR8nquC8fi-V9SWQ/s640/BreakPoint-Condition-Finish.jpg" width="640" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
ทีนี้เมื่อโค้ดวิ่งมาถึงบรรทัดที่ mark ไว้ จะหยุดเฉพาะเมื่อตัวแปร dictQuery == null เท่านั้น<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0tag:blogger.com,1999:blog-5551832111826495719.post-75151705883467366572010-03-08T16:36:00.003+07:002010-03-08T17:33:51.193+07:00สร้างรายงานอันแรกด้วย RDLCสิ่งที่ต้องการทำคือ สร้างรายงาน rdlc จาก vs2008 แล้วค่อยมาดึง query(ถูกสร้างพร้อมกับ TableAdaper) ที่อยู่ในรายงานไปใช้อีกที ด้วยการทำ DeSerialized <span class="Apple-style-span" style="color: #666666;"> วิธีการสร้าง ReportDefination จากไฟล์ xsd ให้ดูที่</span> <a href="http://msdn.microsoft.com/en-us/library/aa337455(SQL.90).aspx">Lesson 2: Generate Classes from the RDL Schema using the xsd Tool</a><br />
<br />
ขั้นตอนคือสร้าง form เปล่าแล้วโค้ดตามนี้เลย<br />
<br />
<div style="background: #f8fafa; color: black; font-family: Courier New; font-size: 10pt;"><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 1</span> <span style="color: blue;">using</span> System;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 2</span> <span style="color: blue;">using</span> System<span style="color: red;">.</span>Collections<span style="color: red;">.</span>Generic;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 3</span> <span style="color: blue;">using</span> System<span style="color: red;">.</span>Data;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 4</span> <span style="color: blue;">using</span> System<span style="color: red;">.</span>IO;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 5</span> <span style="color: blue;">using</span> System<span style="color: red;">.</span>Windows<span style="color: red;">.</span>Forms;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 6</span> <span style="color: blue;">using</span> System<span style="color: red;">.</span>Xml;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 7</span> <span style="color: blue;">using</span> System<span style="color: red;">.</span>Xml<span style="color: red;">.</span>Serialization;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 8</span> <span style="color: blue;">using</span> Accsa<span style="color: red;">.</span>Data;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 9</span> <span style="color: blue;">using</span> Accsa<span style="color: red;">.</span>Data<span style="color: red;">.</span>DAL;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 10</span> <span style="color: blue;">using</span> Microsoft<span style="color: red;">.</span>Reporting<span style="color: red;">.</span>WinForms;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 11</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 12</span> <span style="color: blue;">namespace</span> WindowsFormsApplication1</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 13</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 14</span> <span style="color: blue;">public</span> <span style="color: blue;">partial</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">Form1</span> : <span style="color: #2b91af;">Form</span></pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 15</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 16</span> <span style="color: blue;">public</span> Form1()</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 17</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 18</span> InitializeComponent();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 19</span> }</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 20</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 21</span> <span style="color: blue;">private</span> Microsoft<span style="color: red;">.</span>Reporting<span style="color: red;">.</span>WinForms<span style="color: red;">.</span><span style="color: #2b91af;">ReportViewer</span> reportViewer1;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 22</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 23</span> <span style="color: blue;">private</span> <span style="color: blue;">void</span> Form1_Load(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e)</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 24</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 25</span> <span style="color: #2b91af;">XmlReader</span> xrd <span style="color: red;">=</span> <span style="color: #2b91af;">XmlReader</span><span style="color: red;">.</span>Create(<span style="color: #2b91af;">Path</span><span style="color: red;">.</span>Combine(<span style="color: #2b91af;">Application</span><span style="color: red;">.</span>StartupPath, <span style="color: #a31515;">"Report1.rdlc"</span>));</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 26</span> xrd<span style="color: red;">.</span>Read();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 27</span> <span style="color: #2b91af;">XmlSerializer</span> serialize <span style="color: red;">=</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">XmlSerializer</span>(<span style="color: blue;">typeof</span>(Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">Report</span>));</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 28</span> Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">Report</span> rpt <span style="color: red;">=</span> (Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">Report</span>)serialize<span style="color: red;">.</span>Deserialize(xrd);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 29</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 30</span> <span style="color: green;">// create list of item element name.</span></pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 31</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 32</span> <span style="color: #2b91af;">List</span><span style="color: red;"><</span>Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">ItemsChoiceType37</span><span style="color: red;">></span> choice37 <span style="color: red;">=</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">List</span><span style="color: red;"><</span>Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">ItemsChoiceType37</span><span style="color: red;">></span>(rpt<span style="color: red;">.</span>ItemsElementName);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 33</span> <span style="color: blue;">int</span> DataSetsIndex <span style="color: red;">=</span> choice37<span style="color: red;">.</span>IndexOf(Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">ItemsChoiceType37</span><span style="color: red;">.</span>DataSets);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 34</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 35</span> Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">DataSetsType</span> dstype <span style="color: red;">=</span> rpt<span style="color: red;">.</span>Items[DataSetsIndex] <span style="color: blue;">as</span> Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">DataSetsType</span>;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 36</span> <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> item <span style="color: blue;">in</span> dstype<span style="color: red;">.</span>DataSet)</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 37</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 38</span> Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">DataSetType</span> dtype <span style="color: red;">=</span> item <span style="color: blue;">as</span> Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">DataSetType</span>;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 39</span> Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">QueryType</span> qtype <span style="color: red;">=</span> <span style="color: #2b91af;">Array</span><span style="color: red;">.</span>Find<span style="color: red;"><</span><span style="color: blue;">object</span><span style="color: red;">></span>(dtype<span style="color: red;">.</span>Items, (oo) <span style="color: red;">=></span></pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 40</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 41</span> <span style="color: blue;">return</span> oo<span style="color: red;">.</span>GetType() <span style="color: red;">==</span> <span style="color: blue;">typeof</span>(Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">QueryType</span>);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 42</span> }) <span style="color: blue;">as</span> Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">QueryType</span>;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 43</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 44</span> <span style="color: #2b91af;">List</span><span style="color: red;"><</span>Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">ItemsChoiceType2</span><span style="color: red;">></span> choice2 <span style="color: red;">=</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">List</span><span style="color: red;"><</span>Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">ItemsChoiceType2</span><span style="color: red;">></span>(qtype<span style="color: red;">.</span>ItemsElementName);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 45</span> <span style="color: blue;">int</span> indexCommandText <span style="color: red;">=</span> choice2<span style="color: red;">.</span>IndexOf(Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">ItemsChoiceType2</span><span style="color: red;">.</span>CommandText);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 46</span> <span style="color: blue;">int</span> indexCommandType <span style="color: red;">=</span> choice2<span style="color: red;">.</span>IndexOf(Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">ItemsChoiceType2</span><span style="color: red;">.</span>CommandType);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 47</span> <span style="color: blue;">int</span> indexDatasourceName <span style="color: red;">=</span> choice2<span style="color: red;">.</span>IndexOf(Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">ItemsChoiceType2</span><span style="color: red;">.</span>DataSourceName);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 48</span> <span style="color: blue;">int</span> indexQueryParas <span style="color: red;">=</span> choice2<span style="color: red;">.</span>IndexOf(Rdlc<span style="color: red;">.</span><span style="color: #2b91af;">ItemsChoiceType2</span><span style="color: red;">.</span>QueryParameters);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 49</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 50</span> dictQuery<span style="color: red;">.</span>Add(item<span style="color: red;">.</span>Name, qtype<span style="color: red;">.</span>Items[indexCommandText]<span style="color: red;">.</span>ToString());</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 51</span> <span style="color: green;">//string commandType = qtype.Items[indexCommandType].ToString();</span></pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 52</span> <span style="color: blue;">string</span> datasourceName <span style="color: red;">=</span> qtype<span style="color: red;">.</span>Items[indexDatasourceName]<span style="color: red;">.</span>ToString();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 53</span> <span style="color: green;">//Rdlc.QueryParametersType qParas = qtype.Items[indexQueryParas] as Rdlc.QueryParametersType;</span></pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 54</span> }</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 55</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 56</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 57</span> <span style="color: blue;">this</span><span style="color: red;">.</span>timer1<span style="color: red;">.</span>Start();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 58</span> }</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 59</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 60</span> <span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 61</span> <span style="color: grey;">///</span><span style="color: green;"> CommandText DataSet_DataTable, CommandText</span></pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 62</span> <span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 63</span> <span style="color: #2b91af;">Dictionary</span><span style="color: red;"><</span><span style="color: blue;">string</span>, <span style="color: blue;">string</span><span style="color: red;">></span> dictQuery <span style="color: red;">=</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">Dictionary</span><span style="color: red;"><</span><span style="color: blue;">string</span>, <span style="color: blue;">string</span><span style="color: red;">></span>();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 64</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 65</span> <span style="color: blue;">private</span> <span style="color: blue;">void</span> timer1_Tick(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">EventArgs</span> e)</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 66</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 67</span> <span style="color: blue;">this</span><span style="color: red;">.</span>timer1<span style="color: red;">.</span>Stop();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 68</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 69</span> <span style="color: #2b91af;">DataSet</span> ds <span style="color: red;">=</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">DataSet</span>(<span style="color: #a31515;">"DSReport"</span>);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 70</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 71</span> <span style="color: blue;">using</span> (<span style="color: #2b91af;">AsAdapter</span> da<span style="color: red;">=</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">AsAdapter</span>())</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 72</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 73</span> da<span style="color: red;">.</span>ConnectionInfo <span style="color: red;">=</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">ConnectionInfo</span>();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 74</span> da<span style="color: red;">.</span>ConnectionInfo<span style="color: red;">.</span>SetConnectionString(<span style="color: #a31515;">"localhost"</span>, <span style="color: #a31515;">"db2006"</span>, <span style="color: #a31515;">"sa"</span>, <span style="color: #a31515;">"system"</span>);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 75</span> da<span style="color: red;">.</span>Open();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 76</span> <span style="color: blue;">foreach</span> (<span style="color: blue;">var</span> item <span style="color: blue;">in</span> dictQuery)</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 77</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 78</span> <span style="color: #2b91af;">DataTable</span> dt <span style="color: red;">=</span> da<span style="color: red;">.</span>GetData(item<span style="color: red;">.</span>Value, item<span style="color: red;">.</span>Key<span style="color: red;">.</span>Split(<span style="color: #a31515;">'_'</span>)[<span style="color: red;">1</span>]);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 79</span> ds<span style="color: red;">.</span>Tables<span style="color: red;">.</span>Add(dt);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 80</span> }</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 81</span> da<span style="color: red;">.</span>Close();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 82</span> }</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 83</span> <span style="color: blue;">this</span><span style="color: red;">.</span>reportViewer1 <span style="color: red;">=</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">ReportViewer</span>();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 84</span> <span style="color: blue;">this</span><span style="color: red;">.</span>reportViewer1<span style="color: red;">.</span>ProcessingMode <span style="color: red;">=</span> <span style="color: #2b91af;">ProcessingMode</span><span style="color: red;">.</span>Local;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 85</span> <span style="color: blue;">this</span><span style="color: red;">.</span>reportViewer1<span style="color: red;">.</span>LocalReport<span style="color: red;">.</span>ReportPath <span style="color: red;">=</span> <span style="color: #a31515;">"Report1.rdlc"</span>;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 86</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 87</span> <span style="color: blue;">for</span> (<span style="color: blue;">int</span> i <span style="color: red;">=</span> <span style="color: red;">0</span>; i <span style="color: red;"><</span> ds<span style="color: red;">.</span>Tables<span style="color: red;">.</span>Count; i<span style="color: red;">++</span>)</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 88</span> {</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 89</span> <span style="color: blue;">string</span> datasource_Name <span style="color: red;">=</span> <span style="color: blue;">string</span><span style="color: red;">.</span>Format(<span style="color: #a31515;">"{0}_{1}"</span>, ds<span style="color: red;">.</span>DataSetName, ds<span style="color: red;">.</span>Tables[i]<span style="color: red;">.</span>TableName);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 90</span> <span style="color: #2b91af;">ReportDataSource</span> rds <span style="color: red;">=</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">ReportDataSource</span>(datasource_Name, ds<span style="color: red;">.</span>Tables[i]);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 91</span> <span style="color: blue;">this</span><span style="color: red;">.</span>reportViewer1<span style="color: red;">.</span>LocalReport<span style="color: red;">.</span>DataSources<span style="color: red;">.</span>Add(rds);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 92</span> }</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 93</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 94</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 95</span> <span style="color: blue;">this</span><span style="color: red;">.</span>reportViewer1<span style="color: red;">.</span>Dock <span style="color: red;">=</span> <span style="color: #2b91af;">DockStyle</span><span style="color: red;">.</span>Fill;</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 96</span> <span style="color: blue;">this</span><span style="color: red;">.</span>Controls<span style="color: red;">.</span>Add(<span style="color: blue;">this</span><span style="color: red;">.</span>reportViewer1);</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 97</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 98</span> <span style="color: blue;">this</span><span style="color: red;">.</span>reportViewer1<span style="color: red;">.</span>RefreshReport();</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 99</span> }</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 100</span> </pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 101</span> }</pre><pre style="margin: 0px;"><span style="background-attachment: initial; background-clip: initial; background-color: #f1f5f5; background-image: initial; background-origin: initial; color: #22758c;"> 102</span> }</pre></div>thammapathttp://www.blogger.com/profile/12514324152751471243noreply@blogger.com0