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

HOME > .NET Framework > Forum > แจก : ระบบขายสินค้า พัฒนาด้วยภาษา C# ฐานข้อมูล Access


 

[.NET] แจก : ระบบขายสินค้า พัฒนาด้วยภาษา C# ฐานข้อมูล Access

 
Topic : 122968



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



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



แจก : ระบบขายสินค้า พัฒนาด้วยภาษา C# ฐานข้อมูล Access

ใช่ภาษา C# Tools ที่ใช้ Visual Studio 2010 (สูงกว่า 2010 ก็สามารถเปิดได้ครับ)

แจกระบบขายสินค้า มีฟังก์ชันการทำงานดังต่อไปนี้
1.สามารถ Login เพื่อเข้าสู่ระบบได้ (username : test ,password : test)
2.สามารถ จัดการพนักงานได้
3.สามารถ จัดการสินค้าได้
4.สามารถ จัดการประเภทสินค้าได้
5.สามารถ ซื้อสินค้าและตัดสต๊อกอัตโนมัติได้
6.สามารถ ขายสินค้าและตัดสต๊อกอัตโนมัติได้
7.สามารถ ออกรายงานการซื้อสินค้าได้
8.สามารถ ออกรายงานการขายสินค้าได้

ท่านสามารถเอาไปศึกษาหรือนำไปพัฒนาต่อได้ตามสบายนะครับ

Download : ShoeSystem.rar



Tag : .NET, Ms Access, Crystal Report, Win (Windows App), C#, VS 2010 (.NET 4.x)



ประวัติการแก้ไข
2016-05-18 01:07:33
2016-05-18 01:09:00
2016-05-18 01:10:30
2016-05-18 01:17:59
2016-06-17 19:03:21
2016-06-20 22:50:27
2016-06-20 22:50:47
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-06-13 01:06:55 By : bigsuntat View : 35508 Reply : 42
 

 

No. 1



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



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


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-18 08:25:19 By : lamaka.tor
 

 

No. 2



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

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

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

เปลี่ยน Path ของรูปด้วยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-05-18 09:11:33 By : mr.win
 

 

No. 3



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



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


แก้ไขไม่ได้แล้วอะครับ ระบบแจ้งว่า กระทู้ เกิน 7 วันแก้ไขไม่ได้ T^T ขอโทษด้วยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-16 03:27:15 By : bigsuntat
 

 

No. 4



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

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

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

ผมขยายวันให้แล้วครับ เข้าไปเปลี่ยนรูปด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-16 09:19:04 By : mr.win
 

 

No. 5

Guest


Database อยู่ที่ไหนคะรบกวนผู้รู้ช้วยแจ้งด้วยค่ะ หาไม่เจอจริงๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-17 23:31:08 By : เมย์
 

 

No. 6



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



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


bin/debug ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-18 03:47:17 By : bigsuntat
 

 

No. 7

Guest


โหลดแล้วทำไม เป็น C#
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-20 15:14:54 By : ตุ้ม
 

 

No. 8



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



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


ขอเบอร์โทรติดต่อผู้เขียนโปรแกรมหน่อยครับ inbox มาก็ได้
ถ้าทดสอบระบบใช้งานได้ดี ผมจะเขียนระบบงานซ่อม + เข้าไปอีก อาจจะต้องขอคำปรึกษา ผมมีค่าขนมให้เล็กๆ น้อยๆ ครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-20 15:15:06 By : prachaporn
 

 

No. 9



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



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


โหลดไม่ได้ คร้าบบ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-20 20:39:01 By : keegee1995
 

 

No. 10



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



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


ขอโทษครับ ผิด แก้เป็น C# แล้วครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-20 22:51:09 By : bigsuntat
 

 

No. 11



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : prachaporn เมื่อวันที่ 2016-06-20 15:15:06
รายละเอียดของการตอบ ::
ให้ ID LINE ใน PM แล้วครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-20 22:51:55 By : bigsuntat
 

 

No. 12



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



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : keegee1995 เมื่อวันที่ 2016-06-20 20:39:01
รายละเอียดของการตอบ ::
โหลดได้นะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-20 22:52:09 By : bigsuntat
 

 

No. 13

Guest


พอดีมีงานด่วนเข้ามาเป็นระบบ POS Supper Express

คุณสมบัติของโปรแกรม
Quote:
ระบบงาน POS ร้านขายเมล็ดพันธ์และปุ๋ยเคมีและอุปกรณ์ทางการเกษตร
โจทย์ที่ยาก คือการ Down size ให้เล็กที่สุดและใช้งานง่ายที่สุด
สิ่งที่มี
-หน้าจอ Login (มีเป็นพิธี)
-ขายหน้าร้าน
--- ขายเงินสด/ขายเงินเชื่อ
------ยิงบาร์โค๊ด คิดเงิน พิมพ์ใบเสร็จอย่างย่อ
-รายงานไม่เกิน 4 ตัว


สิ่งที่ไม่มีแน่นอน
-ไม่รองรับลิ้นชักเก็บเงิน
-ไม่รองรับทัชสกรีน (Touch screen)
-ตัดสต๊อคทันที ไม่รองรับยังไม่ตัดสต๊อค
-ไม่รองรับภาษีขาย และคำนวณต้นทุน
-ไม่รองรับ รับ/คืน เงินมัดจำ
-etc.. อทิเช่น ไม่รองรับกะ, Stand Alone.



