منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
ارجو تقيم الكود المرفق - جلب اعلي رقم لتسلسل نصي للباركود - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : ارجو تقيم الكود المرفق - جلب اعلي رقم لتسلسل نصي للباركود (/showthread.php?tid=51190)



ارجو تقيم الكود المرفق - جلب اعلي رقم لتسلسل نصي للباركود - new_programer - 28-01-25

السلام عليكم

قومت بالتعديل على هذا الكود من الرد استاذى الفاضل   Kamil

رجاء مراجعة الكود من الاخوة  لو امكن اختصارة او  مراجعة لو يوجد اخطاء برمجية

مع العلم الكود يعمل بشكل سليم وكما المطلوب

كود :
 Dim rdr As SqlDataReader = Nothing
      If conn.State <> ConnectionState.Open Then conn.Open()
      'conn.Open()
      cmd = conn.CreateCommand()
      cmd.CommandText = "SELECT TOP 1 itemCode2 FROM itemsTbl  WHERE itemCode = @Code ORDER BY CAST(SUBSTRING(itemCode2, CHARINDEX('-', itemCode2) + 1, LEN(itemCode2)) AS INT) DESC "
      cmd.Parameters.AddWithValue("@Code", txtItemCode.Text)

      rdr = cmd.ExecuteReader()
      If rdr.Read() Then
          'txtItemCode2.Text = rdr.GetValue(0)



          Dim originalText As String = rdr.GetValue(0)
          Dim parts() As String = originalText.Split("-"c)

          If parts.Length = 2 Then
              Dim leftPart As String = parts(0)
              Dim rightPart As Integer

              If Integer.TryParse(parts(1), rightPart) Then
                  rightPart += 1
                  Dim newText As String = String.Format("{0}-{1}", leftPart, rightPart)
                  'Dim newText As String = $"{leftPart}-{rightPart}"
                  txtItemCode2.Text = newText

              End If
          End If
      Else
          Dim UintID As String = txtItemCode.Text

          Dim BarCodeVind = String.Concat(UintID, "-", 1)

          txtItemCode2.Text = BarCodeVind

          rdr.Close()


      End If
      If (rdr IsNot Nothing) Then
   
      End If
      'If conn.State = ConnectionState.Open Then
      conn.Close()



RE: ارجو تقيم الكود المرفق - جلب اعلي رقم لتسلسل نصي للباركود - Kamil - 28-01-25

تفضل اخي هذا اختصار للكود 


PHP كود :
If conn.State <> ConnectionState.Open Then conn.Open()

cmd conn.CreateCommand()
cmd.CommandText "SELECT TOP 1 itemCode2 FROM itemsTbl WHERE itemCode = @Code ORDER BY CAST(SUBSTRING(itemCode2, CHARINDEX('-', itemCode2) + 1, LEN(itemCode2)) AS INT) DESC"
cmd.Parameters.AddWithValue("@Code"txtItemCode.Text)

Using rdr As SqlDataReader cmd.ExecuteReader()
 
   If rdr.Read() Then
        Dim originalText 
As String rdr.GetValue(0)
 
       Dim parts() As String originalText.Split("-"c)

 
       If parts.Length 2 AndAlso Integer.TryParse(parts(1), rightPartThen
            txtItemCode2
.Text = $"{parts(0)}-{rightPart + 1}"
 
       End If
 
   Else
        txtItemCode2
.Text = $"{txtItemCode.Text}-1"
 
   End If
End Using

If conn.State ConnectionState.Open Then conn.Close() 



RE: ارجو تقيم الكود المرفق - جلب اعلي رقم لتسلسل نصي للباركود - new_programer - 29-01-25

عفوا استاذي      Kamil 

الكود لا يعمل   يظهر   Error


[attachment=30021]

علامة ال $ لاتعمل وتظهر ايرور

انا اعمل على نسخة 2010


RE: ارجو تقيم الكود المرفق - جلب اعلي رقم لتسلسل نصي للباركود - Taha Okla - 29-01-25

إذا كان الكود لا يعمل عندك فالتصحيح هو :
كود :
txtItemCode2.Text = parts(0) & "-" & (rightPart + 1)

كذلك في السطر الاخر .. يكون التصحيح :
كود :
txtItemCode2.Text = txtItemCode.Text & "-1"



RE: ارجو تقيم الكود المرفق - جلب اعلي رقم لتسلسل نصي للباركود - new_programer - 30-01-25

جزاك الله خيرا

اخي الكريم. Taha Okla

تم عمل الكود بنجاح

ربنا يجعله فى ميزان حسناتكم جميعا اخوانى الكرام
ربنا يزيدكم علم