منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : ارجو تقيم الكود المرفق - جلب اعلي رقم لتسلسل نصي للباركود
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

قومت بالتعديل على هذا الكود من الرد استاذى الفاضل   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()
تفضل اخي هذا اختصار للكود 


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() 
عفوا استاذي      Kamil 

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


[attachment=30021]

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

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

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

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

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

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