แผนการพัฒนา
1. ระยะเวลา 3 วัน
2. Database SQLite
3. Windows Form (ในอนาคตจะเป็น Web App)
4. ภาษาที่ใช้พัฒนา VB.NET (อาจจะมี C# ปะปนบ้าง)
...

วันนี้เป็นวันแรกที่เริ่มพัฒนา
PO_Express_01

POSExpress_03

POSExpress_02


Source Code ตัวอย่าง
usrCtrlTextBox.vb
Code (VB.NET)
001.Imports System.Drawing
002.Imports System.Windows.Forms
003.'
004.<ToolboxBitmap(GetType(TextBox))> _
005.Public Class usrCtrlTextBox : Inherits TextBox
006. 
007.    Public Enum TextBoxDisplayManager As Byte
008.        TextCharacter = 0
009.        TextNumber = 1
010.        TextInteger = 2
011.    End Enum
012. 
013.    Public Enum TextBoxDisplayPrecisionScale As Byte
014.        None = 0
015.        One = 1
016.        Two = 2
017.        Tree = 3
018.        Four = 4
019.        Five = 5
020.        Six = 6
021.        Seven = 7
022.        Eight = 8
023.        Nine = 9
024.        Ten = 10
025.    End Enum
026. 
027.    Public Enum TextBoxDisplayOnEnterMoveNext As Byte
028.        Yes
029.        No
030.    End Enum
031. 
032.    Public Enum TextBoxDisplayIsEnabledBinding As Byte
033.        Yes
034.        No
035.    End Enum
036. 
037. 
038.#Region "    Variables "
039. 
040.    Private _DisplayManager As TextBoxDisplayManager
041.    Private _DisplayPrecisionScale As TextBoxDisplayPrecisionScale
042.    Private _DisplayOnEnterMoveNext As TextBoxDisplayOnEnterMoveNext
043.    Private _DisplayIsEnabledBinding As TextBoxDisplayIsEnabledBinding
044. 
045.#End Region
046. 
047. 
048.#Region "    Properties "
049.    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayManager), "TextCharacter"), System.ComponentModel.Category("Appearance")> _
050.    Public Property DisplayManager() As TextBoxDisplayManager
051.        Get
052.            Return _DisplayManager
053.        End Get
054.        Set(ByVal value As TextBoxDisplayManager)
055.            _DisplayManager = value
056.            If Me._DisplayManager = TextBoxDisplayManager.TextNumber Then
057.                MyBase.TextAlign = HorizontalAlignment.Right
058.            End If
059.        End Set
060.    End Property
061. 
062.    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayPrecisionScale), "None"), System.ComponentModel.Category("Appearance")> _
063.    Public Property DisplayPrecisionScale() As TextBoxDisplayPrecisionScale
064.        Get
065.            Return _DisplayPrecisionScale
066.        End Get
067.        Set(ByVal Value As TextBoxDisplayPrecisionScale)
068.            _DisplayPrecisionScale = Value
069.            If Me._DisplayManager = TextBoxDisplayManager.TextNumber Then
070.                MyBase.TextAlign = HorizontalAlignment.Right
071.                Dim dblSubMybaseText As Double
072.                If String.IsNullOrEmpty(MyBase.Text) OrElse Not IsNumeric(MyBase.Text) Then
073.                    dblSubMybaseText = 0
074.                Else
075.                    dblSubMybaseText = CDbl(MyBase.Text)
076.                End If
077.                Select Case Me._DisplayPrecisionScale
078.                    Case TextBoxDisplayPrecisionScale.One
079.                        MyBase.Text = String.Format("{0:N1}", dblSubMybaseText)
080.                    Case TextBoxDisplayPrecisionScale.Two
081.                        MyBase.Text = String.Format("{0:N2}", dblSubMybaseText)
082.                    Case TextBoxDisplayPrecisionScale.Tree
083.                        MyBase.Text = String.Format("{0:N3}", dblSubMybaseText)
084.                    Case TextBoxDisplayPrecisionScale.Four
085.                        MyBase.Text = String.Format("{0:N4}", dblSubMybaseText)
086.                    Case TextBoxDisplayPrecisionScale.Five
087.                        MyBase.Text = String.Format("{0:N5}", dblSubMybaseText)
088.                    Case TextBoxDisplayPrecisionScale.Six
089.                        MyBase.Text = String.Format("{0:N6}", dblSubMybaseText)
090.                        'More...
091.                        'More...
092.                        'More...
093.                    Case TextBoxDisplayPrecisionScale.None
094.                        MyBase.Text = String.Format("{0:N0}", dblSubMybaseText)
095.                End Select
096.            End If
097.        End Set
098.    End Property
099. 
100.    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayOnEnterMoveNext), "Yes"), System.ComponentModel.Category("Appearance")> _
101.    Public Property DisplayOnEnterMoveNext() As TextBoxDisplayOnEnterMoveNext
102.        Get
103.            Return _DisplayOnEnterMoveNext
104.        End Get
105.        Set(ByVal value As TextBoxDisplayOnEnterMoveNext)
106.            _DisplayOnEnterMoveNext = value
107.        End Set
108.    End Property
109. 
110.    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayIsEnabledBinding), "Yes"), System.ComponentModel.Category("Appearance")> _
111.    Public Property DisplayIsEnabledBinding() As TextBoxDisplayIsEnabledBinding
112.        Get
113.            Return _DisplayIsEnabledBinding
114.        End Get
115.        Set(ByVal value As TextBoxDisplayIsEnabledBinding)
116.            _DisplayIsEnabledBinding = value
117.        End Set
118.    End Property
119. 
120.#End Region
121. 
122. 
123.#Region "    Constructor "
124. 
125.    Public Sub New()
126.    End Sub
127. 
128.#End Region
129. 
130.    'Protected Overrides Sub OnBindingContextChanged(ByVal e As System.EventArgs)
131.    '    MyBase.OnBindingContextChanged(e)
132.    'End Sub
133. 
134.    Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
135.        If Me._DisplayManager = TextBoxDisplayManager.TextNumber Then
136.            If e.KeyChar < "0" Or e.KeyChar > "9" Then
137.                If AscW(e.KeyChar) = Keys.Back Then
138.                    e.Handled = False
139.                Else
140.                    If e.KeyChar = "." And MyBase.Text.Contains(".") = False Then
141.                        e.Handled = False
142.                    ElseIf e.KeyChar = "-" And MyBase.Text.Contains("-") = False Then
143.                        e.Handled = False
144.                    Else
145.                        e.Handled = True
146.                    End If
147.                End If
148.            End If
149.        ElseIf Me._DisplayManager = TextBoxDisplayManager.TextInteger Then
150.            If e.KeyChar < "0" Or e.KeyChar > "9" Then
151.                If AscW(e.KeyChar) = Keys.Back Then    'Backspace
152.                    e.Handled = False
153.                Else
154.                    e.Handled = True
155.                End If
156.            End If
157.        End If
158.        If AscW(e.KeyChar) = Keys.Enter AndAlso _DisplayOnEnterMoveNext = TextBoxDisplayOnEnterMoveNext.Yes Then
159.            SendKeys.Send("{TAB}")
160.        End If
161.    End Sub
162. 
163.    Protected Overrides Sub OnEnter(ByVal e As System.EventArgs)
164.        MyBase.SelectionStart = 0
165.        MyBase.SelectionLength = MyBase.Text.Length
166.    End Sub
167. 
168.    Protected Overrides Sub OnValidating(ByVal e As System.ComponentModel.CancelEventArgs)
169.        If Me._DisplayManager = TextBoxDisplayManager.TextNumber Then
170.            Dim dblSubMybaseText As Double
171.            If String.IsNullOrEmpty(MyBase.Text) OrElse Not IsNumeric(MyBase.Text) Then
172.                dblSubMybaseText = 0
173.            Else
174.                dblSubMybaseText = CDbl(MyBase.Text)
175.            End If
176.            Select Case Me._DisplayPrecisionScale
177.                Case TextBoxDisplayPrecisionScale.One
178.                    MyBase.Text = String.Format("{0:N1}", dblSubMybaseText)
179.                Case TextBoxDisplayPrecisionScale.Two
180.                    MyBase.Text = String.Format("{0:N2}", dblSubMybaseText)
181.                Case TextBoxDisplayPrecisionScale.Tree
182.                    MyBase.Text = String.Format("{0:N3}", dblSubMybaseText)
183.                Case TextBoxDisplayPrecisionScale.Four
184.                    MyBase.Text = String.Format("{0:N4}", dblSubMybaseText)
185.                Case TextBoxDisplayPrecisionScale.Five
186.                    MyBase.Text = String.Format("{0:N5}", dblSubMybaseText)
187.                Case TextBoxDisplayPrecisionScale.Six
188.                    MyBase.Text = String.Format("{0:N6}", dblSubMybaseText)
189.                Case TextBoxDisplayPrecisionScale.Seven
190.                    MyBase.Text = String.Format("{0:N7}", dblSubMybaseText)
191.                Case TextBoxDisplayPrecisionScale.Eight
192.                    MyBase.Text = String.Format("{0:N8}", dblSubMybaseText)
193.                Case TextBoxDisplayPrecisionScale.Nine
194.                    MyBase.Text = String.Format("{0:N9}", dblSubMybaseText)
195.                Case TextBoxDisplayPrecisionScale.Ten
196.                    MyBase.Text = String.Format("{0:N10}", dblSubMybaseText)
197.                Case Else
198.                    MyBase.Text = String.Format("{0:N0}", dblSubMybaseText)
199.            End Select
200.        End If
201.    End Sub
202. 
203.    'ปิดเสียง ปี๊ด เมื่อกดปุ่ม Enter
204. 
205.    'Private Sub SetBeepOff(ByVal senser As Control, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
206.    '    If e.KeyCode = Keys.Enter Then
207.    '        e.SuppressKeyPress = True
208.    '        SendKeys.Send("{Tab}")
209.    '    End If
210.    'End Sub
211. 
212.    'Protected Overrides Sub OnBindingContextChanged(ByVal e As System.EventArgs)
213.    '    MyBase.OnBindingContextChanged(e)
214.    'End Sub
215.End Class


More...
More...
More...


ปล. ค่าพัฒนาในเบื้องต้น 10,000 บาท (จ่ายเงินสดเต็มจำนวนล่วงหน้า)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-21 16:04:15 By : หน้าฮี
 

 

No. 14



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



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


ตอบความคิดเห็นที่ : 13 เขียนโดย : หน้าฮี เมื่อวันที่ 2016-06-21 16:04:15
รายละเอียดของการตอบ ::
คุณหน้าฮี จ้างผม หรอว่าไงครับผม งง ถ้าจ้างก็ รบกวน แจ้ง เบอร์โทร หรือ ID LINE ทาง PM ด้วยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-21 17:22:59 By : bigsuntat
 

 

No. 15

Guest


@คุณ bigsuntat

ผมรับงานมาตั้งแต่ต้นเดือน ตอนแรกผมกะว่าจะจ้างทำ
แต่หาโปรแกรมเมอร์ที่รู้ใจยาก (ผมเป็นคนเอาแต่ใจ)

วันนี้ผมลองทำเอง (ตอนเริ่มต้นขลุกขลักพอสมควร สักพักหนึ่งก็ลื่นไหล)
ถ้าไม่มีอะไรผิดพลาด วันพรุ่งนี้น่าจะเสร็จสมบูรณ์ ผมหวังให้เป็นเช่นนั้น


ปล. ในการ Down size โปรแกรมลงมา ผมมีเหตุผลและความจำเป็นหลายฯอย่าง อธิบายไปมันก็ยืดยาวครับ

ผมวางโครงและ Layout เสร็จหมดแล้ว เหลือแต่เขียนโค๊ดอีกนิดหน่อย
POSExpress_04
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-21 21:53:56 By : หน้าฮี
 

 

No. 16

Guest


จาก #NO15 อันนี้คือ Source Code ของจริงในหน้าจอหลักที่ผมใช้
Code (VB.NET)
01.Public Class frmMain
02.    '
03.    'initial variable and object
04.    '   
05.    Private tmpUserControl As New UserControl()
06.    Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
07.        Dim usrCtrFrmMain As New usrCtrMain
08. 
09.        btnFirstArticle.ForeColor = Color.Cyan
10.        btnFirstArticle.ForeColor = Color.Cyan
11.        btnFirstArticle.FlatAppearance.BorderSize = 1
12. 
13.        btnFirstArticle.Focus()
14. 
15.        pnlMenuDetail.Controls.Add(usrCtrFrmMain)
16. 
17.        usrCtrFrmMain.Dock = DockStyle.Fill
18. 
19.        stsMessage.Text = btnFirstArticle.Text      'บทนำ
20.        timerInterval.Enabled = True
21.        timerInterval.Interval = 1000
22.        stsDateTime.Text = String.Format("{0:dd MMMM yyyy HH:mm:ss}", Now)
23.        btnClose.ForeColor = Color.White
24.        stsUser.Text = "Admin" 'User Login
25.    End Sub
26.    'ออกจากโปรแกรม (ปุ่ม X ด้านบน)
27.    Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
28.        EndProgram()
29.    End Sub
30.    'ออกจากโปรแกรม (คลิ๊กปุ่ม Close ด้านล่างซ้าย)
31.    Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
32.        EndProgram()
33.    End Sub
34.    Private Sub mainMenuControl_Enter(sender As Object, e As EventArgs) Handles btnCustomer.Enter, btnProduct.Enter, btnSales.Enter, btnMaster.Enter, btnAdmin.Enter, btnFirstArticle.Enter
35.        Dim btnMenu As Button = DirectCast(sender, Button)
36.        For Each ctrl As Control In pnlMenuMain.Controls
37.            If TypeOf ctrl Is Button Then
38.                CType(ctrl, Button).FlatAppearance.BorderSize = 0
39.                ctrl.ForeColor = System.Drawing.Color.White
40.            End If
41.        Next
42.        btnClose.ForeColor = System.Drawing.Color.White
43.        pnlMenuDetail.Controls.Clear()
44.        Select Case btnMenu.Name
45.            Case "btnCustomer"
46.                tmpUserControl = New usrCtrCustomer
47.            Case "btnProduct"
48.                tmpUserControl = New usrCtrProduct
49.            Case "btnSales"
50.                tmpUserControl = New usrCtrSales
51.            Case "btnMaster"
52.                'xxx
53.            Case "btnAdmin"
54.                'xxx
55.            Case "btnFirstArticle"
56.                tmpUserControl = New usrCtrMain
57.        End Select
58. 
59.        btnMenu.ForeColor = Color.Cyan
60.        btnMenu.FlatAppearance.BorderSize = 1
61. 
62.        picPrefix.Location = New Point(0, btnMenu.Location.Y + 10)
63.        stsMessage.Text = btnMenu.Text
64. 
65.        Try           
66.            pnlMenuDetail.Controls.Add(tmpUserControl)
67.            tmpUserControl.Dock = System.Windows.Forms.DockStyle.Fill
68.        Catch ex As Exception
69.            'Logger
70.        End Try
71.    End Sub
72.    Private Sub EndProgram()
73.        Me.Dispose()
74.        End
75.    End Sub
76.End Class

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-21 22:03:56 By : หน้าฮี
 

 

No. 17

Guest


จาก #NO16

ตั้งใจจะเข้านอนตอนตี 4 แต่เมียบอกว่า "มันดึกแล้วนะ เข้านอนได้แล้ว"
--- ความตั้งใจและอุปสรรคมันมาพร้อมกันเสมอ

แก้ไขโค๊ด
บรรทัดที่ 10 มันเกินมาหนึ่งบรรทัด

บรรทัดที่ 36-41 เปลี่ยนเป็น LINQ + LAMPDA ดังนี้
Code (VB.NET)
1.pnlMenuMain.Controls.OfType(Of Button)().ToList().ForEach(Sub(x)
2.                                                              x.FlatAppearance.BorderSize = 0
3.                                                              x.ForeColor = Color.White
4.                                                          End Sub)




Good night

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-21 23:06:37 By : หน้าฮี
 

 

No. 18

Guest


จาก #NO16-17

ตื่นขึ้นมาแต่เช้า มานั่งเกลาโค๊ดเล่นฯ (เกลาไข่เล่นแล้วมันทั้งแสบมันทั้งเสียว วาบวาบวาบ)

Completed Source code
Code (VB.NET)
01.Public Class frmMain
02.    '
03.    'initial variable and object
04.    '  
05.    Public strUserLoginCode As String = String.Empty
06.    Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
07. 
08.        btnFirstArticle.ForeColor = Color.Cyan
09.        btnFirstArticle.FlatAppearance.BorderSize = 1
10. 
11.        btnFirstArticle.Focus()
12. 
13.        pnlMenuDetail.Controls.Add(New usrCtrMain With {.Dock = DockStyle.Fill})
14. 
15.        stsMessage.Text = btnFirstArticle.Text      'บทนำ
16.        timerInterval.Enabled = True
17.        timerInterval.Interval = 1000
18.        stsDateTime.Text = String.Format("{0:dd MMMM yyyy HH:mm:ss}", Now)
19.        btnClose.ForeColor = Color.White
20.        stsUser.Text = strUserLoginCode  '"Admin" User Login
21.    End Sub
22.    'ออกจากโปรแกรม (ปุ่ม X ด้านบน)
23.    Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
24.        EndProgram()
25.    End Sub
26.    'ออกจากโปรแกรม (คลิ๊กปุ่ม Close ด้านล่างซ้าย)
27.    Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
28.        EndProgram()
29.    End Sub
30.    Private Sub mainMenuControl_Enter(sender As Object, e As EventArgs) Handles btnCustomer.Enter, btnProduct.Enter, btnSales.Enter, btnMaster.Enter, btnAdmin.Enter, btnFirstArticle.Enter
31.        Dim btnMenu As Button = DirectCast(sender, Button)
32. 
33.        pnlMenuMain.Controls.OfType(Of Button)().ToList().ForEach(Sub(x)
34.                                                                      x.FlatAppearance.BorderSize = 0
35.                                                                      x.ForeColor = Color.White
36.                                                                  End Sub)
37.        btnClose.ForeColor = System.Drawing.Color.White
38.        pnlMenuDetail.Controls.Clear()
39. 
40.        btnMenu.ForeColor = Color.Cyan
41.        btnMenu.FlatAppearance.BorderSize = 1
42. 
43.        picPrefix.Location = New Point(0, btnMenu.Location.Y + 10)
44.        stsMessage.Text = btnMenu.Text
45. 
46.        Try
47.            pnlMenuDetail.Controls.Add(AddUserControlByName("usrCtr" & btnMenu.Name.Substring(3)))
48.            pnlMenuDetail.Controls(0).Dock = DockStyle.Fill
49.        Catch ex As Exception
50.            'Logger
51.        End Try
52.    End Sub
53. 
54.    'Used System.Reflection
55.    Private Function AddUserControlByName(ByVal ctrlName As String) As Control
56.        'POS  == Root namespace (Project --> Property --> Application)
57.        Return Activator.CreateInstance(System.Reflection.Assembly.GetExecutingAssembly.GetType("POS" & "." & ctrlName))
58.    End Function
59. 
60.    Private Sub EndProgram()
61.        Me.Dispose()
62.        End
63.    End Sub
64.End Class

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-22 08:43:08 By : หน้าฮี
 

 

