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.NET รบกวนพี่ๆหน่อยค่า ช่วยเขียนฟังก์ชั่น คิดส่วนลดจากโปรโมชั่น ซึ่งมีสองเงื่อนไขคือใช้ ราคาหา กับใช้ จำนวนชิ้นหา



 

VB.NET รบกวนพี่ๆหน่อยค่า ช่วยเขียนฟังก์ชั่น คิดส่วนลดจากโปรโมชั่น ซึ่งมีสองเงื่อนไขคือใช้ ราคาหา กับใช้ จำนวนชิ้นหา

 



Topic : 128504



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



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




1 /A1001 /4.00 /NULL /50.00 /1
2 /A1001 /1000.00 /2999.99 /250.00 /2
3 /A1001 /3000.00 /NULL /500.00 /2
4 /C1001 /2500.00 /4999.99 /150.00 /2
5 /C1001 /5000.00 /NULL /300.00 /2
6 /C1001 /500.00 /999.99 /50.00 /2
7 /C1002 /1000.00 /3999.99 /100.00 /2



ช่องสุดท้าย เป็นตัวบอกว่า เป็นบาทหรือ เป็นชิ้น 1 ชิ้น / 2 บาท


ตัวโปรแกรมทำงานประมาณว่า เลือก สินค้า ใส่ราคา ใส่จำนวน
พอกดปุ่มคำนวณ ก็จะคิดราคาสินค้าทั้งหมด (ราคา * สินค้า )
เเสดงส่วนลดจากโปรโมชั่น ที่เข้ากับเงื่อนไขนั้น ( เเต่ถ้าสมมุติว่า ซื้อของ A1001 1000 บาท 4 ชิ้น มันจะตรงกับ 2 โปรโมชั่น ให้เอาส่วนลด บวกกันเลย)
จากนั้นเเสดง จำนวณเงินที่ต้องชำระ (สินค้าทั้งหมด -ส่วนลด)



Code ที่เราทำได้เเบบมึนๆ = =

Code (VB.NET)
 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click



        Dim product_code As String = product.SelectedItem.Value
        Dim price As Decimal = txt_price.Text
        Dim unit As Decimal = txt_NumProduct.Text
        Dim PriceIncludes As Decimal = price * unit
     Dim dis As String = Calculate(product_code, PriceIncludes, unit)
            Dim total As Decimal = PriceIncludes - dis
            price = (Math.Truncate(price * 100)) / 100

            If IsNumeric(txt_price.Text) Then
                TextBox2.Text = ("" & PriceIncludes)
                TextBox3.Text = (" " & dis)
                TextBox4.Text = (" " & total)

     
        End If


    End Sub



อันนี้เราลองแก้จากโค้ดที่ไปเจอมา ทำได้แล้วค่ะ เเต่มันจะมีกรณีที่ ส่วนลด ซ้ำกันอยู่ นั่นคือเงื่อนไขที่ว่า
เเต่ถ้าว่า ซื้อของ A1001 1000 บาท 4 ชิ้น มันจะตรงกับ 2 โปรโมชั่น ให้เอาส่วนลด บวกกันเลย นั่นคือเอา 250 +50)
Code (VB.NET)
Function Calculate(ByVal product_code As String, ByVal PriceIncludes As Decimal, ByVal Unit As Decimal) As Decimal


        Dim dis As Decimal = 0
        Dim dt As New DataTable
        Dim sqlconn As New OleDbConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
        Dim reader As OleDbDataReader
        Dim comm As New StringBuilder
        comm.Append(" select discount ")
        comm.Append(" from promotion ")
        comm.Append(" where product = ? ")
        comm.Append(" and ( ( minmax_type_id = '2' and ((min_price <=  ? )  and  (isnull(max_price,9999999 ) >=  ?)))")
        comm.Append(" or( minmax_type_id = '1' and ((min_price <=   ? )  and  (isnull(max_price,9999999 ) >= ?)) ) ) ")


        Dim OleComm As New OleDbCommand(comm.ToString, sqlconn)
        OleComm.Parameters.AddWithValue("@00", product_code)
        OleComm.Parameters.AddWithValue("@01", PriceIncludes)
        OleComm.Parameters.AddWithValue("@02", PriceIncludes)
        OleComm.Parameters.AddWithValue("@03", Unit)
        OleComm.Parameters.AddWithValue("@04", Unit)


        sqlconn.Open()
        reader = OleComm.ExecuteReader(CommandBehavior.CloseConnection)
        If reader.HasRows Then
            dt.Load(reader)
            dis = dt.Rows(0).Item("discount")
        End If
        'Dim a As New Page4
        'a.MinMax()


        Return dis


    End Function





Error message : Additional information: Command text was not set for the command object.



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









ประวัติการแก้ไข
2017-08-07 14:32:33
2017-08-07 14:35:03
2017-08-07 14:42:24
2017-08-07 15:24:01
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-08-07 14:27:23 By : NumWhan View : 1217 Reply : 1
 

 

No. 1

Guest


[img=what\'s table]https://www.thaicreate.com/upload/stock/20170811170840.png[/img]
ข้อมูลชุดแรกที่ให้มา แต่ละช่องคือค่าอะไรครับ ?






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-11 17:39:48 By : tester
 

   

ค้นหาข้อมูล


   
 

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