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,027

HOME > .NET Framework > Forum > (VB) สอบถาม Code โปรแกรม คำนวณโปรโมชั่นของราคาสินค้า



 

(VB) สอบถาม Code โปรแกรม คำนวณโปรโมชั่นของราคาสินค้า

 



Topic : 128180



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



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




เรากำลังศึกษาเรื่อง VB อยู่ค่ะ เเล้วมีคนให้โจทย์เรามาทำเล่นๆ ส่วนลดอะไรเเบบนี้เราคิดเองนะคะอาจจะเเปลกๆหน่อย =__=

สิ่งที่ต้องการ

คือให้แสดงราคาสินค้าก่อนหักส่วนลด (จำนวนที่เราใส่เข้าไป price)
จำนวนเงินส่วนลด (dim)
สรุปราคาที่ต้องชำระ ( total = price - dim)



ประเภทสินค้า ให้ใช้ dropdownlist มีสินค้า 3 อย่าง
1. ซื้อสินค้า A
ถ้าซื้อสินค้ 0 -499.99 จะไม่ได้รับส่วนลด (dim เป็น 0)
ถ้าซื้อสินค้า 500 -999.99 จะได้รับส่วนลด 300
ถ้าซื้อสินค้า 1000 ขึ้นไป จะได้รับส่วนลด 500

2. ซื้อสินค้า B
ถ้าซื้อสินค้า 0 - 999.99 จะได้รับส่วนลด 500
ถ้าซื้อสินค้า 1000 - 499.99 จะได้รับส่วนลด 1000
ถ้าซื้อสินค้า 5000 ขึ้นไป จะได้รับส่วนลด 1500

3. ซื้อสินค้า C
ซื้อสินค้า 0 - 1499.99 จะได้ส่วนลด 500
ซื้อสินค้า 1500 - 2999.99 ได้ส่วนลด 1000
ซื้อสินค้า 3000-5999.99 ได้ส่วนลด 1500
ซื้อสินค้า 6000 ขึ้น ลด 3000

หน้า ดีไซน์ ค่ะ


เราทำเเล้วทำได้ เเบบ สร้างฟังก์ชันของสินค้าเเต่ละตัวเเล้วเรียกใช้ เลยเเบบทื่อๆ

Code (VB.NET)
Function Calculate_A1001(ByVal value As Decimal) As Decimal
        Dim price As Decimal = value
        Dim dis As Decimal = 0

        If price <= 500 Then
            dis = 0
        ElseIf price <= 1000 Then
            dis = 300
        Else
            dis = 500
        End If
        Return dis
    End Function
    Function Calculate_B1001(ByVal value As Decimal) As Decimal
        Dim price As Decimal = value
        Dim dis As Decimal = 0

        If price <= 1000 Then
            dis = 500
        ElseIf price <= 5000 Then
            dis = 1000
        Else
            dis = 1500
        End If
        Return dis
    End Function
    Function Calculate_C1001(ByVal value As Decimal) As Decimal
        Dim price As Decimal = value
        Dim dis As Decimal = 0

        If price <= 1500 Then
            dis = 500
        ElseIf price <= 3000 Then
            dis = 1000
        ElseIf price <= 6000 Then
            dis = 1500

        Else
            dis = 3000
        End If
        Return dis
    End Function
    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim price As Decimal
        Dim dis As Decimal
        Dim total As Decimal

        price = TextBox1.Text
        dis = 0


        ' เงืื่อนไข... 
        'Select Case ประโยคกำหนดเงื่อนไข
        '    Case ลำดับที่ n
        '        .
        '        .
        '    Case Else
        '        .
        '        .
        'End Select



        Select Case DropDownList1.SelectedValue
            Case "A1001"
                dis = Calculate_A1001(price)

            Case "B1001"
                dis = Calculate_B1001(price)

            Case "C1001"
                dis = Calculate_C1001(price)



        End Select

        ' / / / / / / / / เเสดงผล / / / / / / / / /

        total = price - dis
        TextBox2.Text = ("" & price)
        TextBox3.Text = (" " & dis)
        TextBox4.Text = (" " & total)




    End Sub

End Class




ทีนี้ ลองหาๆดู มันมีอีกหลายวิธีที่ทำได้ สั้นกว่า เวลาใช้งานก็เเก้ไขโปรโมชั่นได้ ไม่ต้องมานั่งหานั่งแก้ทีละตัว โดยใช้ sql server (เเต่เครื่องเรายังไม่มี = = ) เลยคิดว่าจะใช้วิธีดิบๆเบสิกๆ add ข้อมูลพวกโปรโมชั่น ลงตารางเเล้วเรียกใช้เอา เราลองเเล้วหาๆ สร้างตารงได้ค่ะ เเต่จะเรียกใช้มันยังไง ยังสับสนอยู่


Code (VB.NET)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        dt.Columns.Add("promotion_id", GetType(Integer))
        dt.Columns.Add("Product", GetType(String))
        dt.Columns.Add("min_p", GetType(Decimal))
        dt.Columns.Add("max_p", GetType(Decimal))
        dt.Columns.Add("dis", GetType(Decimal))

        ' Start A1001
        Dim drA1 As DataRow = dt.NewRow
        drA1.Item("promotion_id") = 1
        drA1.Item("Product") = "A1001"
        drA1.Item("min_p") = 0
        drA1.Item("max_p") = 499.99
        drA1.Item("dis") = 0
        dt.Rows.Add(drA1)


        Dim drA2 As DataRow = dt.NewRow
        drA2.Item("promotion_id") = 2
        drA2.Item("Product") = "A1001"
        drA2.Item("min_p") = 500
        drA2.Item("max_p") = 999.99
        drA2.Item("dis") = 300
        dt.Rows.Add(drA2)

        Dim drA3 As DataRow = dt.NewRow
        drA3.Item("promotion_id") = 3
        drA3.Item("Product") = "A1001"
        drA3.Item("min_p") = 1000
        drA3.Item("max_p") = 0
        drA3.Item("dis") = 500
        dt.Rows.Add(drA3)
        ' End A1001


        ' Start B1001
        Dim drB1 As DataRow = dt.NewRow
        drB1.Item("promotion_id") = 1
        drB1.Item("Product") = "B1001"
        drB1.Item("min_p") = 0
        drB1.Item("max_p") = 999.99
        drB1.Item("dis") = 500
        dt.Rows.Add(drB1)


        Dim drB2 As DataRow = dt.NewRow
        drB2.Item("promotion_id") = 2
        drB2.Item("Product") = "B1001"
        drB2.Item("min_p") = 1000
        drB2.Item("max_p") = 4999.99
        drB2.Item("dis") = 1000
        dt.Rows.Add(drB2)

        Dim drB3 As DataRow = dt.NewRow
        drB3.Item("promotion_id") = 3
        drB3.Item("Product") = "B1001"
        drB3.Item("min_p") = 5000
        drB3.Item("max_p") = 0
        drB3.Item("dis") = 1500
        dt.Rows.Add(drB3)
        ' End B1001


        ' Start C1001
        Dim drC1 As DataRow = dt.NewRow
        drC1.Item("promotion_id") = 1
        drC1.Item("Product") = "C1001"
        drC1.Item("min_p") = 0
        drC1.Item("max_p") = 1499.99
        drC1.Item("dis") = 500
        dt.Rows.Add(drC1)


        Dim drC2 As DataRow = dt.NewRow
        drC2.Item("promotion_id") = 2
        drC2.Item("Product") = "C1001"
        drC2.Item("min_p") = 1500
        drC2.Item("max_p") = 2999.99
        drC2.Item("dis") = 1000
        dt.Rows.Add(drC2)

        Dim drC3 As DataRow = dt.NewRow
        drC3.Item("promotion_id") = 3
        drC3.Item("Product") = "C1001"
        drC3.Item("min_p") = 3000
        drC3.Item("max_p") = 5999.99
        drC3.Item("dis") = 1500
        dt.Rows.Add(drC3)

        Dim drC4 As DataRow = dt.NewRow
        drC4.Item("promotion_id") = 4
        drC4.Item("Product") = "C1001"
        drC4.Item("min_p") = 6000
        drC4.Item("max_p") = 0
        drC4.Item("dis") = 3000
        dt.Rows.Add(drC4)
        ' End C1001

        '------------------
        GridView1.DataSource = dt
        GridView1.DataBind()
        ' -------------------





สิ่งที่เราอยากได้นะคะ คือ พอเรามี datatable เเล้ว จะเรียกใช้แบบ code แรกยังไงคะ



Tag : .NET, VBScript, Web (ASP.NET), VB.NET, VS 2013 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-07-03 14:23:55 By : MaPang View : 4685 Reply : 7
 

 

No. 1



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



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


https://drive.google.com/open?id=0B0eXWJAyV7itTnlHWHlJVWxoTEE

รูปหน้าดีไซน์นะคะ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-03 14:25:17 By : MaPang
 


 

No. 2

Guest


จำนวน x (ราคา-ส่วนลด) = ราคาที่ต้องชำระ
เพิ่มโจทย์ให้ไปคิดอีก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-03 15:22:09 By : การบ้าน
 

 