No. 19



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



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


ตอบความคิดเห็นที่ : 15 เขียนโดย : หน้าฮี เมื่อวันที่ 2016-06-21 21:53:56
รายละเอียดของการตอบ ::
เห็นน้องแมว น้องหมา คิดถึงแมวที่บ้านเลยครับ แมวตัวใหญ่มาก น่ากอดมากอ่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-22 11:53:39 By : taotechnocom
 

 

No. 20

Guest


@คุณ TaoZaZa

ที่เห็นอยู่ในรูป คน/มนุษย์ เอามาปล่อยทิ้งทั้งนั้นครับ
แมว เป็นแมววัดผมจับเอามาเลี้ยง (บนบ้านยังมีอยู่อีกหลายตัว)
บางตัวก็มีคนเอามาปล่อยทิ้งเอาไว้หน้าบ้านของผม

หมา เป็นหมาวัดผมจับเอามาเลี้ยง (หน้าบานยังมีอีกหลายตัว)
บางตัวโดนรถชน บางตัวโดนคนตี จนขาหน้า/ขาหลังพิการ

ผมต้องทำกรงอย่างดี ทำล้อเข็นหมาพิการอย่างดีให้พวกมัน (ทุกคนทำได้ทั้งนั้นแต่มีเวลาทำกันทุกฯคนหรือไม่?)
ว่างฯ ผมจะถ่ายรูปมาให้ดูครับ


วกกลับมาเรื่องโปรแกรมมิ่ง สำหรับโปรแกรมเมอร์ การเขียนโปรแกรมมันไม่ยากหรอก แต่การเป็นศิลปินโปรแกรมมิ่ง
มันคงยากสำหรับใครบางคนแน่นอน

Update Program (ทุกฯอย่างมันอยู่ในหัวสมองของผมหมดรอเวลาเมื่อไหร่ผมถึงจะนำมันออกมาใช้เท่านั้นเอง)
POSExpress_05
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-22 14:27:48 By : หน้าฮี
 

 

No. 21



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



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


ตอบความคิดเห็นที่ : 20 เขียนโดย : หน้าฮี เมื่อวันที่ 2016-06-22 14:27:48
รายละเอียดของการตอบ ::
ติดตามทั้งโปรแกรม และรูปน้องหมาและน้องแมวครับ ส่วนตัวผมเก็บมาเลี้ยงอยู่ 2 ตัวบวกกับที่เลี้ยงอยู่แล้ว 2 ตัว เป็น 4ตัว ตอนนี้อ้วนพุงพุ้ยกันหมดเลย ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-22 14:47:13 By : taotechnocom
 

 

No. 22

Guest


Update Program แฟ้มประวัติลูกหนี้ (ลูกค้า)

Heading
POSExpress_06

Detail
POSExpress_07

