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

Registered : 107,382

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





 

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

 



Topic : 122968



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



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



แจก : ระบบขายสินค้า พัฒนาด้วยภาษา 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 : 22148 Reply : 38
 

 

No. 1



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



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








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


 

No. 2



โพสกระทู้ ( 73,918 )
บทความ ( 837 )

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

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

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

 

No. 3



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



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

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


 

No. 4



โพสกระทู้ ( 73,918 )
บทความ ( 837 )

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

สถานะออฟไลน์
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



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



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

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



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



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

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


 

No. 11



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



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

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

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


 

No. 12



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



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

ตอบความคิดเห็นที่ : 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)
Imports System.Drawing
Imports System.Windows.Forms
'
<ToolboxBitmap(GetType(TextBox))> _
Public Class usrCtrlTextBox : Inherits TextBox

    Public Enum TextBoxDisplayManager As Byte
        TextCharacter = 0
        TextNumber = 1
        TextInteger = 2
    End Enum

    Public Enum TextBoxDisplayPrecisionScale As Byte
        None = 0
        One = 1
        Two = 2
        Tree = 3
        Four = 4
        Five = 5
        Six = 6
        Seven = 7
        Eight = 8
        Nine = 9
        Ten = 10
    End Enum

    Public Enum TextBoxDisplayOnEnterMoveNext As Byte
        Yes
        No
    End Enum

    Public Enum TextBoxDisplayIsEnabledBinding As Byte
        Yes
        No
    End Enum


#Region "    Variables "

    Private _DisplayManager As TextBoxDisplayManager
    Private _DisplayPrecisionScale As TextBoxDisplayPrecisionScale
    Private _DisplayOnEnterMoveNext As TextBoxDisplayOnEnterMoveNext
    Private _DisplayIsEnabledBinding As TextBoxDisplayIsEnabledBinding

#End Region


#Region "    Properties "
    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayManager), "TextCharacter"), System.ComponentModel.Category("Appearance")> _
    Public Property DisplayManager() As TextBoxDisplayManager
        Get
            Return _DisplayManager
        End Get
        Set(ByVal value As TextBoxDisplayManager)
            _DisplayManager = value
            If Me._DisplayManager = TextBoxDisplayManager.TextNumber Then
                MyBase.TextAlign = HorizontalAlignment.Right
            End If
        End Set
    End Property

    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayPrecisionScale), "None"), System.ComponentModel.Category("Appearance")> _
    Public Property DisplayPrecisionScale() As TextBoxDisplayPrecisionScale
        Get
            Return _DisplayPrecisionScale
        End Get
        Set(ByVal Value As TextBoxDisplayPrecisionScale)
            _DisplayPrecisionScale = Value
            If Me._DisplayManager = TextBoxDisplayManager.TextNumber Then
                MyBase.TextAlign = HorizontalAlignment.Right
                Dim dblSubMybaseText As Double
                If String.IsNullOrEmpty(MyBase.Text) OrElse Not IsNumeric(MyBase.Text) Then
                    dblSubMybaseText = 0
                Else
                    dblSubMybaseText = CDbl(MyBase.Text)
                End If
                Select Case Me._DisplayPrecisionScale
                    Case TextBoxDisplayPrecisionScale.One
                        MyBase.Text = String.Format("{0:N1}", dblSubMybaseText)
                    Case TextBoxDisplayPrecisionScale.Two
                        MyBase.Text = String.Format("{0:N2}", dblSubMybaseText)
                    Case TextBoxDisplayPrecisionScale.Tree
                        MyBase.Text = String.Format("{0:N3}", dblSubMybaseText)
                    Case TextBoxDisplayPrecisionScale.Four
                        MyBase.Text = String.Format("{0:N4}", dblSubMybaseText)
                    Case TextBoxDisplayPrecisionScale.Five
                        MyBase.Text = String.Format("{0:N5}", dblSubMybaseText)
                    Case TextBoxDisplayPrecisionScale.Six
                        MyBase.Text = String.Format("{0:N6}", dblSubMybaseText)
                        'More...
                        'More...
                        'More...
                    Case TextBoxDisplayPrecisionScale.None
                        MyBase.Text = String.Format("{0:N0}", dblSubMybaseText)
                End Select
            End If
        End Set
    End Property

    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayOnEnterMoveNext), "Yes"), System.ComponentModel.Category("Appearance")> _
    Public Property DisplayOnEnterMoveNext() As TextBoxDisplayOnEnterMoveNext
        Get
            Return _DisplayOnEnterMoveNext
        End Get
        Set(ByVal value As TextBoxDisplayOnEnterMoveNext)
            _DisplayOnEnterMoveNext = value
        End Set
    End Property

    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayIsEnabledBinding), "Yes"), System.ComponentModel.Category("Appearance")> _
    Public Property DisplayIsEnabledBinding() As TextBoxDisplayIsEnabledBinding
        Get
            Return _DisplayIsEnabledBinding
        End Get
        Set(ByVal value As TextBoxDisplayIsEnabledBinding)
            _DisplayIsEnabledBinding = value
        End Set
    End Property

#End Region


#Region "    Constructor "

    Public Sub New()
    End Sub

#End Region

    'Protected Overrides Sub OnBindingContextChanged(ByVal e As System.EventArgs)
    '    MyBase.OnBindingContextChanged(e)
    'End Sub

    Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
        If Me._DisplayManager = TextBoxDisplayManager.TextNumber Then
            If e.KeyChar < "0" Or e.KeyChar > "9" Then
                If AscW(e.KeyChar) = Keys.Back Then
                    e.Handled = False
                Else
                    If e.KeyChar = "." And MyBase.Text.Contains(".") = False Then
                        e.Handled = False
                    ElseIf e.KeyChar = "-" And MyBase.Text.Contains("-") = False Then
                        e.Handled = False
                    Else
                        e.Handled = True
                    End If
                End If
            End If
        ElseIf Me._DisplayManager = TextBoxDisplayManager.TextInteger Then
            If e.KeyChar < "0" Or e.KeyChar > "9" Then
                If AscW(e.KeyChar) = Keys.Back Then    'Backspace
                    e.Handled = False
                Else
                    e.Handled = True
                End If
            End If
        End If
        If AscW(e.KeyChar) = Keys.Enter AndAlso _DisplayOnEnterMoveNext = TextBoxDisplayOnEnterMoveNext.Yes Then
            SendKeys.Send("{TAB}")
        End If
    End Sub

    Protected Overrides Sub OnEnter(ByVal e As System.EventArgs)
        MyBase.SelectionStart = 0
        MyBase.SelectionLength = MyBase.Text.Length
    End Sub

    Protected Overrides Sub OnValidating(ByVal e As System.ComponentModel.CancelEventArgs)
        If Me._DisplayManager = TextBoxDisplayManager.TextNumber Then
            Dim dblSubMybaseText As Double
            If String.IsNullOrEmpty(MyBase.Text) OrElse Not IsNumeric(MyBase.Text) Then
                dblSubMybaseText = 0
            Else
                dblSubMybaseText = CDbl(MyBase.Text)
            End If
            Select Case Me._DisplayPrecisionScale
                Case TextBoxDisplayPrecisionScale.One
                    MyBase.Text = String.Format("{0:N1}", dblSubMybaseText)
                Case TextBoxDisplayPrecisionScale.Two
                    MyBase.Text = String.Format("{0:N2}", dblSubMybaseText)
                Case TextBoxDisplayPrecisionScale.Tree
                    MyBase.Text = String.Format("{0:N3}", dblSubMybaseText)
                Case TextBoxDisplayPrecisionScale.Four
                    MyBase.Text = String.Format("{0:N4}", dblSubMybaseText)
                Case TextBoxDisplayPrecisionScale.Five
                    MyBase.Text = String.Format("{0:N5}", dblSubMybaseText)
                Case TextBoxDisplayPrecisionScale.Six
                    MyBase.Text = String.Format("{0:N6}", dblSubMybaseText)
                Case TextBoxDisplayPrecisionScale.Seven
                    MyBase.Text = String.Format("{0:N7}", dblSubMybaseText)
                Case TextBoxDisplayPrecisionScale.Eight
                    MyBase.Text = String.Format("{0:N8}", dblSubMybaseText)
                Case TextBoxDisplayPrecisionScale.Nine
                    MyBase.Text = String.Format("{0:N9}", dblSubMybaseText)
                Case TextBoxDisplayPrecisionScale.Ten
                    MyBase.Text = String.Format("{0:N10}", dblSubMybaseText)
                Case Else
                    MyBase.Text = String.Format("{0:N0}", dblSubMybaseText)
            End Select
        End If
    End Sub

    'ปิดเสียง ปี๊ด เมื่อกดปุ่ม Enter 

    'Private Sub SetBeepOff(ByVal senser As Control, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    '    If e.KeyCode = Keys.Enter Then
    '        e.SuppressKeyPress = True
    '        SendKeys.Send("{Tab}")
    '    End If
    'End Sub

    'Protected Overrides Sub OnBindingContextChanged(ByVal e As System.EventArgs)
    '    MyBase.OnBindingContextChanged(e)
    'End Sub