No. 3

Guest


สามารถใช้ Excel เป็น ฐานข้อมูลได้ครับแก้ไขปรับแต่ง ได้ตามใจชอบ
เป็นอีกทางเลือกหนึ่ง ลองศึกษาดูไม่ยากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-03 15:23:51 By : การบ้าน
 


 

No. 4



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



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


ขอบคุณมากค่ะ ลองทำดู ได้เเล้ว 555++



Code (VB.NET)
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim product_code As String
        Dim price As Decimal
        Dim dis As Decimal
        Dim total As Decimal

If IsNumeric(TextBox1.Text) Then
            price = TextBox1.Text
 product_code = DropDownList1.SelectedValue
            dis = Calculate(product_code, price)

            total = price - dis
            TextBox2.Text = ("" & price)
            TextBox3.Text = (" " & dis)
            TextBox4.Text = (" " & total)
        Else
        End If
    End Sub


Function Calculate(ByVal product_code As String, ByVal price As Decimal) As Decimal
        Dim dis As Decimal = 0

        For Each dr As DataRow In dt.Rows
            If (dr.Item("Product") = product_code) Then

                If price >= dr.Item("min_p") And price <= dr.Item("max_p") Then
                    dis = dr.Item("dis")

                End If
            End If

        Next

        Return dis
    End Function


เหลืกำหนดค่า ตรง max_p (ราคาสูงสุด)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-04 11:02:10 By : NumWhan
 


 

No. 5



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



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : การบ้าน เมื่อวันที่ 2017-07-03 15:22:09
รายละเอียดของการตอบ ::

กำลังจะทำเลย ขอบคุณมากค่ะ
เเบบใส่ตัวเลขจำนวนสินค้าใน textbox เเล้วคำนวนออกมาด้วย
ตอนนี้หัวเริ่มอุ่นๆเเล้วค่ะ 555+

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-04 11:04:11 By : ewanbaloki
 


 

No. 6

Guest


ต่อยอดได้อีกเยอะเลยครับลองคิดเล่นๆดู
1. คลิกแล้วแสดงรูปภาพสินค้า
2. ออกใบเสร็จได้ โดยใช้ ReportViewer
3. เก็บข้อมูลการชื้อสินค้าโดยสามารถเก็บให้เป็น Text file,Excel,Xml ได้
และอื่น ๆ อีกเยอะ
แค่นี้ก่อนหละกันเดี๋ยว หัวร้อนไปใหญ่ 555++
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-04 11:30:27 By : การบ้าน
 


 

No. 7



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



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


เราทำได้เเบบนี้อะ

ขอตั้งชื่อว่า โปรเเกรมคำนวณเงินส่วนลดโปรโมชั่น ของสินค้า A B C
การทำงาน
ใส่ราคาสินค้า เเละ จำนวนสินค้า
เมื่อกดคำนวณ จะเเสดง
- ราคาสินค้าทั้งหมด( ราคาสินค้า * จำนวนสินค้า)
- จำนวนเงินส่วนลด
- จำนวนราคาที่ต้องชำระ เราขอใช้เป็น == [( ราคาสินค้าทั้งหมด * จำนวนสินค้า) - จำนวนเงินส่วนลด ]

หน้าดีไซน์




CODE VB#

Code (VB.NET)
Imports System.Data

Public Class WebForm1
    Inherits System.Web.UI.Page
    Dim dt As New DataTable
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        dt.Columns.Add("promotion_id", GetType(Integer))
        dt.Columns.Add("Product", GetType(String))
        dt.Columns.Add("min_p", GetType(Decimal))
        dt.Columns.Add("max_p", GetType(Decimal))
        dt.Columns.Add("dis", GetType(Decimal))

        ' Start A1001
        Dim drA1 As DataRow = dt.NewRow
        drA1.Item("promotion_id") = 1
        drA1.Item("Product") = "A1001"
        drA1.Item("min_p") = 0
        drA1.Item("max_p") = 499.99
        drA1.Item("dis") = 0
        dt.Rows.Add(drA1)

        Dim drA2 As DataRow = dt.NewRow
        drA2.Item("promotion_id") = 2
        drA2.Item("Product") = "A1001"
        drA2.Item("min_p") = 500
        drA2.Item("max_p") = 999.99
        drA2.Item("dis") = 300
        dt.Rows.Add(drA2)

        Dim drA3 As DataRow = dt.NewRow
        drA3.Item("promotion_id") = 3
        drA3.Item("Product") = "A1001"
        drA3.Item("min_p") = 1000
        drA3.Item("max_p") = DBNull.Value
        drA3.Item("dis") = 500
        dt.Rows.Add(drA3)
        ' End A1001

        ' Start B1001
        Dim drB1 As DataRow = dt.NewRow
        drB1.Item("promotion_id") = 1
        drB1.Item("Product") = "B1001"
        drB1.Item("min_p") = 0
        drB1.Item("max_p") = 999.99
        drB1.Item("dis") = 500
        dt.Rows.Add(drB1)

        Dim drB2 As DataRow = dt.NewRow
        drB2.Item("promotion_id") = 2
        drB2.Item("Product") = "B1001"
        drB2.Item("min_p") = 1000
        drB2.Item("max_p") = 4999.99
        drB2.Item("dis") = 1000
        dt.Rows.Add(drB2)

        Dim drB3 As DataRow = dt.NewRow
        drB3.Item("promotion_id") = 3
        drB3.Item("Product") = "B1001"
        drB3.Item("min_p") = 5000
        drB3.Item("max_p") = DBNull.Value
        drB3.Item("dis") = 1500
        dt.Rows.Add(drB3)
        ' End B1001

        ' Start C1001
        Dim drC1 As DataRow = dt.NewRow
        drC1.Item("promotion_id") = 1
        drC1.Item("Product") = "C1001"
        drC1.Item("min_p") = 0
        drC1.Item("max_p") = 1499.99
        drC1.Item("dis") = 500
        dt.Rows.Add(drC1)


        Dim drC2 As DataRow = dt.NewRow
        drC2.Item("promotion_id") = 2
        drC2.Item("Product") = "C1001"
        drC2.Item("min_p") = 1500
        drC2.Item("max_p") = 2999.99
        drC2.Item("dis") = 1000
        dt.Rows.Add(drC2)

        Dim drC3 As DataRow = dt.NewRow
        drC3.Item("promotion_id") = 3
        drC3.Item("Product") = "C1001"
        drC3.Item("min_p") = 3000
        drC3.Item("max_p") = 5999.99
        drC3.Item("dis") = 1500
        dt.Rows.Add(drC3)

        Dim drC4 As DataRow = dt.NewRow
        drC4.Item("promotion_id") = 4
        drC4.Item("Product") = "C1001"
        drC4.Item("min_p") = 6000
        drC4.Item("max_p") = DBNull.Value
        drC4.Item("dis") = 3000
        dt.Rows.Add(drC4)
        ' End C1001
        '------------------
        GridView1.DataSource = dt
        GridView1.DataBind()
        ' -------------------

    End Sub


    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim product_code As String
        Dim price As Decimal
        Dim dis As Decimal
        Dim total As Decimal
        Dim num As Decimal
        Dim sum As Decimal

        If IsNumeric(TextBox1.Text) Then
            price = TextBox1.Text
            price = (Math.Truncate(price * 100)) / 100
            product_code = DropDownList1.SelectedValue

            dis = Calculate(product_code, price)
            num = TextBox5.Text
            sum = price * num
            total = price - dis

            TextBox2.Text = ("" & price * num)
            TextBox3.Text = (" " & dis)
            TextBox4.Text = (" " & sum - dis)
        Else
        End If
    End Sub
    Function Calculate(ByVal product_code As String, ByVal price As Decimal) As Decimal
        Dim dis As Decimal = 0
        For Each dr As DataRow In dt.Rows

            If (dr.Item("Product") = product_code) Then
                If Not dr.Item("max_p").GetType = GetType(Decimal) Then
                    If price >= dr.Item("min_p") Then
                        dis = dr.Item("dis")
                    End If
                Else
                    If price >= dr.Item("min_p") And price <= dr.Item("max_p") Then
                        dis = dr.Item("dis")
                    End If
                End If
            End If
        Next

        Return dis
    End Function


    Protected Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

    End Sub
End Class







ตอบความคิดเห็นที่ : 6 เขียนโดย : การบ้าน เมื่อวันที่ 2017-07-04 11:30:27
รายละเอียดของการตอบ ::
ส่วนของพี่ เดี่ยวขอศึกษาก่อนเเปปนึงนะ 5555+.



ประวัติการแก้ไข
2017-07-05 13:41:25
2017-07-05 13:42:10
2017-07-05 13:42:48
2017-07-05 13:43:25
2017-07-05 13:43:45
2017-07-05 13:44:16
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-07-05 13:37:53 By : NumWhan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : (VB) สอบถาม Code โปรแกรม คำนวณโปรโมชั่นของราคาสินค้า
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่