الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل من مرشد لفكرة الحذف والتعديل على فاتورة

مغلق
بدأه ماهمه شي في 12 سبتمبر 2005 · 7 رد · 846 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني اقوم بتصميم برنامج لمحل صغير

واجهتني مشكلة في كيفية عمل نافذة الفاتورة فاردت ان استفيد من اراكم

الفاتورة فيها رقم الفاتورة (يدخله البائع)

ثم هناك قائمة منسدلة فيها انواع البضائع عند اختيار البضاعة (البضاعة والاسعار تكون مدخلة مسبقا من نافذة أخرى) يظهر السعر

الخطوة الثانية تكون بادخال الكمية ومن ثم حساب الكمية عن طريق ضرب المبلغ بالكمية

ثم زر قبول العملية

وبهذا ادخلنا اول عنصر في الفاتورة

ثم يتم ادخال العناصر الاخرى وهكذا حتى نهاية جميع البضائع المشتراة

كل شي ماشي تمام الى ان وصلت الى عملية حذف الفاتورة او التعديل عليها فتضاربت الأفكار في راسي

خاصة ان جميع الفواتير في قاعدة بيانات واحدة (مفتاحها الاساسي الترقيم التلقائي) واذا حاولت عرض الداتاسيت في الداتا جرد تظهر جميع الفواتير واذا عملت فلترة عن طريق data view لرقم الفاتورة فلا استطيع التعديل لانها read only

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

اتمنى التفكير قبل الاجابة لان المسالة تبدو سهلة (اتمنى انها كذلك)

تم تعديل هذه المشاركة بواسطة الغملاسي في 12 سبتمبر 2005 في 08:20

#2

سيدي هناك أسلوب أستخدمه وهو أن تستخدم TreeView أو DataGrid تحمل فيهم أرقام الفواتير وتاريخ الادخال

ومن ثم عند الضغط على أي فاتورة يقوم بتحميل كافة بيانات الفاتورة داخل الحقول ويحمل رقم الفاتورة داخل متغير أو حقل حسب ما تريد

ثم يقوم المستخدم بالتعديل وحفظ الفاتورة

#3

اخوي ahm_ib

اشكر لك ردك

ارجوا ان تخبرني عن كيفية تحميل بيانات الفاتورة المطلوبة فقط بدون استخدام data view

#4

السلام عليكم

اقتباس
واذا حاولت عرض الداتاسيت في الداتا جرد تظهر جميع الفواتير واذا عملت فلترة عن طريق data view لرقم الفاتورة فلا استطيع التعديل لانها read only
هذا الكلام يا أخي غير صحيح فـ data view ليست للقراءة فقط.

بل هي أفضل بكثير من التعامل مع الجدول أو الـ DataSet مباشرتاً .

كون فيها تحكم أكثر كمنع الحذف أو الاضافة أو التحديث و فيها ميزات أكثر من الجدول أو الـ DataSet

كالترتيب و التصفية. إضافة أنها وسيط بين الجدول و العناصر المرتبطة بالبيانات لذلك هي أكثر أماناً من غيرها.

وهي بلا شك الخيار الافضل نسبةً للعناصر الاخرى.

أما بالنسبةٍ للسؤال فكما ذكر لك الاخ الكريم أما DataGrid أو TreeView و الافضل هي DataGrid .

والله أعلم

في المثال يتضح المقال

#5

اخي الغملاسي اجزل الله لك الخير انت وجميع الاعضاء

هل اعمل update عادي من ال dataview مثل ما اتعامل مع الداتا ست

#6

نعم مثل ما تعمل مع الـ DataSet تماماً

Me.DAMain.Update(DVMain1.Table)
DVMain1.Table.AcceptChanges()

بالتوفيق أخي الكريم.

في المثال يتضح المقال

#7

اخي الغملاسي

معليش تعبتك معي

لكن getchange ماهي member من ال data view

بمعنى اني لا استطيع ان اعاملها مثل ال dataset

واذا استخدمت

Me.DAMain.Update(DVMain1.Table)

DVMain1.Table.AcceptChanges()

تظهر رسالة

object reference not set to an instance of an object

#8

السلام عليكم

أخي العزيز يمكنك ذلك و الافضل أنه عندما تنوي التحديث أن تستخدم DataSet بدل من DataView

كما هو معتاد

أما عن سؤالك فيوجد هذا السلوك , لكن المنطق يختلف فهنى DataTable وليس DataSet

يتم تعريفه بهذا الشكل

Dim DTC As New DataTable
DTC = CType(DVMain1.Table.GetChanges, DataTable)
Me.DAMain.Update(DTC)
DsMain1.Merge(DTC)
DsMain1.AcceptChanges()

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

فإذا كان مشروعك عبارة عن عدة جداول (وهو المعتاد) فتستطيع التحديث عن طريق DataSet مع البقاء على

استخدام DataView للإستفادة مما ذكرناه في المشاركة السابقة في هذا الموضوع.

بالتوفيق أخي العزيز.

في المثال يتضح المقال

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…