Source code เทียบเท่าของจริง
Code (VB.NET)
001.Public Class usrCtrCustomer
002.    Private bsCustomer As New BindingSource
003.    Private Sub usrCtrCustomer_Load(sender As Object, e As EventArgs) Handles Me.Load
004.        'C# Generic List of anonymous types
005.        'var cboTestData = new[] { new { ID = "01", Name = "ลูกหนี้การค้า" },
006.        '                          new { ID = "02", Name = "หน่วยงานราชการ" }
007.        '                        };
008.        Dim cboTestData = {New With {.ID = "00", Key .Name = "ไม่ระบุ"},
009.                           New With {.ID = "01", Key .Name = "ลูกหนี้การค้า"},
010.                           New With {.ID = "02", Key .Name = "หน่วยงานราชการ"},
011.                           New With {.ID = "03", Key .Name = "อื่นฯ"}
012.                           }
013.        cboARTCode.DataSource = cboTestData
014.        cboARTCode.DisplayMember = "Name"
015.        cboARTCode.ValueMember = "ID"
016.        Dim img As Image = Image.FromFile(Application.StartupPath & "\..\..\Images\WomanAlert.png")
017.        Dim img2 As Image = Image.FromFile(Application.StartupPath & "\..\..\Images\WomanExtentSame.png")
018.        Dim lstCust = {New With {.ARCode = "01", .ARName = "ABC", .ARAdd1 = "เชียงใหม่", .BackList = img, .ARCR = 30},
019.                       New With {.ARCode = "02", .ARName = "DEF", .ARAdd1 = "ลำปาง", .BackList = img2, .ARCR = 0},
020.                       New With {.ARCode = "03", .ARName = "GHK", .ARAdd1 = "ลำพูน", .BackList = img, .ARCR = 0},
021.                       New With {.ARCode = "04", .ARName = "XYT", .ARAdd1 = "สงขลา", .BackList = img, .ARCR = 90},
022.                       New With {.ARCode = "05", .ARName = "XYZ", .ARAdd1 = "ยะลา", .BackList = img, .ARCR = 0},
023.                       New With {.ARCode = "06", .ARName = "หมู", .ARAdd1 = "เชียงใหม่", .BackList = img, .ARCR = 30},
024.                       New With {.ARCode = "07", .ARName = "หมา", .ARAdd1 = "ลำปาง", .BackList = img, .ARCR = 0},
025.                       New With {.ARCode = "08", .ARName = "กา", .ARAdd1 = "ลำพูน", .BackList = img, .ARCR = 0},
026.                       New With {.ARCode = "09", .ARName = "ไก่", .ARAdd1 = "สงขลา", .BackList = img, .ARCR = 90},
027.                       New With {.ARCode = "10", .ARName = "แมว", .ARAdd1 = "ยะลา", .BackList = img, .ARCR = 0}
028.                       }.ToList()
029.        bsCustomer.DataSource = lstCust
030.        SetDGVInfo(bsCustomer)
031.    End Sub
032.    Private Sub SetDGVInfo(ByVal bs As BindingSource)
033.        dgvCust.AutoGenerateColumns = False
034.        Dim imgCol As New DataGridViewImageColumn
035.        imgCol.HeaderText = String.Empty
036.        imgCol.Width = 40
037.        imgCol.ImageLayout = DataGridViewImageCellLayout.Zoom
038.        dgvCust.Columns.Insert(0, imgCol)
039.        dgvCust.DataSource = bs
040.        dgvCust.Columns(0).DataPropertyName = "BackList"
041.        dgvCust.Columns(1).DataPropertyName = "ARCode"
042.        dgvCust.Columns(2).DataPropertyName = "ARName"
043.        dgvCust.Columns(3).DataPropertyName = "ARAdd1"
044.        dgvCust.Columns(6).DataPropertyName = "ARCR"
045.    End Sub
046.    Private Sub tsbAdd_Click(sender As Object, e As EventArgs) Handles tsbAdd.Click
047.        Actions("A")
048.        txtARCode.Enabled = True
049.        txtARCode.Focus()
050.    End Sub
051.    Private Sub tsbEdit_Click(sender As Object, e As EventArgs) Handles tsbEdit.Click
052.        If dgvCust.SelectedRows.Count = 0 Then
053.            MessageBox.Show("กรุณาเลือกระเบียนในตารางด้านล่าง เพื่อแก้ไขข้อมูล", "คำเตือน", MessageBoxButtons.OK)
054.            Exit Sub
055.        Else
056.            Actions("E")
057.            txtARCode.Enabled = False
058.            txtARName.Focus()
059.        End If
060.    End Sub
061.    Private Sub tsbBack_Click(sender As Object, e As EventArgs) Handles tsbBack.Click
062.        BacktoPanelHead()
063.    End Sub
064.    Private Sub BacktoPanelHead()
065.        pnlDetail1.Visible = False
066.        pnlHead.Visible = True
067.        pnlDetail1.Dock = DockStyle.Bottom
068.        pnlHead.Dock = DockStyle.Fill
069.    End Sub
070.    Private Sub dgvCust_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvCust.CellDoubleClick
071.        Actions("E")
072.    End Sub
073.    Private Sub Actions(ByVal mode As String)
074.        pnlDetail1.Visible = True
075.        pnlHead.Visible = False
076.        pnlDetail1.Dock = DockStyle.Fill
077.        pnlHead.Dock = DockStyle.None
078.        lblActions.Text = If(mode = "A", "เพิ่มข้อมูล", "แก้ไขข้อมูล")
079.        If mode = "E" Then
080.            Dim objARMas = DirectCast(bsCustomer, IEnumerable).OfType(Of Object)().ToList().Find(Function(c) c.ARCode = dgvCust.SelectedRows(0).Cells("ARCode").Value)
081.            If objARMas IsNot Nothing Then
082.                txtARCode.Text = objARMas.ARCode
083.                txtARName.Text = objARMas.ARName
084.                txtARAdd1.Text = objARMas.ARAdd1
085.                cboARTCode._Text = "อื่นฯ"
086.                cboARTCode._Key = "03"
087.                cboARTCode.SelectedValue = "03"
088.            End If
089.        Else
090.            'Reset All TextBox/ComboBox/etc...
091.            mduControlManager.GetAllControl(pnlDetail1, GetType(WL_Controls.usrCtrlTextBox)).ToList().ForEach(Sub(x) DirectCast(x, WL_Controls.usrCtrlTextBox).ResetValue())
092.            mduControlManager.GetAllControl(pnlDetail1, GetType(WL_Controls.usrCtrComboBox)).ToList().ForEach(Sub(x) DirectCast(x, WL_Controls.usrCtrComboBox).ResetValue())
093.        End If
094.    End Sub
095.    Private Sub tsbSave_Click(sender As Object, e As EventArgs) Handles tsbSave.Click, tsbSaveClear.Click, tsbSaveClose.Click
096.        Dim sd As ToolStripButton = DirectCast(sender, ToolStripButton)
097.        Select Case ValidateData()
098.            Case "ARCode"
099.                txtARCode.Focus()
100.                Exit Sub
101.            Case "ARName"
102.                txtARName.Focus()
103.                Exit Sub
104.        End Select
105.        Select Case sd.Name.Substring(sd.Name.Length - 4)
106.            Case "Save" 'Save
107.            Case "lear" 'Save Clear
108.                mduControlManager.GetAllControl(pnlDetail1, GetType(WL_Controls.usrCtrlTextBox)).ToList().ForEach(Sub(x) DirectCast(x, WL_Controls.usrCtrlTextBox).ResetValue())
109.                mduControlManager.GetAllControl(pnlDetail1, GetType(WL_Controls.usrCtrComboBox)).ToList().ForEach(Sub(x) DirectCast(x, WL_Controls.usrCtrComboBox).ResetValue())
110.            Case "lose" 'Save Close
111.                BacktoPanelHead()
112.        End Select
113.        '
114.        'Save to database
115.        '
116.        MessageBox.Show("บันทึกข้อมูลเรียบร้อยแล้ว")
117.    End Sub
118.    Private Sub txtARCode_KeyUp(sender As Object, e As KeyEventArgs) Handles txtARCode.KeyUp, txtARName.KeyUp
119.        ValidateData()
120.    End Sub
121.    Private Sub txtARName_Leave(sender As Object, e As EventArgs) Handles txtARCode.Leave, txtARName.Leave
122.        ValidateData()
123.    End Sub
124.    Private Function ValidateData() As String
125.        lblARCodeRequire.Visible = If(txtARCode.Text.Trim().Equals(String.Empty), True, False)
126.        lblARNameRequire.Visible = If(txtARName.Text.Trim().Equals(String.Empty), True, False)
127.        Return If(lblARCodeRequire.Visible = True, "ARCode", If(lblARNameRequire.Visible = True, "ARName", String.Empty))
128.    End Function
129. 
130.    'ค้นหาข้อมูล
131.    Private Sub btnSearchNormal_Click(sender As Object, e As EventArgs) Handles btnSearchaRCode.Click, btnSearchARName.Click
132.        SearchNormal(DirectCast(sender, Button))
133.    End Sub
134.    'ค้นหาข้อมูล
135.    Private Sub SearchNormal(ByVal btnS As Button)
136.        Dim objARMas As List(Of Object)
137.        'ทดสอบการค้นหา (ในคำ)
138.        If btnS.Name.Substring(btnS.Name.Length - 4) = "Code" Then 'Search ARCode
139.            objARMas = DirectCast(bsCustomer, IEnumerable).OfType(Of Object)().ToList().FindAll(Function(c) c.ARCode.Contains(txtSearchARCode.Text))
140.        Else 'Search ARName
141.            objARMas = DirectCast(bsCustomer, IEnumerable).OfType(Of Object)().ToList().FindAll(Function(c) c.ARName.Contains(txtSearchARName.Text))
142.        End If
143.        If objARMas IsNot Nothing Then
144.            dgvCust.DataSource = Nothing
145.            dgvCust.DataSource = New BindingSource With {.DataSource = objARMas}
146.        End If
147.    End Sub
148.End Class


mduControlManager.vb
Code (VB.NET)
1.'Find Recursive all controls
2.Public Function GetAllControl(ByVal ctrl As Control, t As Type) As IEnumerable(Of Control)
3.    Dim _ctrl = ctrl.Controls.Cast(Of Control)()
4.    Return _ctrl.SelectMany(Function(x) GetAllControl(x, t)).Concat(_ctrl).Where(Function(y) y.GetType() = t)
5.End Function

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-25 08:34:27 By : หน้าฮี
 

 

No. 23

Guest


จาก #NO22 ข้อสังเกตุ
1. ข้อมูลหลัก (Master Data) อทิเช่น ข้อมูลฝ่าย, ข้อมูลแผนก, ข้อมูลหน่วยนับ, etc...
มักจะมีโครงสร้างดังนี้ xxxCode DescriptionThai, DescriptionEnglish, Remark

ผมคงใช้ฟอร์มในการ เพิ่ม/แก้ไข/ลบ/etc.. ไม่เกิน 1 ฟอร์มแน่นอน (ทำอย่างไร? มันไม่ใช่เป็นหน้าที่ของผม)
เผลอฯ 0 ฟอร์ม

2. ปุ่มค้นหาขั้นสูง
ผมคงใช้ฟอร์ม ไม่เกิน 1 ฟอร์มแน่นอน (ทำอย่างไร? มันไม่ใช่เป็นหน้าที่ของผม)
เผลอฯ 0 ฟอร์ม

3. ยังมีข้อสังเกตุอีกมากมาย ที่เป็นประโยชน์ (ตาถึงก็มองเห็น ตาถั่วก็เป็นภาระเพื่อนร่วมงาน)
...
...
...


Good Luck.
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-25 10:19:47 By : หน้าฮี
 

 

No. 24

Guest


จาก #NO22 ผมลืมให้ User Control ComboBox

usrCtrlComboBox.vb
Code (VB.NET)
001.Imports System.Windows.Forms
002.Imports System.ComponentModel
003.Imports System.Drawing
004. 
005.<ToolboxBitmap(GetType(ComboBox))> _
006.Public Class usrCtrComboBox : Inherits ComboBox
007. 
008.    Public Enum TextBoxDisplayIsEnabledBinding As Byte
009.        Yes
010.        No
011.    End Enum
012. 
013.    Public Enum TextBoxDisplayOnEnterMoveNext As Byte
014.        Yes
015.        No
016.    End Enum
017.    Public Enum TextBoxDisplayValidateOnLeave As Byte
018.        Yes
019.        No
020.    End Enum
021. 
022.    Private _DisplayIsEnabledBinding As TextBoxDisplayIsEnabledBinding
023.    Private _DisplayOnEnterMoveNext As TextBoxDisplayOnEnterMoveNext
024.    Private _DisplayValidateOnLeave As TextBoxDisplayValidateOnLeave
025.    Private _DisplayValidateWarningText As String = "กรุณาป้อนข้อมูลให้ถูกต้อง"
026. 
027.    Private _mKey As String
028.    Private _mText As String
029. 
030.    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayIsEnabledBinding), "Yes"), System.ComponentModel.Category("Appearance")> _
031.    Public Property DisplayIsEnabledBinding() As TextBoxDisplayIsEnabledBinding
032.        Get
033.            Return _DisplayIsEnabledBinding
034.        End Get
035.        Set(ByVal value As TextBoxDisplayIsEnabledBinding)
036.            _DisplayIsEnabledBinding = value
037.        End Set
038.    End Property
039. 
040.    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayOnEnterMoveNext), "Yes"), System.ComponentModel.Category("Appearance")> _
041.    Public Property DisplayOnEnterMoveNext() As TextBoxDisplayOnEnterMoveNext
042.        Get
043.            Return _DisplayOnEnterMoveNext
044.        End Get
045.        Set(ByVal value As TextBoxDisplayOnEnterMoveNext)
046.            _DisplayOnEnterMoveNext = value
047.        End Set
048.    End Property
049. 
050.    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayValidateOnLeave), "Yes"), System.ComponentModel.Category("Appearance")> _
051.    Public Property DisplayValidateOnLeave() As TextBoxDisplayValidateOnLeave
052.        Get
053.            Return _DisplayValidateOnLeave
054.        End Get
055.        Set(ByVal value As TextBoxDisplayValidateOnLeave)
056.            _DisplayValidateOnLeave = value
057.        End Set
058.    End Property
059. 
060.    <System.ComponentModel.DefaultValue(GetType(String), "กรุณาป้อนข้อมุลให้ถูกต้อง"), System.ComponentModel.Category("Appearance")> _
061.    Public Property DisplayValidateWarningText() As String
062.        Get
063.            Return _DisplayValidateWarningText
064.        End Get
065.        Set(ByVal value As String)
066.            _DisplayValidateWarningText = value
067.        End Set
068.    End Property
069. 
070.    '2014-06-12 เอาไว้เก็บ Key
071.    <Bindable(False), Category("Appearance"), DefaultValue("Text"), Localizable(True), Description("Display Decimal for Number")>
072.    Property _Key() As String
073.        Get
074.            Return _mKey
075.        End Get
076.        Set(ByVal Value As String)
077.            _mKey = Value
078.        End Set
079.    End Property
080. 
081.    '2014-06-12 เอาไว้เก็บ Description
082.    <Bindable(False), Category("Appearance"), DefaultValue("Text"), Localizable(True), Description("Display Decimal for Number")>
083.    Property _Text() As String
084.        Get
085.            Return _mText
086.        End Get
087.        Set(ByVal Value As String)
088.            _mText = Value
089.        End Set
090.    End Property
091.    'กดปุ่ม Enter ให้เลื่อนไปช่องถัดไป (Next Control)
092.    '
093.    Protected Overrides Sub OnKeyPress(e As KeyPressEventArgs)
094.        If (DisplayOnEnterMoveNext = TextBoxDisplayOnEnterMoveNext.Yes) Then
095.            If (AscW(e.KeyChar) = Keys.Enter) Then
096.                SendKeys.Send("{TAB}")
097.            End If
098.        End If
099.        'MyBase.OnKeyPress(e)
100.    End Sub
101. 
102.    Protected Overrides Sub OnValidating(e As CancelEventArgs)
103.        If DisplayValidateOnLeave = TextBoxDisplayValidateOnLeave.Yes Then
104.            If Me.Text <> String.Empty Then
105.                Dim index = Me.FindString(Me.Text)
106.                If index = -1 Then
107.                    If Me._Key <> String.Empty Then
108.                        Me.SelectedValue = Me._Key
109.                        If Me._Text <> String.Empty Then
110.                            Me.Text = Me._Text
111.                        End If
112.                        e.Cancel = False
113.                    Else
114.                        e.Cancel = True
115.                        MessageBox.Show(DisplayValidateWarningText, "คำเตือน", MessageBoxButtons.OK)
116.                    End If
117.                Else
118.                    Me.SelectedIndex = index
119.                End If
120.            End If
121.        End If
122.        'MyBase.OnValidating(e)
123.    End Sub
124.    Public Sub ResetValue()
125.        MyBase.Text = String.Empty
126.        MyBase.SelectedValue = String.Empty
127.        MyBase.SelectedIndex = -1
128.        _Key = String.Empty
129.        _Text = String.Empty
130.    End Sub
131.End Class



ปล. เอาไปใช้งานจริง (จนรวยเป็นเถ้าแก่) อย่าลืมให้เครดิต หน้าฮี ด้วยล่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-25 11:35:03 By : หน้าฮี
 

 

No. 25

Guest


Update Program Login.vb (หน้าจอ Login)

