تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[ تمّ الحل ] : التّرقيم التّسلسلي السّنوي
#1
السّلام عليكم و رحمة الله و بركاته
أمسية طيّبة ..
إخواني الأفاضل أملي بالله ثم بكم المساعدة بهذه الإشكاليّة لو تكرّمتم
عند الضغط على زر الأمر " الإضافة " يظهر بالتاكست 1 التّرقيم بهذا الشّكل :
0001 - 2017
أضغط مرّة ثانية .. يزداد الترقيم حسب الحقل ID الموجود بقاعدة البيانات
نفترض بنهاية هذه السّنة بآخر ثانية من 31 ديسمبر 2017 .. الترقيم مثلاً يصير : 0075 - 2017
عند دخول العام الجديد 2018 إذا كنّا من أهل الدنيا إن شاء الله ..يبدأ الترقيم من جديد ب 0001 - 2018
بارك الله فيكم و لكم مقدّمًا و جزاكم خير الجزاء
إحتراماتي


الملفات المرفقة
.rar   WindowsApplication1.rar (الحجم : 85.2 ك ب / التحميلات : 45)
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: sendbad100
#2
وعليكم السلام ورحمة الله وبركاته

كما طلبت في المرفقات .


الملفات المرفقة
.rar   WindowsApplication1New.rar (الحجم : 213.21 ك ب / التحميلات : 93)
الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري , sendbad100
#3
السّلام عليكم و رحمة الله و بركاته
 أخي الكريم " حريف برمجة "
باسم الله ما شاء الله تبارك الله
هو المطلوب بالضبط بتمامه و كماله .. و الكمال لله
بارك الله فيك و لك و في كل من تحب و جزاك خير الجزاء و رزقك خير الدارين إن شاء الله
خالص إحتراماتي و تقييماتي
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: sendbad100
#4
مع أن الموضوع قد تم حله، فقد أردت وضع أسلوب آخر للفائدة



هذه طريقة أخرى أرجو أن تكون مفيده
وهي تكوين الرقم الجديد دون حفظه الا عند اضافة البيانات فيتم ارفاقه مع معهم

إنشاء رقم جديد (دون حفظه) عن طريقة الدالة getNewID
على أساس أن الحقل نوعه نصي كما في المثال المرفق
PHP كود :
   'معرفة الرقم الجديد
    Function getNewID() As String
        Try
            cnn.Open()
            Using cmd As New OleDbCommand("Select Top 1 [ID] From [Table1] Order By [ID] Desc", cnn)
                Dim id As String = cmd.ExecuteScalar

                If IsNothing(id) Then id = Today.Year & "-000"
                Dim y As Integer = Val(id.Split("-")(0))
                Dim i As Integer = Val(id.Split("-")(1))
                If y <> Today.Year Then
                    y = Today.Year
                    i = 0
                End If
                id = y.ToString & "-" & (i + 1).ToString("000")

                Return id
            End Using
        Catch ex As Exception
            MsgBox(ex.Message)
            Return Nothing
        Finally
            cnn.Close()
        End Try
    End Function 

وبمكانك تجربة بالكود التالي على المثال المرفق
PHP كود :
Imports System.Data.OleDb

Public Class Form1

    Dim cnn 
As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DBTEST.accdb;Persist Security Info=True")

 
   Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click

        
'معرفة الرقم الجديد
        Dim id As String = getNewID()

        MsgBox("الرقم الجديد: " & vbNewLine & id)

        '
عرض الرقم الجديد
        TextBox1
.Text id

        
'الحفظ
        save(id)

    End Sub

    '
معرفة الرقم الجديد
    Function getNewID
() As String
        Try
            cnn
.Open()
 
           Using cmd As New OleDbCommand("Select Top 1 [ID] From [Table1] Order By [ID] Desc"cnn)
 
               Dim id As String cmd.ExecuteScalar

                If IsNothing
(idThen id Today.Year "-000"
 
               Dim y As Integer Val(id.Split("-")(0))
 
               Dim i As Integer Val(id.Split("-")(1))
 
               If y <> Today.Year Then
                    y 
Today.Year
                    i 
0
                End 
If
 
               id y.ToString "-" & (1).ToString("000")

 
               Return id
            End Using
        Catch ex 
As Exception
            MsgBox
(ex.Message)
 
           Return Nothing
        Finally
            cnn
.Close()
 
       End Try
 
   End Function

 
   Function save(ByVal id As String) As Boolean
        Try
            cnn
.Open()
 
           Using cmd As New OleDbCommand("Insert Into [Table1] ([ID]) Values(@id)"cnn)
 
               cmd.Parameters.AddWithValue("@id"id)
 
               cmd.ExecuteNonQuery()
 
           End Using
            Return True
        Catch ex 
As Exception
            MsgBox
(ex.Message)
 
           Return False
        Finally
            cnn
.Close()
 
       End Try
 
   End Function

End Class 
الرد }}}
تم الشكر بواسطة: sendbad100 , عبد العزيز البسكري
#5
السّلام عليكم و رحمة الله و بركاته
تسلم أخي الكريم " طالب برمجة " و سلم يمينك و دينك
حلٌّ ثانٍ رائع .. مميّز و ممتاز يفي بالغرض طولاً و عرضًا
بارك الله فيك و لك و أثابك جنّات النّعيم و رزقك من حيث تحتسب و من حيث لا تحتسب إن شاء الله
إحتراماتي و تقييماتي
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة:
#6
طيب فى هذا المثال لو اردات تحويل السنة الى رقم اخر
مثلا 2017 تساوى 71
2018 تساوى 72
هكذا
الرد }}}
تم الشكر بواسطة:
#7
انته اكيد عارف طلبك ،،

هل 2017 = 71
2018 = 72 وهكذا كل عام زيادة واحد ؟

وضح طلبك لتجد الاجابة الصحيحة .
الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري
#8
ماذا لو اردت ان اعدل على هذا المثال ليكون هكذا 
طبعا سكون هناك تعديل فى قاعده البيانات على افتراض ان قاعدده البيانات بها حقلين  للسنة والرقم 





(05-12-17, 07:05 PM)حريف برمجة كتب : انته اكيد عارف طلبك ،،

هل 2017 = 71
2018 = 72 وهكذا كل عام زيادة واحد ؟

وضح طلبك لتجد الاجابة الصحيحة .

بالظبط كدا عايز ابدا له من سنة معينة ولتكن من سنة 2000 مثلا وعند اختيار اى سنة يزاد الرقم المقابل لها بنفس مقدار الزياده فى سنة الاخنيار 
بمعنى لو اخترت سنة 2000 يظهر لى 73
لو اخترت 2005 يظهر لى 75 
نفس مقدار الزياده
الرد }}}
تم الشكر بواسطة:
#9
السلم عليكم
نفص من السنة 1927
2000 - 1927= 73
2001 - 1927 = 74
وهكذا
2010 - 1927 = 83
2017-1927 = 90
الرد }}}
#10



ماذا لو اردت ان اعدل على هذا المثال ليكون هكذا 

طبعا سكون هناك تعديل فى قاعده البيانات على افتراض ان قاعدده البيانات بها حقلين  للسنة والرقم 
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ما الحل dwidar07@gmail.com 3 424 21-02-25, 01:08 AM
آخر رد: أبو خالد الشكري
  البرنامج لدي يعمل على ويندوز 11 والان لا يعمل على ويندوز 10 ماهو الحل moh61 1 586 01-09-23, 04:38 AM
آخر رد: اسامه الهرماوي
  ممكن الحل masport tv 0 497 07-04-23, 11:36 AM
آخر رد: masport tv
  ارجو ان لا تبخلو علينا با الحل ahmedbezia 3 710 06-12-22, 01:29 PM
آخر رد: ahmedbezia
  [سؤال] [تم الحل] انشاء المسارات وتمرير البارامترات لها وقت التشغيل سعود 7 1,711 03-09-22, 09:44 AM
آخر رد: Taha Okla
  مشكلة واجهتني كتير وزهقت منها فاللي عنده الحل ياريت يفيدني بيه ميدو الفنان 7 1,520 03-09-22, 03:33 AM
آخر رد: ميدو الفنان
  [سؤال] * تم الحل * التحكم بمخرجات السريال بورت واعادة تحويلها mohamedallams 1 697 30-08-22, 06:42 PM
آخر رد: mohamedallams
  [سؤال] * [تم الحل] * المحاولة الثانية و اللتي باءت بالفشل حول تقسيم ملف بشكل دقيق سعود 8 1,426 27-08-22, 07:41 AM
آخر رد: سعود
  ما هو الحل لهذه المشكلة جيولوجي مبتدئ 7 1,615 17-05-22, 09:22 AM
آخر رد: جيولوجي مبتدئ
  [سؤال] التحديث من خلال الـ DropBox متوقف ما الحل؟ abomo3ath 1 993 06-05-22, 09:11 PM
آخر رد: سعود

التنقل السريع :


يقوم بقرائة الموضوع: