تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس السادس عشر - التحكم في عمليات البيع والشراء
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .


التحكم في عمليات البيع والشراء .


سوف نصمم الفورم الخاص بهذه العملية بحيث يتحتوي على جدول ، وفوقه زري اختيار ( عمليات البيع - عمليات الشراء ) اضافة إلى تاريخ العمليات المطلوب تعديلها . وذلك في أداة MaskedEdit كما شرحنا في الدروس السابقة .


وبأسفل الفورم يوجد زرين ، للحذف ، وللانهاء . كما يوجد بأعلاه زر ( نفذ ) والذي يقوم بتحديث الفورم حسب التاريخ أو العملية الجديدة .
ونسمي هذا الفورم Frm_Sel_Bay2 .

ولا تنس لهذا الفورم أن تجعل خاصية MDIChild = True .
وكا هي العادة عندما نشغل أي فورم تابع للفورم MDIForm1 .

Frm_Sel_Bay2.Show


لكن في حدث Form_Load نضبط الأبعاد ونستدعي حدث Refresh_Me ، ونجعل حقل التاريخ يحتوي على تاريخ اليوم الحالي :
** نضبط الأبعاد فيما إذا كنا نريد شاشة بارزة.



كود :
[align=right]Me.Height = 4335
Me.Width = 5895
Me.Left = ((MDIForm1.Width - Me.Width) / 2)
Me.Top = ((MDIForm1.Height - Me.Height) / 2) - 400
Me.Show

Dim Myday, Mymonth, Myyear
Myday = Day(Now)
If Len(Myday) = 1 Then Myday = 0 & Myday
Mymonth = Month(Now)
If Len(Mymonth) = 1 Then Mymonth = 0 & Mymonth
Myyear = Year(Now)
MaskEdBox1.Text = Myday & "/" & Mymonth & "/" & Myyear

Refresh_Me[/align]


وسنرى الآن على ماذا سيحتوي أمر
Refresh_Me :

في بداية الأمر نحتاج إلى استدعاء دالة باسم Flex تقوم باعداد الجدول .
وستقوم هذه الدالة بمعرفة عدد العمليات بناء على عمليات البيع أو الشراء أولاً .



كود :
[align=right]If Option1.Value = True Then
SQL = "select count(*) as cnt from tb_sel_bay where kind=0 and date=#" & Format(MaskEdBox1.Text, "mm/dd/yyyy") & "#"
Else
SQL = "select count(*) as cnt from tb_sel_bay where kind=1 and date=#" & Format(MaskEdBox1.Text, "mm/dd/yyyy") & "#"
End If
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)
MyCnt = T4!cnt[/align]
حيث نكون قد عرفنا المتغير MyCnt في Genral لإننا سنستخدمه لاحقاً .

ثم تجهز الجدول :



كود :
[align=right]MSFlexGrid1.Clear
MSFlexGrid1.Cols = 6
MSFlexGrid1.Rows = MyCnt + 1

MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = "ت"
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "رقم"
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = " اسم البضاعة"
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = "التاريخ"
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = "الكمية"
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = "السعر"

MSFlexGrid1.ColAlignment(0) = 5
MSFlexGrid1.ColAlignment(1) = 5
MSFlexGrid1.ColAlignment(2) = 3
MSFlexGrid1.ColAlignment(3) = 5
MSFlexGrid1.ColAlignment(4) = 5
MSFlexGrid1.ColAlignment(5) = 5

MSFlexGrid1.ColWidth(0) = 500
MSFlexGrid1.ColWidth(1) = 500
MSFlexGrid1.ColWidth(2) = 1500
MSFlexGrid1.ColWidth(3) = 1200[/align]
نستدعي هذا الأمر في بداية اجراء


Refresh_Me .


ثم ننتقل إلى أول سجل في الجدول T5 إذا لم تكن فارغة ، ونبدأ في الدوران من أول سجل إلى آخر سجل ووضع السجل الذي له Kind والتاريخ المناسب في الجدول .



كود :
[align=right]Sub Refresh_Me()
Flex
Dim Key, n As Integer
n = 0
If T5.RecordCount <> 0 Then T5.MoveFirst
If Option1.Value = True Then
Key = 0
Else
Key = 1
End If

