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

فاتورة مبيعات رائعة

بدأه sayed fox في 30 أكتوبر 2010 · 10 رد · 8,692 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

لقد قمت بتصميم كل شيء في الفاتورة

ما عدا جدول التفاصيل لا اعرف كيف اقوم بتصمصمه و كيف اجعله مرقم بهذه الصورة و ايضاً يكون عدد الصفوف ثابت

مثلاً و ليكن 1000 صف.

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

لكم مني كل الشكر.

post-50357-018853600 1288390120_thumb.jp

المرفقات
فاتورة مبيعات.JPG
#2

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

وبالنسبة للستايل بامكانك بكل سهولة تغيير الستايل في DataGrid

وعند اضافة كل صنف تقوم بملئ الخلايا بالترتيب بالبيانات بالكود

جرب وسنساعدك..

بالتوفيق

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#3

اتمنى ان تزدودني بهذا الحل على مثال ان امكن او الاكواد

اكون شاكر ليك

#4

السلام عليكم

تفضل أخي تطبيق صغير للغريد في المرفقات

post-40855-099518900 1288685629_thumb.jp

الشرح:

1- نقوم باضافة غريد للفورم

2- نقوم باضافة اعمدة للغريد يدويا بحيث يكون اول عمود من نوع Button

3- نقوم ببعض التنسيقات للغريد لحجم الاعمد والوان الاسطر ولون الخط في خلية الاجمالي

4-نكتب الكود التالي في حدث تحميل الفورم لتعبئة الغريد عند فتح النافذة بشكل تلقائي ب 1000 سطر

 private void Form3_Load(object sender, EventArgs e)
        {
            //تعبئة الغريد يمكنك ان تضع عدد الاسطر الذي تريده  في الحلقة
            for (int i = 1; i <= 1000; i++)
            {
                object[] obj = { i.ToString(), string.Empty, string.Empty, string.Empty, string.Empty,string.Empty };
                dataGridViewSales.Rows.Add(obj);

            }
        }

5- نكتب الكود التالي لحساب قيمة الاجمالي عند تلقائيا عند تعبئة خانة الافرادي والكمية:

private void dataGridViewSales_CellValidated(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 3 | e.ColumnIndex == 4 | e.ColumnIndex == 5)
                if (dataGridViewSales.Rows[e.RowIndex].Cells[2].Value.ToString() != string.Empty && dataGridViewSales.Rows[e.RowIndex].Cells[3].Value.ToString() != string.Empty)
                    dataGridViewSales.Rows[e.RowIndex].Cells[4].Value = Convert.ToInt32(dataGridViewSales.Rows[e.RowIndex].Cells[2].Value) * Convert.ToInt32(dataGridViewSales.Rows[e.RowIndex].Cells[3].Value);
        }

عفوا لقد كتبت الكود بالسي شارب لكن اظن انه يمكنك تحويله بسهوله للفي بي :happy:

وعليك الان تحسين الاخراج بالشكل الذي تراه مناسبا

أرجو ان تعم الفائدة

بالتوفيق

SalesProject.rar

المرفقات
1.jpg

تم تعديل هذه المشاركة بواسطة was_hal في 2 نوفمبر 2010 في 11:23

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#5

اخي الحبيب مشكووووور على هذا المثال الرائع

اذا تكرمت ان تحول لنا حدث تحميل الفورم الى vb.net

ولك جزيل الشكر

#6
aladein كتب:

اخي الحبيب مشكووووور على هذا المثال الرائع

اذا تكرمت ان تحول لنا حدث تحميل الفورم الى vb.net

ولك جزيل الشكر

على الرحب والسعة

 Private Sub Form1_Load(sender As Object, e As EventArgs)
      'تعبئة الغريد يمكنك ان تضع عدد الاسطر الذي تريده  في الحلقة
        For i As Integer = 1 To 1000
            Dim obj As Object() = {i.ToString(), String.Empty, String.Empty, String.Empty, String.Empty, String.Empty}
            dataGridViewSales.Rows.Add(obj)
        Next i
   End Sub 'Form1_Load

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#7

اخي الغالي

شكرا لك على حسن تعاونك

لقد قمت بعمل الفاتورة وكل شئ تمام

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