End Class


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


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


 

No. 14



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



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

ตอบความคิดเห็นที่ : 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)
Public Class frmMain
    '
    'initial variable and object
    '    
    Private tmpUserControl As New UserControl()
    Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim usrCtrFrmMain As New usrCtrMain

        btnFirstArticle.ForeColor = Color.Cyan
        btnFirstArticle.ForeColor = Color.Cyan
        btnFirstArticle.FlatAppearance.BorderSize = 1

        btnFirstArticle.Focus()

        pnlMenuDetail.Controls.Add(usrCtrFrmMain)

        usrCtrFrmMain.Dock = DockStyle.Fill

        stsMessage.Text = btnFirstArticle.Text      'บทนำ
        timerInterval.Enabled = True
        timerInterval.Interval = 1000
        stsDateTime.Text = String.Format("{0:dd MMMM yyyy HH:mm:ss}", Now)
        btnClose.ForeColor = Color.White
        stsUser.Text = "Admin" 'User Login
    End Sub
    'ออกจากโปรแกรม (ปุ่ม X ด้านบน)
    Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
        EndProgram()
    End Sub
    'ออกจากโปรแกรม (คลิ๊กปุ่ม Close ด้านล่างซ้าย)
    Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
        EndProgram()
    End Sub
    Private Sub mainMenuControl_Enter(sender As Object, e As EventArgs) Handles btnCustomer.Enter, btnProduct.Enter, btnSales.Enter, btnMaster.Enter, btnAdmin.Enter, btnFirstArticle.Enter
        Dim btnMenu As Button = DirectCast(sender, Button)
        For Each ctrl As Control In pnlMenuMain.Controls
            If TypeOf ctrl Is Button Then
                CType(ctrl, Button).FlatAppearance.BorderSize = 0
                ctrl.ForeColor = System.Drawing.Color.White
            End If
        Next
        btnClose.ForeColor = System.Drawing.Color.White
        pnlMenuDetail.Controls.Clear()
        Select Case btnMenu.Name
            Case "btnCustomer"
                tmpUserControl = New usrCtrCustomer
            Case "btnProduct"
                tmpUserControl = New usrCtrProduct
            Case "btnSales"
                tmpUserControl = New usrCtrSales
            Case "btnMaster"
                'xxx
            Case "btnAdmin"
                'xxx
            Case "btnFirstArticle"
                tmpUserControl = New usrCtrMain
        End Select

        btnMenu.ForeColor = Color.Cyan
        btnMenu.FlatAppearance.BorderSize = 1

        picPrefix.Location = New Point(0, btnMenu.Location.Y + 10)
        stsMessage.Text = btnMenu.Text

        Try            
            pnlMenuDetail.Controls.Add(tmpUserControl)
            tmpUserControl.Dock = System.Windows.Forms.DockStyle.Fill
        Catch ex As Exception
            'Logger
        End Try
    End Sub
    Private Sub EndProgram()
        Me.Dispose()
        End
    End Sub
End Class

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


 

No. 17

Guest


จาก #NO16

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

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

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




Good night

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


 

No. 18

Guest


จาก #NO16-17

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

Completed Source code
Code (VB.NET)
Public Class frmMain
    '
    'initial variable and object
    '   
    Public strUserLoginCode As String = String.Empty
    Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        btnFirstArticle.ForeColor = Color.Cyan
        btnFirstArticle.FlatAppearance.BorderSize = 1

        btnFirstArticle.Focus()

        pnlMenuDetail.Controls.Add(New usrCtrMain With {.Dock = DockStyle.Fill})

        stsMessage.Text = btnFirstArticle.Text      'บทนำ
        timerInterval.Enabled = True
        timerInterval.Interval = 1000
        stsDateTime.Text = String.Format("{0:dd MMMM yyyy HH:mm:ss}", Now)
        btnClose.ForeColor = Color.White
        stsUser.Text = strUserLoginCode  '"Admin" User Login
    End Sub
    'ออกจากโปรแกรม (ปุ่ม X ด้านบน)
    Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
        EndProgram()
    End Sub
    'ออกจากโปรแกรม (คลิ๊กปุ่ม Close ด้านล่างซ้าย)
    Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
        EndProgram()
    End Sub
    Private Sub mainMenuControl_Enter(sender As Object, e As EventArgs) Handles btnCustomer.Enter, btnProduct.Enter, btnSales.Enter, btnMaster.Enter, btnAdmin.Enter, btnFirstArticle.Enter
        Dim btnMenu As Button = DirectCast(sender, Button)

        pnlMenuMain.Controls.OfType(Of Button)().ToList().ForEach(Sub(x)
                                                                      x.FlatAppearance.BorderSize = 0
                                                                      x.ForeColor = Color.White
                                                                  End Sub)
        btnClose.ForeColor = System.Drawing.Color.White
        pnlMenuDetail.Controls.Clear()

        btnMenu.ForeColor = Color.Cyan
        btnMenu.FlatAppearance.BorderSize = 1

        picPrefix.Location = New Point(0, btnMenu.Location.Y + 10)
        stsMessage.Text = btnMenu.Text

        Try
            pnlMenuDetail.Controls.Add(AddUserControlByName("usrCtr" & btnMenu.Name.Substring(3)))
            pnlMenuDetail.Controls(0).Dock = DockStyle.Fill
        Catch ex As Exception
            'Logger
        End Try
    End Sub

    'Used System.Reflection
    Private Function AddUserControlByName(ByVal ctrlName As String) As Control
        'POS  == Root namespace (Project --> Property --> Application)
        Return Activator.CreateInstance(System.Reflection.Assembly.GetExecutingAssembly.GetType("POS" & "." & ctrlName))
    End Function

    Private Sub EndProgram()
        Me.Dispose()
        End
    End Sub
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)
Public Class usrCtrCustomer
    Private bsCustomer As New BindingSource
    Private Sub usrCtrCustomer_Load(sender As Object, e As EventArgs) Handles Me.Load
        'C# Generic List of anonymous types
        'var cboTestData = new[] { new { ID = "01", Name = "ลูกหนี้การค้า" },
        '                          new { ID = "02", Name = "หน่วยงานราชการ" }
        '                        };
        Dim cboTestData = {New With {.ID = "00", Key .Name = "ไม่ระบุ"},
                           New With {.ID = "01", Key .Name = "ลูกหนี้การค้า"},
                           New With {.ID = "02", Key .Name = "หน่วยงานราชการ"},
                           New With {.ID = "03", Key .Name = "อื่นฯ"}
                           }
        cboARTCode.DataSource = cboTestData
        cboARTCode.DisplayMember = "Name"
        cboARTCode.ValueMember = "ID"
        Dim img As Image = Image.FromFile(Application.StartupPath & "\..\..\Images\WomanAlert.png")
        Dim img2 As Image = Image.FromFile(Application.StartupPath & "\..\..\Images\WomanExtentSame.png")
        Dim lstCust = {New With {.ARCode = "01", .ARName = "ABC", .ARAdd1 = "เชียงใหม่", .BackList = img, .ARCR = 30},
                       New With {.ARCode = "02", .ARName = "DEF", .ARAdd1 = "ลำปาง", .BackList = img2, .ARCR = 0},
                       New With {.ARCode = "03", .ARName = "GHK", .ARAdd1 = "ลำพูน", .BackList = img, .ARCR = 0},
                       New With {.ARCode = "04", .ARName = "XYT", .ARAdd1 = "สงขลา", .BackList = img, .ARCR = 90},
                       New With {.ARCode = "05", .ARName = "XYZ", .ARAdd1 = "ยะลา", .BackList = img, .ARCR = 0},
                       New With {.ARCode = "06", .ARName = "หมู", .ARAdd1 = "เชียงใหม่", .BackList = img, .ARCR = 30},
                       New With {.ARCode = "07", .ARName = "หมา", .ARAdd1 = "ลำปาง", .BackList = img, .ARCR = 0},
                       New With {.ARCode = "08", .ARName = "กา", .ARAdd1 = "ลำพูน", .BackList = img, .ARCR = 0},
                       New With {.ARCode = "09", .ARName = "ไก่", .ARAdd1 = "สงขลา", .BackList = img, .ARCR = 90},
                       New With {.ARCode = "10", .ARName = "แมว", .ARAdd1 = "ยะลา", .BackList = img, .ARCR = 0}
                       }.ToList()
        bsCustomer.DataSource = lstCust
        SetDGVInfo(bsCustomer)
    End Sub
    Private Sub SetDGVInfo(ByVal bs As BindingSource)
        dgvCust.AutoGenerateColumns = False
        Dim imgCol As New DataGridViewImageColumn
        imgCol.HeaderText = String.Empty
        imgCol.Width = 40
        imgCol.ImageLayout = DataGridViewImageCellLayout.Zoom
        dgvCust.Columns.Insert(0, imgCol)
        dgvCust.DataSource = bs
        dgvCust.Columns(0).DataPropertyName = "BackList"
        dgvCust.Columns(1).DataPropertyName = "ARCode"
        dgvCust.Columns(2).DataPropertyName = "ARName"
        dgvCust.Columns(3).DataPropertyName = "ARAdd1"
        dgvCust.Columns(6).DataPropertyName = "ARCR"
    End Sub
    Private Sub tsbAdd_Click(sender As Object, e As EventArgs) Handles tsbAdd.Click
        Actions("A")
        txtARCode.Enabled = True
        txtARCode.Focus()
    End Sub
    Private Sub tsbEdit_Click(sender As Object, e As EventArgs) Handles tsbEdit.Click
        If dgvCust.SelectedRows.Count = 0 Then
            MessageBox.Show("กรุณาเลือกระเบียนในตารางด้านล่าง เพื่อแก้ไขข้อมูล", "คำเตือน", MessageBoxButtons.OK)
            Exit Sub
        Else
            Actions("E")
            txtARCode.Enabled = False
            txtARName.Focus()
        End If
    End Sub
    Private Sub tsbBack_Click(sender As Object, e As EventArgs) Handles tsbBack.Click
        BacktoPanelHead()
    End Sub
    Private Sub BacktoPanelHead()
        pnlDetail1.Visible = False
        pnlHead.Visible = True
        pnlDetail1.Dock = DockStyle.Bottom
        pnlHead.Dock = DockStyle.Fill
    End Sub
    Private Sub dgvCust_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvCust.CellDoubleClick
        Actions("E")
    End Sub
    Private Sub Actions(ByVal mode As String)
        pnlDetail1.Visible = True
        pnlHead.Visible = False
        pnlDetail1.Dock = DockStyle.Fill
        pnlHead.Dock = DockStyle.None
        lblActions.Text = If(mode = "A", "เพิ่มข้อมูล", "แก้ไขข้อมูล")
        If mode = "E" Then
            Dim objARMas = DirectCast(bsCustomer, IEnumerable).OfType(Of Object)().ToList().Find(Function(c) c.ARCode = dgvCust.SelectedRows(0).Cells("ARCode").Value)
            If objARMas IsNot Nothing Then
                txtARCode.Text = objARMas.ARCode
                txtARName.Text = objARMas.ARName
                txtARAdd1.Text = objARMas.ARAdd1
                cboARTCode._Text = "อื่นฯ"
                cboARTCode._Key = "03"
                cboARTCode.SelectedValue = "03"
            End If
        Else
            'Reset All TextBox/ComboBox/etc...
            mduControlManager.GetAllControl(pnlDetail1, GetType(WL_Controls.usrCtrlTextBox)).ToList().ForEach(Sub(x) DirectCast(x, WL_Controls.usrCtrlTextBox).ResetValue())
            mduControlManager.GetAllControl(pnlDetail1, GetType(WL_Controls.usrCtrComboBox)).ToList().ForEach(Sub(x) DirectCast(x, WL_Controls.usrCtrComboBox).ResetValue())
        End If
    End Sub
    Private Sub tsbSave_Click(sender As Object, e As EventArgs) Handles tsbSave.Click, tsbSaveClear.Click, tsbSaveClose.Click
        Dim sd As ToolStripButton = DirectCast(sender, ToolStripButton)
        Select Case ValidateData()
            Case "ARCode"
                txtARCode.Focus()
                Exit Sub
            Case "ARName"
                txtARName.Focus()
                Exit Sub
        End Select
        Select Case sd.Name.Substring(sd.Name.Length - 4)
            Case "Save" 'Save
            Case "lear" 'Save Clear
                mduControlManager.GetAllControl(pnlDetail1, GetType(WL_Controls.usrCtrlTextBox)).ToList().ForEach(Sub(x) DirectCast(x, WL_Controls.usrCtrlTextBox).ResetValue())
                mduControlManager.GetAllControl(pnlDetail1, GetType(WL_Controls.usrCtrComboBox)).ToList().ForEach(Sub(x) DirectCast(x, WL_Controls.usrCtrComboBox).ResetValue())
            Case "lose" 'Save Close
                BacktoPanelHead()
        End Select
        '
        'Save to database
        '
        MessageBox.Show("บันทึกข้อมูลเรียบร้อยแล้ว")
    End Sub
    Private Sub txtARCode_KeyUp(sender As Object, e As KeyEventArgs) Handles txtARCode.KeyUp, txtARName.KeyUp
        ValidateData()
    End Sub
    Private Sub txtARName_Leave(sender As Object, e As EventArgs) Handles txtARCode.Leave, txtARName.Leave
        ValidateData()
    End Sub
    Private Function ValidateData() As String
        lblARCodeRequire.Visible = If(txtARCode.Text.Trim().Equals(String.Empty), True, False)
        lblARNameRequire.Visible = If(txtARName.Text.Trim().Equals(String.Empty), True, False)
        Return If(lblARCodeRequire.Visible = True, "ARCode", If(lblARNameRequire.Visible = True, "ARName", String.Empty))
    End Function

    'ค้นหาข้อมูล
    Private Sub btnSearchNormal_Click(sender As Object, e As EventArgs) Handles btnSearchaRCode.Click, btnSearchARName.Click
        SearchNormal(DirectCast(sender, Button))
    End Sub
    'ค้นหาข้อมูล
    Private Sub SearchNormal(ByVal btnS As Button)
        Dim objARMas As List(Of Object)
        'ทดสอบการค้นหา (ในคำ)
        If btnS.Name.Substring(btnS.Name.Length - 4) = "Code" Then 'Search ARCode
            objARMas = DirectCast(bsCustomer, IEnumerable).OfType(Of Object)().ToList().FindAll(Function(c) c.ARCode.Contains(txtSearchARCode.Text))
        Else 'Search ARName
            objARMas = DirectCast(bsCustomer, IEnumerable).OfType(Of Object)().ToList().FindAll(Function(c) c.ARName.Contains(txtSearchARName.Text))
        End If
        If objARMas IsNot Nothing Then
            dgvCust.DataSource = Nothing
            dgvCust.DataSource = New BindingSource With {.DataSource = objARMas}
        End If
    End Sub
End Class


mduControlManager.vb
Code (VB.NET)
    'Find Recursive all controls
    Public Function GetAllControl(ByVal ctrl As Control, t As Type) As IEnumerable(Of Control)
        Dim _ctrl = ctrl.Controls.Cast(Of Control)()
        Return _ctrl.SelectMany(Function(x) GetAllControl(x, t)).Concat(_ctrl).Where(Function(y) y.GetType() = t)
    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)
Imports System.Windows.Forms
Imports System.ComponentModel
Imports System.Drawing

<ToolboxBitmap(GetType(ComboBox))> _
Public Class usrCtrComboBox : Inherits ComboBox

    Public Enum TextBoxDisplayIsEnabledBinding As Byte
        Yes
        No
    End Enum

    Public Enum TextBoxDisplayOnEnterMoveNext As Byte
        Yes
        No
    End Enum
    Public Enum TextBoxDisplayValidateOnLeave As Byte
        Yes
        No
    End Enum

    Private _DisplayIsEnabledBinding As TextBoxDisplayIsEnabledBinding
    Private _DisplayOnEnterMoveNext As TextBoxDisplayOnEnterMoveNext
    Private _DisplayValidateOnLeave As TextBoxDisplayValidateOnLeave
    Private _DisplayValidateWarningText As String = "กรุณาป้อนข้อมูลให้ถูกต้อง"

    Private _mKey As String
    Private _mText As String

    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayIsEnabledBinding), "Yes"), System.ComponentModel.Category("Appearance")> _
    Public Property DisplayIsEnabledBinding() As TextBoxDisplayIsEnabledBinding
        Get
            Return _DisplayIsEnabledBinding
        End Get
        Set(ByVal value As TextBoxDisplayIsEnabledBinding)
            _DisplayIsEnabledBinding = value
        End Set
    End Property

    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayOnEnterMoveNext), "Yes"), System.ComponentModel.Category("Appearance")> _
    Public Property DisplayOnEnterMoveNext() As TextBoxDisplayOnEnterMoveNext
        Get
            Return _DisplayOnEnterMoveNext
        End Get
        Set(ByVal value As TextBoxDisplayOnEnterMoveNext)
            _DisplayOnEnterMoveNext = value
        End Set
    End Property

    <System.ComponentModel.DefaultValue(GetType(TextBoxDisplayValidateOnLeave), "Yes"), System.ComponentModel.Category("Appearance")> _
    Public Property DisplayValidateOnLeave() As TextBoxDisplayValidateOnLeave
        Get
            Return _DisplayValidateOnLeave
        End Get
        Set(ByVal value As TextBoxDisplayValidateOnLeave)
            _DisplayValidateOnLeave = value
        End Set
    End Property

    <System.ComponentModel.DefaultValue(GetType(String), "กรุณาป้อนข้อมุลให้ถูกต้อง"), System.ComponentModel.Category("Appearance")> _
    Public Property DisplayValidateWarningText() As String
        Get
            Return _DisplayValidateWarningText
        End Get
        Set(ByVal value As String)
            _DisplayValidateWarningText = value
        End Set
    End Property

    '2014-06-12 เอาไว้เก็บ Key
    <Bindable(False), Category("Appearance"), DefaultValue("Text"), Localizable(True), Description("Display Decimal for Number")>
    Property _Key() As String
        Get
            Return _mKey
        End Get
        Set(ByVal Value As String)
            _mKey = Value
        End Set
    End Property

    '2014-06-12 เอาไว้เก็บ Description
    <Bindable(False), Category("Appearance"), DefaultValue("Text"), Localizable(True), Description("Display Decimal for Number")>
    Property _Text() As String
        Get
            Return _mText
        End Get
        Set(ByVal Value As String)
            _mText = Value
        End Set
    End Property
    'กดปุ่ม Enter ให้เลื่อนไปช่องถัดไป (Next Control)
    '
    Protected Overrides Sub OnKeyPress(e As KeyPressEventArgs)
        If (DisplayOnEnterMoveNext = TextBoxDisplayOnEnterMoveNext.Yes) Then
            If (AscW(e.KeyChar) = Keys.Enter) Then
                SendKeys.Send("{TAB}")
            End If
        End If
        'MyBase.OnKeyPress(e)
    End Sub

    Protected Overrides Sub OnValidating(e As CancelEventArgs)
        If DisplayValidateOnLeave = TextBoxDisplayValidateOnLeave.Yes Then
            If Me.Text <> String.Empty Then
                Dim index = Me.FindString(Me.Text)
                If index = -1 Then
                    If Me._Key <> String.Empty Then
                        Me.SelectedValue = Me._Key
                        If Me._Text <> String.Empty Then
                            Me.Text = Me._Text
                        End If
                        e.Cancel = False
                    Else
                        e.Cancel = True
                        MessageBox.Show(DisplayValidateWarningText, "คำเตือน", MessageBoxButtons.OK)
                    End If
                Else
                    Me.SelectedIndex = index
                End If
            End If
        End If
        'MyBase.OnValidating(e)
    End Sub
    Public Sub ResetValue()
        MyBase.Text = String.Empty
        MyBase.SelectedValue = String.Empty
        MyBase.SelectedIndex = -1
        _Key = String.Empty
        _Text = String.Empty
    End Sub
