Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > อยากทราบการตัดเกรดค่ะ vb ช่วยหน่อยนะคะ ต้องการความช่วยเหลือมากเลยค่ะ!!



 

อยากทราบการตัดเกรดค่ะ vb ช่วยหน่อยนะคะ ต้องการความช่วยเหลือมากเลยค่ะ!!

 



Topic : 100890



โพสกระทู้ ( 4 )
บทความ ( 0 )



สถานะออฟไลน์




pic

จากภาพเลยค่ะ ถ้าต้องการให้ผู้ใช้กรอกแค่คะแนนต่ำสุดแล้วช่องอื่นๆจะให้โปรแกรมขยับเองอัตโนมัติอ่ะค่ะ เพื่อความสะดวกกับผู้ใช้

ต้องเขียนโค้ดแบบไหนคะ พยายามลองมาหลายวันแล้ว ใช้ภาษา vb2008 เขียนค่ะ รบกวนหน่อยนะคะ พอดีจะสอบหัวข้อแล้วแต่ยังแก้ไม่ได้

เลยค่ะ ใครทราบรบกวนช่วยหน่อยค่ะ ขอบพระคุณล่วงหน้านะคะ



Tag : Ms SQL Server 2008, Excel (Excel.Application), VS 2008 (.NET 3.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-09-23 19:26:48 By : alice_s View : 2732 Reply : 8
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ปกติถ้าอ่านจาก Excel แล้วมาเก็บไว้ใน Datatable ก็อาจจะใช้การ Loop ค่า DataTable เพื่อตรวจสอบค่าใหม่ครับ จากนั้นค่อยนำไป Bind ใน DataGridView ใหม่ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-24 09:13:00 By : mr.win
 


 

No. 2

Guest


มาจะกล่าวบทไป ... ผมจะเล่าทฤษฏี "เศษไกล้ไร้ค่า" ให้ฟัง
Code
ผมไม่รู้ว่ามันช่วยให้เข้าใจได้มากขึ้นหรือว่าแย่มากกว่าเดิมอีก เท่าที่ผมทราบและจำได้ การคิดเกรดมีอยู่ 2 วิธี 1. อิงกลุ่ม แบ่งย่อยออกไปอีก ตามตามเหมาะสม เช่น 1.1 T-Score 1.2 Dewey 1.3 etc... 2. อิงเกณฑ์ อันนี้เป็นสากล


ผมมั่นใจทุกวิธีที่กล่าวมาใช้ LINQ Query บรรทัดเดียว ตอบโจทย์ได้ทั้งหมด
และผมมั่นใจว่า Search ใน www.google.com จะพบที่นี่ที่เดียว (SourceCode)

* ดึงข้อมูลมาจากตาราง Excel ผมไม่ได้กล่าวถึง แต่แนวทางคงไม่หนีไปไหนไกล

Code (VB.NET)
Dim dtStudent As New DataTable("Student")
Using cn As New OleDbConnection("Excel Connection String")
    Dim strSQL As String = "Select field1 As stdID, field2 As Total, * From aaa.xls"
    Using da As OleDbDataAdapter = New OleDbDataAdapter(strSQL, cn)
        da.Fill(dtStudent)
    End Using
End Using


*

ผมหัดเขียนตัวอย่างให้ดูในกรณี อิงเกณฑ์ และเทคนิคการเล่นกับ "เศษไกล้ไร้ค่า"

Code
* สร้างตาราง เกรด ดังนี้ จากช่วง - ถึงช่วง เกรด 0 49.99 F 50 59.99 D 60 69.99 C 70 79.99 B 80 100.00 A ** สร้างตารางทะเบียนนักศึกษา พอสังเขป รหัสนักศึกษา ชื่อ-นาม คะแนนรวม 01 รอเธอ 50 02 เธอรอ 88 03 รอดอ 72 04 ดอรอ 42


ดับเบิลคลิ๋กที่ปุ่ม ตัดเกรดอิงเกณฑ์ และเขียนโค๊ดดังนี้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-24 16:19:45 By : ผ่านมา
 

 

No. 3

Guest


Code (VB.NET)
'Master Data
Dim dtScore As New DataTable("GradeTable")
dtScore.Columns.Add("FromScore", GetType(Decimal))
dtScore.Columns.Add("ToScore", GetType(Decimal))
dtScore.Columns.Add("Grade", GetType(String))

dtScore.Rows.Add(New Object() {-0.0, 49.99, "F"})
dtScore.Rows.Add(New Object() {50.0, 59.99, "D"})
dtScore.Rows.Add(New Object() {60.0, 69.99, "C"})
dtScore.Rows.Add(New Object() {70.0, 79.99, "B"})
dtScore.Rows.Add(New Object() {80.0, 100.0, "A"})

'Transaction Data
Dim dtStudent As New DataTable("Student")

dtStudent.Columns.Add("stdID", GetType(Integer))
dtStudent.Columns.Add("Total", GetType(Decimal)) ' สอบระหว่างภาค + คะแนนจิตสวาท + etc

dtStudent.Rows.Add(New Object() {3, 95})
dtStudent.Rows.Add(New Object() {1, 50})
dtStudent.Rows.Add(New Object() {2, 66})
dtStudent.Rows.Add(New Object() {4, 75})
dtStudent.Rows.Add(New Object() {5, 49})

Dim g = From x In dtStudent
        From y In dtScore
        Where x.Item("Total") >= y.Item("FromScore") AndAlso x.Item("Total") <= y.Item("ToScore")
        Select StudentID = x.Field(Of Integer)("stdID"), Grade = y.Field(Of String)("Grade")

DataGridView1.DataSource = g.ToList()


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-24 16:27:07 By : ผ่านมา
 


 

No. 4

Guest


จาก #NO 2 ผมมั่นใจทุกวิธีที่กล่าวมาใช้ LINQ Query บรรทัดเดียว ตอบโจทย์ของหนูได้ทั้งหมด
โดยผมยกตัวอย่างจริงของการคำนวณ ภาษีเงินได้บุคคลธรรมดา ที่จะเริ่มใช้ในปี พ.ศ. 2557
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-24 16:35:14 By : ผ่านมา
 


 

No. 5

Guest


Code (VB.NET)
'ตารางอัตราภาษีก้าวหน้า 7 ขั้น เริ่มใช้ปี พ.ศ. 2557
Dim dtTaxTable7 As New DataTable("dtTaxTable7")
dtTaxTable7.Columns.Add("IncomeBase", GetType(Decimal))
dtTaxTable7.Columns.Add("IncomeTop", GetType(Decimal))
dtTaxTable7.Columns.Add("TaxRate", GetType(Decimal))
dtTaxTable7.Columns.Add("PrevTop", GetType(Decimal))
dtTaxTable7.Columns.Add("CumulTax", GetType(Decimal))

dtTaxTable7.Rows.Add(New Object() {0.0, 150000, 0, 0, 0})
dtTaxTable7.Rows.Add(New Object() {150000.01, 300000, 0.05, 150000, 0})
dtTaxTable7.Rows.Add(New Object() {300000.01, 500000, 0.1, 300000, 7500})
dtTaxTable7.Rows.Add(New Object() {500000.01, 750000, 0.15, 500000, 27500})
dtTaxTable7.Rows.Add(New Object() {750000.01, 1000000, 0.2, 750000, 65000})
dtTaxTable7.Rows.Add(New Object() {1000000.01, 2000000, 0.25, 1000000, 115000})
dtTaxTable7.Rows.Add(New Object() {2000000.01, 4000000, 0.3, 2000000, 365000})
dtTaxTable7.Rows.Add(New Object() {4000000.01, 1000000000, 0.35, 4000000, 965000})

'ตาราง รายได้สุทธิของพนักงาน พอสังเขป
Dim dtSalary As New DataTable("dtSalary")
dtSalary.Columns.Add("EmpID", GetType(Integer))
dtSalary.Columns.Add("TotalYearlyIncome", GetType(Decimal))
dtSalary.Rows.Add(New Object() {1, 0.99})
dtSalary.Rows.Add(New Object() {2, 149999})
dtSalary.Rows.Add(New Object() {3, 300000})
dtSalary.Rows.Add(New Object() {4, 300000000})
dtSalary.Rows.Add(New Object() {5, 600000000})

Dim t = From x In dtSalary
        From y In dtTaxTable7
        Let Tax = ((x.Item("TotalYearlyIncome") - y.Item("PrevTop")) * y.Item("TaxRate")) + y.Item("CumulTax")
        Where x.Item("TotalYearlyIncome") >= y.Item("IncomeBase") AndAlso x.Item("TotalYearlyIncome") <= y.Item("IncomeTop")
        Select Tax



สรุปภายใต้โครงสร้างอัตราภาษีใหม่

พนักงาน รายได้ 300,000 ต้องเสียภาษี = 7,500 บาท
พนักงาน รายได้ 3,000,000 ต้องเสียภาษี = 665,000 บาท
พนักงาน รายได้ 300,000,000 ต้องเสียภาษี = 104,565,000 บาท
พนักงาน รายได้ 600,000,000 ต้องเสียภาษี = 209,565,000 บาท

สรุปภายใต้โครงสร้างอัตราภาษีเดิม

พนักงาน รายได้ 300,000 ต้องเสียภาษี = 15,000 บาท
พนักงาน รายได้ 3,000,000 ต้องเสียภาษี = 735,000 บาท
พนักงาน รายได้ 300,000,000 ต้องเสียภาษี = 110,555,000 บาท
พนักงาน รายได้ 600,000,000 ต้องเสียภาษี = 221,555,000 บาท

ข้อสังเกตุ : Source Code Let Tax = ???

[x] เพิ่มเติมต่อ ...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-24 16:49:30 By : ผ่านมา
 


 

No. 6

Guest


จาก #NO 2 - #NO5 ผมต่อยอดมาจาก
หลักคิดของท่านหนึ่ง ที่ผมเคารพนับถือเป็นอย่างสูง (ขออนุญาติที่ไม่เอ่ยนามท่าน)
ดังนี้ครับ
(สมมุติว่าท่านมีโอกาสได้มาอ่านตรงนี้ ท่านคงดีใจ ที่เห็นผม ต่อยอดไปได้ในทุกทิศทุกทาง ไร้ข้อจำกัด)

/*
Code
***** ผมขอแนะนำให้ใช้หลักแบบนี้ครับ ***** ภาษีขั้น i = (เงินได้ - เกณฑ์สูงช่วงเงินได้(i-1)) x อัตราภาษี(i) + ภาษีสะสมขั้น(i) ภาษีสะสม i = ภาษีแต่ละขั้นเงินได้(i-1) + ภาษีสะสมขั้น(i-1) ภาษีแต่ละขั้นเงินได้ = (เกณฑ์สูงช่วงเงินได้(i-1) - เกณฑ์สูงช่วงเงินได้(i-2)) x อัตราภาษี(i-1) สร้าง TaxTable จากอัตราภาษีนี้ มี field 2 field ช่วยทำให้งานง่ายขึ้น เกณฑ์สูงของเงินได้ขั้นก่อนหน้า (PrevTop/ช่วงเงินได้สุทธิ) ไว้เป็นค่าลบออกจากรายได้เพื่อคำนวณภาษีของขั้นนั้นๆ และ ภาษีสะสมของขั้น(cumtax) ซึ่งคำนวณล่วงหน้าให้กับแต่ละขั้น * ต.ย. ของภาษีบุคคลธรรมดาของกรมสรรพากร * ถ้าจะหักภาษี ณ ที่จ่ายรายเดือนก็แก้ไขอัตราต่างๆ ตามเกณฑ์ และคำนวณ cumtax ที่ถูกต้องใช้เองครับ */

*/


สรุปว่า ถ้าหลักคิดของเรามีจริยธรรมที่เที่ยงตรง มัีนจะทำให้เราเขียนโปรแกรมได้ง่ายขึ้น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-25 07:49:32 By : ผ่านมา
 


 

No. 7

Guest


จาก จาก #NO 2 - #NO5 ผมใช้ DataTable เก็บข้อมูลตัวอย่าง เพื่อช่วยในการคำนวณ
ซึ่งในการใช้งานจริง (ประยุกต์) เจ้าของกระทู้อาจจะใช้ Array() หรือว่า Generic หรือว่าอื่นฯ
ขึ้นอยู่กับสถานะการณ์ หรือตามความเหมาะสม ก็ย่อมได้เช่นเดียวกัน

กรณีการคำนวณเกรดแบบอิงกลุ่ม หลักการก็ไม่แตกต่างกันครับ และ
เื่พื่อให้ท่านเติบโตด้วยตัวเอง ผมคงละเอาไว้

GoodLuck


[x] ผมว่าออกแบบหน้าจอของท่าน และ ขั้นตอนการทำงาน
ยังต้องปรับปรุงอีกเยอะเลยนะครับ ไม่ถึงกับยอดแย่ แต่ก็อยู่ในช่วง 0 - 49.99 ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-25 08:05:42 By : ผ่านมา
 


 

No. 8

Guest


ผมลืมบอกไปว่า ผมลืมทฤษฏีเหล่านี้ไปหมดแล้ว ทั้งฯที่ผมจบสาขาวิชา สถิติศาสตร์ โดยตรง
แต่ผมมั่นใจว่า
ถ้าผมมีเวลาอันน้อยนิดพอที่จะทบทวน ทฤษฏีขั้นสูง เหล่านี้อีกครั้ง มันก็ไม่ใช่เรื่องยากจนเกินไปนัก
ถึงแม้ว่าผมจะทำได้ไม่ดีเท่าคนอื่นเขา แต่ผมมองเห็นบุคคลเหล่านั้นอยู่ข้างหน้าผมนี่เอง "ไม่กี่ช่วงก้าวเดิน"

+55555
[x] กฏของเหลียงซาน เขาขึ้น หรือว่า ขึ้นเขา มันก็ไม่แตกต่างกัน เอวัง...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-25 08:38:29 By : ผ่านมา
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากทราบการตัดเกรดค่ะ vb ช่วยหน่อยนะคะ ต้องการความช่วยเหลือมากเลยค่ะ!!
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่