14-04-23, 05:02 PM
(آخر تعديل لهذه المشاركة : 14-04-23, 05:15 PM {2} بواسطة new_programer.)
(13-04-23, 12:19 AM) كتب :(12-04-23, 10:58 PM)new_programer كتب : الله ينور عليك استاذى الكبير
كدة اتحلت نصف المطلوب
كيف
فإذا عاد برقم 0 فهذا يعني أنه ليس هناك باركود مسجل، فعندئذ عليك بإنشاء باركود جديد لحفظه مع بياناته بStoredProcedure خاص بالإضافة وليكن إسمه AddBarCode
كيف اضيف باركو جديد فى نفس ال Stored Procedure
هنا محتاج اذا عاد برقم 0
ياخد اخر باركود +1
وهيسجل الباركود
كيف اضيفها فى نفس ال بStoredProcedure
هذا آخر تعديل
إذا لم تحصل على المطلوب، فكما ذكرت لك (اعمل مشروع بسيط مع ملف قاعدة بيانات لتطبيق الفكرة عليه)
كود :
ALTER PROCEDURE [dbo].[StoredProcedure2] (@itemCode int, @supplierCode int, @unitCode int)
AS
DECLARE @barCode int
SET @barCode = (SELECT [barCode] FROM Uint_ItemsTbl WHERE [ItemCode]=@itemCode AND [SupplierCode]=@supplierCode AND [UnitCode]=@unitCode)
/* التأكد من موجود باركود مسبق */
IF @barCode IS NOT NULL
RETURN @barCode -- الباركود المسجل
ELSE
BEGIN TRY
-- الباركود الجديد
SET @barCode = (SELECT MAX([barCode]) + 1 FROM Uint_ItemsTbl)
/* إدخال البيانات */
INSERT INTO [Uint_ItemsTbl] ([barCode], [itemCode], [SupplierCode], [UnitCode]) VALUES (@barCode, @itemCode, @supplierCode, @unitCode)
END TRY
BEGIN CATCH
RETURN -1
END CATCH
RETURN @barCode
كود :
Using cmd As New SqlCommand("StoredProcedure2", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@itemCode", Int(txtItemCode.Text))
cmd.Parameters.AddWithValue("@supplierCode", Int(txtSupplierCode.Text))
cmd.Parameters.AddWithValue("@unitCode", Int(txtUnitCode.Text))
Dim param As New SqlParameter("returnValue", Nothing)
param.Direction = ParameterDirection.ReturnValue
cmd.Parameters.Add(param)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
Dim retVal As Integer = cmd.Parameters("returnValue").Value
'MsgBox(retVal)
Select Case retVal
Case Is > 0
txtBarCode.Text = retVal
Case -1
MsgBox("Return Value: " & retVal & vbNewLine & "فشل")
End Select
End Using
إذا لم تحصل على المطلوب، فكما ذكرت لك (اعمل مشروع بسيط مع ملف قاعدة بيانات لتطبيق الفكرة عليه)
شكرا جد جدا جدا
معلمي واستاذي الفاضل .
تم الانتهاء من التعديل على الكود ويعمل الان بنجاح كما هو المطلوب .
لا اعلم كيف اشكرك على المساعدة .
ربنا يوفقك ويكرمك ويذيدك من علمه ويجعله فى موازين حسناتك
تم اضافة الكود التالي - عندما يكون الجدول فارغ .
PHP كود :
IF @barCode IS NULL
SET @barCode=1
الكود كامل بعد التعديل
PHP كود :
ALTER PROCEDURE [dbo].[StoredProcedure2] (@itemCode int,@barCodeID int, @vindCode int,@StoreCode int, @unitCode int)
AS
DECLARE @barCode int
--SET @barCode = (SELECT [barCode] FROM Uint_ItemsTbl WHERE [ItemCode]=@itemCode AND [vindCode]=@vindCode AND [StoreCode]=@StoreCode AND [UnitCode]=@unitCode )
SET @barCode = (SELECT [barCode] FROM Uint_ItemsTbl WHERE [ItemCode]=@itemCode AND [vindCode]=@vindCode AND [UnitCode]=@unitCode )
/* التأكد من موجود باركود مسبق */
IF @barCode IS NOT NULL
RETURN @barCode -- الباركود المسجل
ELSE
BEGIN TRY
-- الباركود الجديد
SET @barCode = (SELECT MAX([barCode]) + 1 FROM Uint_ItemsTbl)
IF @barCode IS NULL
SET @barCode=1
/* إدخال البيانات */
--INSERT INTO [Uint_ItemsTbl] ([itemCode],[barCodeID],[barCode],[vindCode],[StoreCode],[UnitCode]) VALUES ([@itemCode],[@barCodeID],[@barCode],[@vindCode],[@StoreCode],[@UnitCode])
INSERT INTO [Uint_ItemsTbl] (itemCode,barCodeID,barCode,vindCode,StoreCode,UnitCode) VALUES (@itemCode,@barCodeID,@barCode,@vindCode,@StoreCode,@unitCode)
END TRY
BEGIN CATCH
RETURN -1
END CATCH
RETURN @barCode
شرح بسيط للكود لكي يستفيد منه الاخوة .
يوجد جدول الاصناف / الموردين / الوحدات( باركود لكل وحدة )
يتم ربط كل صنف مع مورد بكود خاص لاستخدامة فى بعض التقارير لاحقا وسهولة الاستعلامات للموردين مع الاصناف
الكود عند انشاء فاتورة مشتريات جديدة
بيتم تحديد المورد مع المخزن
وعند ادراج صنف يتم الاستعلام فى جدول الوحدات ( يعتبر جدول المخزون او الاصناف اللى فى المخزن )
بيتم الاستعلام عن الصنف مع المورد مع الوحدة / لان كل وحدة لها باركود منفرد بها مربوط مع المورد
لو يوجد باركود مسجل من قبل يتم احضارة لاضافة علية الكمية المشتراة بعد حفظ الفاتورة
اذا لم يوجد باركود مسجل من قبل بيتم توليد باركود جديد فى جدول الوحدات ( المخزن )
-----------------------
الكود اخد مني فترة كبيرة ومحاولات كتير جدا لكن دون الوصول الى المطلوب
لكن تم الوصول الى المطلوب بفضل مساعدة الاخوة الافاضل
وبالاخص الكود الخاص باستاذي الكريم ( عضو فعال ) الشكر لك
وشكرا جدا عضو فعال