End Class



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


 

No. 25

Guest


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

Code (VB.NET)
Public Class Login

    Private Sub btnChangePwd_Click(sender As Object, e As EventArgs) Handles btnChangePwd.Click
        'ตรวจสอบจากฐานข้อมูล (ยังไม่ได้ทำ)
        '
        Dim f As New frmLoginChangePassword
        f.strFrmPwd = txtPwd.Text
        f.ShowDialog()
    End Sub

    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.Dispose()
        End
    End Sub

    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        Static Dim xCount As Integer = 0
        Dim lstUser = msrUsers.GetList(txtUserID.Text.Trim()) 'ตอนจัดเก็บไม่ยอมให้มีช่องว่างต้นคำและท้ายคำ/รหัสผ่านก็เช่นเดียวกัน (ยกเว้นมีช่องว่าง(รู)ตรงกลาง ยอมได้)
        'ตรวจสอบ User ID (Type = String)
        If lstUser.Count > 0 Then
            'ตรวจสอบรหัสผ่าน Class Crypter เขียนด้วย C++ (วิศวะคอมฯเขียนให้ฟรี+55555)
            'เข้ารหัสผ่าน 2 ชั้น (สูงกว่า Basic นิดหน่อย แต่ก็พอใช้งานได้ดีระดับหนึ่ง)
            If (String.Format("{0}", lstUser(0).Password) = Crypter.DESEncrypt(Crypter.DESEncrypt(txtPwd.Text.Trim()))) Then
                Me.Hide() 'Hide Login form
                Dim f As New frmMain
                f.ShowDialog()
            Else
                xCount += 1
                MessageBox.Show("ท่านป้อนรหัสผู้ใช้งานไม่ถูกต้อง กรุณาป้อนใหม่อีกครั้ง (ครั้งที่ : " & xCount & ")", "ข้อความเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                txtPwd.Text = String.Empty
                txtPwd.Focus()
                Return
            End If
        Else
            MessageBox.Show("ท่านป้อนรหัสผู้ใช้งานไม่ถูกต้อง กรุณาป้อนใหม่อีกครั้ง", "ข้อความเตือน", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            txtUserID.Text = String.Empty
            txtPwd.Text = String.Empty
            txtUserID.Focus()
            Return
        End If
    End Sub

    Private Sub btnChangeConn_Click(sender As Object, e As EventArgs) Handles btnChangeConn.Click
        'จะทำเมื่อไหร่ก็ย่อมได้ แต่ยังไม่ได้ทำ
        'app.config
        '<?xml version="1.0" encoding="utf-8" ?>
        '<configuration>
        '    <system.diagnostics>
        '        <sources>
        '            <!-- This section defines the logging configuration for My.Application.Log -->
        '            <source name="DefaultSource" switchName="DefaultSwitch">
        '                <listeners>
        '                    <add name="FileLog"/>
        '                    <!-- Uncomment the below section to write to the Application Event Log -->
        '                    <!--<add name="EventLog"/>-->
        '                </listeners>
        '            </source>
        '        </sources>
        '        <switches>
        '            <add name="DefaultSwitch" value="Information" />
        '        </switches>
        '        <sharedListeners>
        '            <add name="FileLog"
        '        Type = "Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
        '                 initializeData="FileLogWriter"/>
        '            <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
        '            <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
        '        </sharedListeners>
        '    </system.diagnostics>

        '  <system.data>
        '    <DbProviderFactories>
        '      <remove invariant="System.Data.SQLite"/>
        '      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
        ' type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
        '    </DbProviderFactories>
        '  </system.data>
        '  <connectionStrings>
        '    <add name="Mssql" connectionString="Data Source=YOUR-PC;Initial Catalog=myDataBase;User ID=sa;Password=1234" providerName="System.Data.SqlClient" />
        '    <add name="Oracle" connectionString="Server=192.168.1.1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" providerName="System.Data.OracleClient" />
        '    <add name="MySQL" connectionString="Server=192.168.1.1;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" providerName="MySql.Data.MySqlClient" />
        '    <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" />
        '    <add name="MsAccess" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|myDataBase.accdb ;Jet OLEDB:Database Password=1234;" providerName="System.Data.OleDb" />
        '... FireBird RDBMS
        '... etc...
        '  </connectionStrings>
        '  <appSettings>
        '    <add key="LoggerFolder" value="..\..\Logger" />
        '    <add key="LoggerFileName" value="..\..\appLog.txt" />
        '    <add key="CurentProduct" value="Demo" />
        '    <add key="ProductName" value="POSExpress 1.0.0" />
        '    <add key="ConnectionStringEncrypt" value="A154273BF2464F4E" />
        '    <add key="ConnectionString" value="EB4BE3F2D06F5CC873B2C82C8BC034C04B2F4ABC592AFB46ABC33BF919EE02729742B42202B5B10128131010FB11A0F49BA59AF24FC07A44DA70AC41250923EF045B855B802EAF02769B274B42A00E5D" />
        '    <!--System.Data.OleDb-->
        '    <add key="RDBMSType" value="SQLite" />
        '    <add key="providerName" value="System.Data.SQLite" />
        '    <add key="DateFormat" value="dd{0}MM{1}yyyy" />
        '    <add key="TimeFormat" value="{0}:{1}:{2}" />
        '    <add key="GL_Report_LoadDemoData" value="False" />
        '    <add key="IC_Report_LoadDemoData" value="True" />
        '    <add key="AR_Report_LoadDemoData" value="True" />
        '    <add key="AP_Report_LoadDemoData" value="True" />
        '    <add key="PO_Report_LoadDemoData" value="True" />
        '    <add key="SO_Report_LoadDemoData" value="True" />
        '...
        '...
        '...
        '  </appSettings>
        '</configuration>

    End Sub
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



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



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

นี่มันแชมป์ หน้าฮี พิมพ์ดีดนี่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
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



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



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

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


 

No. 33



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



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

ดันครับเผื่อใครไม่รู้ว่าแจกอันนี้ด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
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



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



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

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

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

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