لذلك ارفقت لك الملف عسى ان تساعدني في تصحيح هذه الاخطاء

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

البرنامج.rar

#8
sayed fox كتب:

اخي الغالي

شكرا لك على حسن تعاونك

لقد قمت بعمل الفاتورة وكل شئ تمام

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

لذلك ارفقت لك الملف عسى ان تساعدني في تصحيح هذه الاخطاء

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

أهلا أخي سيد

يظهر عندي خطا عند فتح اي نافذة في حالة التصميم عند System.ComponentModel

أنا استخدم VS2008 ربما هذه المكتبة تم تعديلها لذلك ارفق المشروع مع ملف Solution ليتم تحويله

بالنسبة للموديول تم كتابته فيمايلي:

Imports System.Data
Imports System.Data.OleDb

''' <summary>
''' Module For Connect to DataBase
''' </summary>
''' <remarks></remarks>
Module DataBase
    Private con As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\db1.mdb"
    Private Conn As New OleDbConnection(con)

    Public Property DBConnection() As OleDbConnection
        Get
            Return Conn
        End Get
        Set(ByVal value As OleDbConnection)
            Conn = value
        End Set
    End Property

    Public Sub OpenDBConnection()
        Try
            If Conn.State = ConnectionState.Closed Then
                Conn.Open()
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub

    Public Sub CloseDBConnection()
        Try
            If Conn.State = ConnectionState.Open Then
                Conn.Close()
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub


End Module

أظن انه واضح

بالتوفيق

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#9

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

اليك المرفقات

post-50357-007902400 1292085460_thumb.jp

post-50357-066798800 1292085474_thumb.jp

WindowsApplication1.rar

المرفقات
1.jpg2.jpg
#10

أخي الكريم لم تقل انك تستخدم VS2010 عذرا منك ولكن ليس لدي VS2010 وانا استخدم 2008 إذا استطعت قم بتحويله الى VS2008 او قم بكتابة الاكواد وضعها هنا وسوف نساعدك ان شاء الله

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#11

اخي الغالي

عذراً لم اجد اداة لتحويل المشروع من 2010 الى 2008

لذلك ارفقت لك صور قاعدة البيانات و الجداول

وصورة الفاتورة والاكواد المستخدمة

1-صورة الجداول

post-50357-093760400 1292173731_thumb.jp

2-جدول BETAcc00

post-50357-006057200 1292174004_thumb.jp

3-جدول BETSanf

post-50357-025308200 1292174247_thumb.jp

4-جدول Froaa

post-50357-036538900 1292174324_thumb.jp

5-جدول MabiatDetails

post-50357-080060200 1292174401_thumb.jp

6-جدول MabiatMaster

post-50357-077496300 1292174477_thumb.jp

7-جدول Makhazen

post-50357-072423400 1292174660_thumb.jp

8-جدول Omlat

post-50357-041531100 1292174711_thumb.jp

9-جدول Sales

post-50357-020268700 1292174765_thumb.jp

10-صورة العلاقات بين الجداول

post-50357-038992000 1292174544_thumb.jp

11-صورة الفاتورة

post-50357-051462400 1292173820_thumb.jp

الاكواد:

Public Class frmmabiat
    Dim con As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\db1.mdb"
    Dim SQLStrM As String = "select * FROM MabiatMaster"
    Dim SQLStrD As String = "select * FROM MabiatDetails"
    Dim DTM As New OleDbDataAdapter(SQLStrM, con)
    Dim DTD As New OleDbDataAdapter(SQLStrD, con)
    Dim Conn As New OleDbConnection(con)
    Dim DSM, DSD As New DataSet
    Dim BCM, BCD As New BindingSource

 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        DTM.Fill(DSM, "MabiatMaster")
        BCM.DataSource = DSM.Tables("MabiatMaster")
        BCM.Filter = "NumD =" & NumM.Text

        DTD.Fill(DSD, "MabiatDetails")
        BCD.DataSource = DSD.Tables("MabiatDetails")
        BCD.Filter = "NumD =" & NumM.Text
        DataGridView1.DataSource = bcD

           End Sub
المرفقات
01.jpg03.jpg04.jpg06.jpg07.jpg08.jpg09.jpg05.jpg10.jpg11.jpg12.jpg

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