Code (VB.NET)
001.Public Class Login
002. 
003.    Private Sub btnChangePwd_Click(sender As Object, e As EventArgs) Handles btnChangePwd.Click
004.        'ตรวจสอบจากฐานข้อมูล (ยังไม่ได้ทำ)
005.        '
006.        Dim f As New frmLoginChangePassword
007.        f.strFrmPwd = txtPwd.Text
008.        f.ShowDialog()
009.    End Sub
010. 
011.    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
012.        Me.Dispose()
013.        End
014.    End Sub
015. 
016.    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
017.        Static Dim xCount As Integer = 0
018.        Dim lstUser = msrUsers.GetList(txtUserID.Text.Trim()) 'ตอนจัดเก็บไม่ยอมให้มีช่องว่างต้นคำและท้ายคำ/รหัสผ่านก็เช่นเดียวกัน (ยกเว้นมีช่องว่าง(รู)ตรงกลาง ยอมได้)
019.        'ตรวจสอบ User ID (Type = String)
020.        If lstUser.Count > 0 Then
021.            'ตรวจสอบรหัสผ่าน Class Crypter เขียนด้วย C++ (วิศวะคอมฯเขียนให้ฟรี+55555)
022.            'เข้ารหัสผ่าน 2 ชั้น (สูงกว่า Basic นิดหน่อย แต่ก็พอใช้งานได้ดีระดับหนึ่ง)
023.            If (String.Format("{0}", lstUser(0).Password) = Crypter.DESEncrypt(Crypter.DESEncrypt(txtPwd.Text.Trim()))) Then
024.                Me.Hide() 'Hide Login form
025.                Dim f As New frmMain
026.                f.ShowDialog()
027.            Else
028.                xCount += 1
029.                MessageBox.Show("ท่านป้อนรหัสผู้ใช้งานไม่ถูกต้อง กรุณาป้อนใหม่อีกครั้ง (ครั้งที่ : " & xCount & ")", "ข้อความเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning)
030.                txtPwd.Text = String.Empty
031.                txtPwd.Focus()
032.                Return
033.            End If
034.        Else
035.            MessageBox.Show("ท่านป้อนรหัสผู้ใช้งานไม่ถูกต้อง กรุณาป้อนใหม่อีกครั้ง", "ข้อความเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning)
036.            txtUserID.Text = String.Empty
037.            txtPwd.Text = String.Empty
038.            txtUserID.Focus()
039.            Return
040.        End If
041.    End Sub
042. 
043.    Private Sub btnChangeConn_Click(sender As Object, e As EventArgs) Handles btnChangeConn.Click
044.        'จะทำเมื่อไหร่ก็ย่อมได้ แต่ยังไม่ได้ทำ
045.        'app.config
046.        '<?xml version="1.0" encoding="utf-8" ?>
047.        '<configuration>
048.        '    <system.diagnostics>
049.        '        <sources>
050.        '            <!-- This section defines the logging configuration for My.Application.Log -->
051.        '            <source name="DefaultSource" switchName="DefaultSwitch">
052.        '                <listeners>
053.        '                    <add name="FileLog"/>
054.        '                    <!-- Uncomment the below section to write to the Application Event Log -->
055.        '                    <!--<add name="EventLog"/>-->
056.        '                </listeners>
057.        '            </source>
058.        '        </sources>
059.        '        <switches>
060.        '            <add name="DefaultSwitch" value="Information" />
061.        '        </switches>
062.        '        <sharedListeners>
063.        '            <add name="FileLog"
064.        '        Type = "Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
065.        '                 initializeData="FileLogWriter"/>
066.        '            <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
067.        '            <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
068.        '        </sharedListeners>
069.        '    </system.diagnostics>
070. 
071.        '  <system.data>
072.        '    <DbProviderFactories>
073.        '      <remove invariant="System.Data.SQLite"/>
074.        '      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
075.        ' type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
076.        '    </DbProviderFactories>
077.        '  </system.data>
078.        '  <connectionStrings>
079.        '    <add name="Mssql" connectionString="Data Source=YOUR-PC;Initial Catalog=myDataBase;User ID=sa;Password=1234" providerName="System.Data.SqlClient" />
080.        '    <add name="Oracle" connectionString="Server=192.168.1.1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" providerName="System.Data.OracleClient" />
081.        '    <add name="MySQL" connectionString="Server=192.168.1.1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" providerName="MySql.Data.MySqlClient" />
082.        '    <add name="SQLite" connectionString="Data Source=..\...\App_Data\myDatabase_V3.s3db ;Version=3 ;UTF8Encoding=True;Pooling=True;Max Pool Size=100;" providerName="System.Data.SQLite" />
083.        '    <add name="MsAccess" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|myDataBase.accdb ;Jet OLEDB:Database Password=1234;" providerName="System.Data.OleDb" />
084.        '... FireBird RDBMS
085.        '... etc...
086.        '  </connectionStrings>
087.        '  <appSettings>
088.        '    <add key="LoggerFolder" value="..\..\Logger" />
089.        '    <add key="LoggerFileName" value="..\..\appLog.txt" />
090.        '    <add key="CurentProduct" value="Demo" />
091.        '    <add key="ProductName" value="POSExpress 1.0.0" />
092.        '    <add key="ConnectionStringEncrypt" value="A154273BF2464F4E" />
093.        '    <add key="ConnectionString" value="EB4BE3F2D06F5CC873B2C82C8BC034C04B2F4ABC592AFB46ABC33BF919EE02729742B42202B5B10128131010FB11A0F49BA59AF24FC07A44DA70AC41250923EF045B855B802EAF02769B274B42A00E5D" />
094.        '    <!--System.Data.OleDb-->
095.        '    <add key="RDBMSType" value="SQLite" />
096.        '    <add key="providerName" value="System.Data.SQLite" />
097.        '    <add key="DateFormat" value="dd{0}MM{1}yyyy" />
098.        '    <add key="TimeFormat" value="{0}:{1}:{2}" />
099.        '    <add key="GL_Report_LoadDemoData" value="False" />
100.        '    <add key="IC_Report_LoadDemoData" value="True" />
101.        '    <add key="AR_Report_LoadDemoData" value="True" />
102.        '    <add key="AP_Report_LoadDemoData" value="True" />
103.        '    <add key="PO_Report_LoadDemoData" value="True" />
104.        '    <add key="SO_Report_LoadDemoData" value="True" />
105.        '...
106.        '...
107.        '...
108.        '  </appSettings>
109.        '</configuration>
110. 
111.    End Sub
112.End Class


ปล.
โลกนี้มันมีอะไรแปลกฯ ภารโรงอยากเป็น ผ.อ. และในทางกลับกัน ผ.อ.อยากเป็นภารโรง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-25 21:29:10 By : หน้าฮี
 

 

No. 26

Guest


จาก #NO25 ตัวอย่างผลลัพธ์ของ Source code

POSExpress_08


ปล. จริงฯแล้วมันต้องเตือนว่า ท่านป้อนรหัสผ่านไม่ถูกต้อง (ผมพิมพ์ดีดได้ 1,000 คำ/นาที) บางครั้งก็ Copy & Paste +55555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-25 22:04:50 By : หน้าฮี
 

 

No. 27



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



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


นี่มันแชมป์ หน้าฮี พิมพ์ดีดนี่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-26 21:48:26 By : bigsuntat
 

 

No. 28

Guest


@bigsuntat
www.thaicreate.com ผม Login ด้วย User Name : หน้าฮี ไม่ได้ มันฟ้องว่า "รหัสผ่านไม่ถูกต้อง"
--- เดาเอาว่า : ผมจำระหัสผ่านผิด หรืออาจเป็นไปได้ว่า Administrator ไม่อนุญาติ (จะด้วยสาเหตุใดฯก็ตาม)

เล่าเรื่องจริงให้ฟังนะ ตอนแรกผมกะว่า "แค่ดาวไซต์โปรแกรมลงมา (ลดขนาดของโปรแกรมให้เล็กลง)"

3 วันก็เสร็จและรับเงินและจบ


แต่ตอนนี้ไม่ใช่แล้ว
(ผมมองเห็นช่องทาง) คุณก็ลองคิดตามและลองเดาดูเล่นฯ ว่าผมกำลังจะทำอะไร?
--- โปรแกรมระดับเดียวกันหรือที่เหนือกว่า ผมมองออกหมด (ในท้องตลาดไม่มีตัวไหนไปถึง GL (General Ledger))
------ มันไม่ง่ายสำหรับใครบางคน (บริษัทเล็กฯบางบริษัท)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-28 19:46:53 By : หน้าฮี
 

 

No. 29

Guest


จาก #NO28 และย้อนกลับไป #NO13
--- การปิดเปิดลิ้นชัก มันก็ไม่ใช่เรื่องยากสำหรับผม
--- เซแว้นมีเครืองคิดเงินสดหลายเครื่อง (ในแต่ละสาขา)
----- มันก็ไม่ใช่เรื่องยากสำหรับผม (ง่ายฯเหมือนผายลม)
...
...
...

ผมเป็นคนที่เอาหัวใจและจิตวิญญาณนำคำว่า
"ธุรกิจ"
--- ด้วยเหตุนี้ภรรยาของผมจึงบ่น(ด่า) ว่า โปรแกรมเมอร์คนอื่นเขาร้วยรวย
---- แต่ผัวกู "จ้นจน รวยแต่เขือ ดีนะที่มันเล็กไม่อย่างนั้นฉันลำบาก" (อันนี้เรื่องจริงนะ)

คุณ(และเพื่อนของคุณ) มีเวลาว่างหรือไม่?
--- จากรูปภาพด้านล่าง และจากความต้องการ Down size Program ลงมา
------ ผมให้คุณเดาว่าผมกำลังทำอะไรอยู่?

POSExpress_10


ปล. ผมมีงานที่ต้องทำอีกมากมาย ( นับจากปัจจุบันไปอีก 3 ปีก็ไม่จบ)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-28 20:00:52 By : หน้าฮี
 

 

No. 30

Guest


จาก #NO28-29
คุณลองสังเกตุดูว่า "ผมซ่อนอะไรเอาไว้ข้างหลัง" เท่าที่เห็น
--- ประวัติลูกค้า
--- ประวัติสินค้า
--- ขายสด/ขายเชื่อ
--- Master Data
--- Administrators
--- Exit Program


ปล. ผมเป็นคนคิดได้ร้อยแปดพันเก้า กลับมาคิดอีกทีมันก็ไม่เหมือนเดิม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-28 20:16:50 By : หน้าฮี
 

 

No. 31

Guest


จาก #NO30
ในเชิงโปรแกรมมิ่ง
--- อะไรที่ซ้ำฯกัน ผมจะไม่สนเป็นรอบที่สอง
ในเชิงชีวิตประจำวัน (น้องเมีย)
--- ผมมักจะให้ความสำคัญกับมันเสมอ

POSExpress_11
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-28 20:31:19 By : หน้าฮี
 

 

No. 32



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



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


ทำตัวเหมือนดี แต่ผิดศีลข้อ 3 เอวัง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-06-29 08:19:32 By : bigsuntat
 

 

No. 33



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



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


ดันครับเผื่อใครไม่รู้ว่าแจกอันนี้ด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-03 16:24:55 By : bigsuntat
 

 

No. 34



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



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


รู้อะไรก็ต้องรู้จริง และมองเผื่อความจริง ย้อนหลัง 100 ปี และ
มองเผื่อข้างหน้าไปอีกอย่างน้อย 100 ปี

สองข้อความข้างบน เผื่อคนสมองตัน หมายความว่า

จะสร้างเขื่อนขึ้นมา มันต้องคำนวณ ปริมาณน้ำฝน
--- ย้อนกลับไปในอดีตอีก 100 ปี
--- และต้องคิดเผื่อแผ่ไปในอนาคตอีก 100 ปี


โปรแกรมเมอร์ ใครฯ ก็เป็นได้ แต่คำว่า ศิลปินโปรแกรมเมอร์ หายากมากฯ (คิดไม่เหมือนใคร)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-04 16:45:17 By : หน้าฮี
 

 

No. 35

Guest


@bigsuntat อย่าอายที่ต้องเสียน้ำตาให้กับสิ่งที่ไร้สาระ

จงเก็บน้ำตาเอาไว้ใช้ในคราวจำเป็น อทิเช่น แม่ยายตาย/เมียป่วยหนักและกำลังจะตาย

กล้าในสิ่งที่ควรกล้า อายในสิ่งที่ควรอาย
อะไรควรทำ อะไรไม่ควรทำ
อะไรคือศักดิ์ศรี อะไรคืออยู่อย่างไร้ศักดิ์ศรี

อะไรคือการดูถูก อะไรคือการดูผิด?

สิ่งที่ผมเล่ามามันไม่เกินความไป ในโลกของความจริง (ไทย/เทศ)

โอกาสมันผ่านไปและผ่านมาเสมอ อยู่ที่ว่าเราจะไขว่คว้ามันหรือไม่?


ปล. จงอยู่อย่างคนไร้ศักดิ์ศรี และอย่าแบกมันเอาไว้ให้หนักบ่า
เส้นทางนี้(โปรแกรมเมอร์) มันไม่ได้ปูพรมให้ด้วยคำว่า "ศักดิ์ศรี"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-09 17:43:20 By : หน้าฮี
 

 

No. 36

Guest


@bigsuntat, ห้ามตอบเกินวันละ 2 กระทู้, etc...

คำว่า "อย่าคิดว่าเขาคือมิตร" และอย่าลืมคิดคำว่า "เขาไม่ใช่ศัตรู"
มันใช้ได้เสมอนะ สำหรับคนที่มีสติสัมปชัญยะ


เราไม่ได้มองว่าเขาคือมิตรและเราไม่ได้มองว่าเขาคือศัตรู

อันนี้รวมถึงคำว่า "ผิดหวัง/สมหวัง"




ปล. เสียดาย คนที่เคยเตือนสติของผมท่านไม่อยู่แล้ว (ผมไม่รู้ว่าท่านหายไปไหน)
--- เวลาผมเหนื่อย/ท้อ/ล้า เขาจะให้เหตุผลเพื่อปลอบโยนความทุกข์(ที่อยู่ในใจ) ของผมเสมอ เสียดาย
ท่านจากผมไปแล้ว


ปล. ท่านในที่นี้หมายถึงว่า "บุคคลที่กระผมให้ความเคารพและนับถือ (ในทางลับหลัง)"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-08-09 18:08:59 By : หน้าฮี
 

 

No. 37

Guest


Database อยู่ไหนครับ รบกวนอธิบายให้เข้าใจหน่อยได้ไหมครับ ?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-13 22:31:59 By : ต๊ะ
 

 

No. 38



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



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

มีคนทำหลายๆ ฟอร์มแล้วโยงหน้า main เหมือนผมเลย
อยากจะย้ายไปอยู่หน้า main แล้วใส่ใน tab control บ้าง ก็ขี้เกียจแก้โค้ดแล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-02-14 10:15:42 By : nk4ever
 

 
System.InvalidOperationException: 'The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.'

มันขึ้นแบบนี้ทำไงงค่ะพี่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-20 11:37:41 By : ืnote
 

 
รหัสผ่านอะไรหรอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-07-21 13:58:59 By : พรพร
 

 
ตอบความคิดเห็นที่ : 11 เขียนโดย : bigsuntat เมื่อวันที่ 2016-06-20 22:51:55
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้....... ตอบความคิดเห็นที่ : 37 เขียนโดย : ต๊ะ เมื่อวันที่ 2018-02-13 22:31:59
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้....... ตอบความคิดเห็นที่ : 34 เขียนโดย : หน้าฮี เมื่อวันที่ 2016-08-04 16:45:17
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้.......Code (C#)



ตอบความคิดเห็นที่ : 5 เขียนโดย : เมย์ เมื่อวันที่ 2016-06-17 23:31:08
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้....... ตอบความคิดเห็นที่ : 37 เขียนโดย : ต๊ะ เมื่อวันที่ 2018-02-13 22:31:59
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้.......

ตอบความคิดเห็นที่ : 3 เขียนโดย : bigsuntat เมื่อวันที่ 2016-06-16 03:27:15
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้.......
ตอบความคิดเห็นที่ : 7 เขียนโดย : ตุ้ม เมื่อวันที่ 2016-06-20 15:14:54
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้.......ขอ Database ได้ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2023-08-30 14:19:30 By : Pluto
 

 

No. 42



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



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


ตอบความคิดเห็นที่ : 41 เขียนโดย : Pluto เมื่อวันที่ 2023-08-30 14:19:30
รายละเอียดของการตอบ ::
นี่ไง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2023-10-10 08:50:22 By : Xnxx
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : แจก : ระบบขายสินค้า พัฒนาด้วยภาษา C# ฐานข้อมูล Access
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





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