For i = 0 To T5.RecordCount - 1
If T5!kind = Key And Format(T5!Date, "dd/mm/yyyy") = MaskEdBox1.Text Then
n = n + 1
MSFlexGrid1.Row = n
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = n
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = T5!Number
MSFlexGrid1.Col = 2
SQL = "select name from tb_product where number=" & T5!product & ""
Set T4 = D1.OpenRecordset(SQL, dbOpenDynaset)
MSFlexGrid1.Text = T4!Name
T4.Close
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = T5!Date
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = T5!Count
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = T5!price
End If
T5.MoveNext
Next i
End Sub[/align]
هل تعرف أين نحتاج هذا الامر أيضاً ... في زر ( تنفيذ ) . حيث سنستدعي أمر Refresh_Me .


التعديل في عمليات البيع والشراء .


سنضيف زراً جديداً بجانب زر الحذف ، ونسميه تعديل . ويختص هذا الزر بتعديل محتويات البضاعة الحالية إلى محتويات جديدة .

سوف نقوم باعداد فورم سريع يحتوي على خانات التعديل ، وسيكون عبارة عن نسخة من فورم اضافة عملية بيع وشراء ، إلا أن النوع يوضع افتراضياً كما توضع البيانات افتراضياً أيضاً . كما ستحتوي على Varibale متغير يوضح رقم العملية التي نقوم بتعديلها حالياً . وسنقوم بذلك عن طريق تعريفه Public .



كود :
[align=right]Public Num As Integer[/align]
كما أننا لن نعيد اظهار ( وحدة - صندوق ) مرة اخرى .
أيضاً سيظهر اسم البضاعة على أنه ثابت Lable .


والآن إلى أمر اظهار هذا الفورم :



كود :
[align=right]If MSFlexGrid1.Row = 0 Then Exit Sub

MSFlexGrid1.Col = 1
Frm_Edit_SP.Num = MSFlexGrid1.Text
MSFlexGrid1.Col = 2
Frm_Edit_SP.Label3.Caption = MSFlexGrid1.Text
MSFlexGrid1.Col = 3
Frm_Edit_SP.MaskEdBox1.Text = Format(MSFlexGrid1.Text, "dd/mm/yyyy")
MSFlexGrid1.Col = 4
Frm_Edit_SP.Text2.Text = MSFlexGrid1.Text
MSFlexGrid1.Col = 5
Frm_Edit_SP.Text1.Text = MSFlexGrid1.Text

Frm_Edit_SP.Show 1
Refresh_Me[/align]
يتبع ...
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس السادس عشر - التحكم في عمليات البيع والشراء - بواسطة Raggi Tech - 15-10-12, 08:10 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd RaggiTech 0 13,820 15-10-12, 09:10 AM
آخر رد: RaggiTech
  الدرس الثالث والثلاثون - كيفية عمل اعداد Setup للبرنامج RaggiTech 0 4,308 15-10-12, 09:08 AM
آخر رد: RaggiTech
  الدرس الثاني والثلاثون - التحويل إلى exe RaggiTech 0 4,341 15-10-12, 09:07 AM
آخر رد: RaggiTech
  الدرس الحادي والثلاثون - تعددية المستخدمين - البحث وطباعة الفواتير - التعليمات ... RaggiTech 2 5,308 15-10-12, 09:05 AM
آخر رد: RaggiTech
  الدرس الثلاثون - التعامل مع شريط الأدوات ToolBar RaggiTech 0 4,192 15-10-12, 08:59 AM
آخر رد: RaggiTech
  الدرس التاسع والعشرون - التعامل مع أشرطة الحالة Statues Bar RaggiTech 0 3,883 15-10-12, 08:57 AM
آخر رد: RaggiTech
  الدرس الثامن والعشرون -الطباعة في البرنامج . RaggiTech 4 5,769 15-10-12, 08:56 AM
آخر رد: RaggiTech
  الدرس السابع والعشرون - مقدمة إلى التعامل مع التقارير من خلال DataReport RaggiTech 2 6,607 15-10-12, 08:45 AM
آخر رد: RaggiTech
  الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين RaggiTech 1 4,735 15-10-12, 08:39 AM
آخر رد: RaggiTech
  الدرس الخامس والعشرون - الإحصائيات والرسوم البيانية RaggiTech 0 4,040 15-10-12, 08:37 AM
آخر رد: RaggiTech

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم