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

مشروع بُنيان المحاسبى

بدأه عمرو الصعيدي في 19 مارس 2010 · 31 رد · 12,794 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#26

ملف البرنامج حتى المرحله التى وصلنا اليها

مع ملاحظة تعديل جملة الأتصال لتتوافق معك

Bonian.zip

تم تعديل هذه المشاركة بواسطة عمرو الصعيدي في 1 مايو 2010 في 22:38

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#27

اخوانى لمن يريد استخدام تقنية ال LINQ فى البرنامج

من الممكن أن نعيد كتابة كود الأضافه السابق كما يلى

         private void btnAddAccount_Click(object sender, EventArgs e)
        {
            /* Use LINQ */

            LinqClasses.BonianDataContext db = new LinqClasses.BonianDataContext(LinqClasses.connectionString);
            Table<LinqClasses.Account> Accounts = db.GetTable<LinqClasses.Account>();
            LinqClasses.Account add = new LinqClasses.Account();

            add.AccID = Convert.ToInt32(txtAccNum.Text);
            add.AccName = txtAccNam.Text;
            add.AccParent = Convert.ToInt32(txtAccPar.Text);
            add.AccClass = cmbxClass.Text;
            add.AccLevel = Convert.ToChar(txtAccLevel.Text);
            add.AccNature = cmbxNat.Text;
            add.AccStatement = cmbxStatmnt.Text;
            add.IsParent = cmbxIsParent.Text;
            add.OpenBalDr = Convert.ToDecimal(txtOpBalDr.Text);
            add.OpenBalCr = Convert.ToDecimal(txtOpBalCr.Text);

            Accounts.InsertOnSubmit(add);
            db.SubmitChanges();

        }

ولتعريف ال Classes السابقه نضيف للمشروع كلاس جديده ونسميها LinqClasses

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

ملحوظه : الكود التالى مأخوذ من ملف dbml المتولد عن طريق ال VS حيث أننى فضلت أن

أنشئ كلاس خاص بى وهو LinqClasses والأستغناء عن ملف dbml

using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Data;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using System.Linq.Expressions;
using System.ComponentModel;
using System;

namespace Bonian
{
    public class LinqClasses
    {
        public static string connectionString = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BonianDB;Data Source=AMR\SQLEXPRESS";
        //public static string connectionString = @"Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|Bonian.mdf";


        [System.Data.Linq.Mapping.DatabaseAttribute(Name = "BonianDB")]
        public partial class BonianDataContext : System.Data.Linq.DataContext
        {

            private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();

            #region Extensibility Method Definitions
            partial void OnCreated();
            #endregion

            public BonianDataContext() :
                base(global::Bonian.Properties.Settings.Default.BonianDBConnectionString, mappingSource)
            {
                OnCreated();
            }

            public BonianDataContext(string connection) :
                base(connection, mappingSource)
            {
                OnCreated();
            }

            public BonianDataContext(System.Data.IDbConnection connection) :
                base(connection, mappingSource)
            {
                OnCreated();
            }

            public BonianDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
                base(connection, mappingSource)
            {
                OnCreated();
            }

            public BonianDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
                base(connection, mappingSource)
            {
                OnCreated();
            }

        }

        [Table(Name = "dbo.Accounts")]
        public partial class Account : INotifyPropertyChanging, INotifyPropertyChanged
        {

            private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

            private int _AccID;

            private string _AccName;

            private System.Nullable<int> _AccParent;

            private string _AccClass;

            private char _AccLevel;

            private string _AccNature;

            private string _AccStatement;

            private string _IsParent;

            private System.Nullable<decimal> _OpenBalDr;

            private System.Nullable<decimal> _OpenBalCr;

            #region Extensibility Method Definitions
            partial void OnLoaded();
            partial void OnValidate(System.Data.Linq.ChangeAction action);
            partial void OnCreated();
            partial void OnAccIDChanging(int value);
            partial void OnAccIDChanged();
            partial void OnAccNameChanging(string value);
            partial void OnAccNameChanged();
            partial void OnAccParentChanging(System.Nullable<int> value);
            partial void OnAccParentChanged();
            partial void OnAccClassChanging(string value);
            partial void OnAccClassChanged();
            partial void OnAccLevelChanging(char value);
            partial void OnAccLevelChanged();
            partial void OnAccNatureChanging(string value);
            partial void OnAccNatureChanged();
            partial void OnAccStatementChanging(string value);
            partial void OnAccStatementChanged();
            partial void OnIsParentChanging(string value);
            partial void OnIsParentChanged();
            partial void OnOpenBalDrChanging(System.Nullable<decimal> value);
            partial void OnOpenBalDrChanged();
            partial void OnOpenBalCrChanging(System.Nullable<decimal> value);
            partial void OnOpenBalCrChanged();
            #endregion

            public Account()
            {
                OnCreated();
            }

            [Column(Storage = "_AccID", DbType = "Int NOT NULL", IsPrimaryKey = true)]
            public int AccID
            {
                get
                {
                    return this._AccID;
                }
                set
                {
                    if ((this._AccID != value))
                    {
                        this.OnAccIDChanging(value);
                        this.SendPropertyChanging();
                        this._AccID = value;
                        this.SendPropertyChanged("AccID");
                        this.OnAccIDChanged();
                    }
                }
            }

            [Column(Storage = "_AccName", DbType = "VarChar(100) NOT NULL", CanBeNull = false)]
            public string AccName
            {
                get
                {
                    return this._AccName;
                }
                set
                {
                    if ((this._AccName != value))
                    {
                        this.OnAccNameChanging(value);
                        this.SendPropertyChanging();
                        this._AccName = value;
                        this.SendPropertyChanged("AccName");
                        this.OnAccNameChanged();
                    }
                }
            }

            [Column(Storage = "_AccParent", DbType = "Int")]
            public System.Nullable<int> AccParent
            {
                get
                {
                    return this._AccParent;
                }
                set
                {
                    if ((this._AccParent != value))
                    {
                        this.OnAccParentChanging(value);
                        this.SendPropertyChanging();
                        this._AccParent = value;
                        this.SendPropertyChanged("AccParent");
                        this.OnAccParentChanged();
                    }
                }
            }

            [Column(Storage = "_AccClass", DbType = "VarChar(100) NOT NULL", CanBeNull = false)]
            public string AccClass
            {
                get
                {
                    return this._AccClass;
                }
                set
                {
                    if ((this._AccClass != value))
                    {
                        this.OnAccClassChanging(value);
                        this.SendPropertyChanging();
                        this._AccClass = value;
                        this.SendPropertyChanged("AccClass");
                        this.OnAccClassChanged();
                    }
                }
            }

            [Column(Storage = "_AccLevel", DbType = "Char(1) NOT NULL")]
            public char AccLevel
            {
                get
                {
                    return this._AccLevel;
                }
                set
                {
                    if ((this._AccLevel != value))
                    {
                        this.OnAccLevelChanging(value);
                        this.SendPropertyChanging();
                        this._AccLevel = value;
                        this.SendPropertyChanged("AccLevel");
                        this.OnAccLevelChanged();
                    }
                }
            }

            [Column(Storage = "_AccNature", DbType = "Char(6) NOT NULL", CanBeNull = false)]
            public string AccNature
            {
                get
                {
                    return this._AccNature;
                }
                set
                {
                    if ((this._AccNature != value))
                    {
                        this.OnAccNatureChanging(value);
                        this.SendPropertyChanging();
                        this._AccNature = value;
                        this.SendPropertyChanged("AccNature");
                        this.OnAccNatureChanged();
                    }
                }
            }

            [Column(Storage = "_AccStatement", DbType = "VarChar(100) NOT NULL", CanBeNull = false)]
            public string AccStatement
            {
                get
                {
                    return this._AccStatement;
                }
                set
                {
                    if ((this._AccStatement != value))
                    {
                        this.OnAccStatementChanging(value);
                        this.SendPropertyChanging();
                        this._AccStatement = value;
                        this.SendPropertyChanged("AccStatement");
                        this.OnAccStatementChanged();
                    }
                }
            }

            [Column(Storage = "_IsParent", DbType = "Char(3) NOT NULL", CanBeNull = false)]
            public string IsParent
            {
                get
                {
                    return this._IsParent;
                }
                set
                {
                    if ((this._IsParent != value))
                    {
                        this.OnIsParentChanging(value);
                        this.SendPropertyChanging();
                        this._IsParent = value;
                        this.SendPropertyChanged("IsParent");
                        this.OnIsParentChanged();
                    }
                }
            }

            [Column(Storage = "_OpenBalDr", DbType = "Money")]
            public System.Nullable<decimal> OpenBalDr
            {
                get
                {
                    return this._OpenBalDr;
                }
                set
                {
                    if ((this._OpenBalDr != value))
                    {
                        this.OnOpenBalDrChanging(value);
                        this.SendPropertyChanging();
                        this._OpenBalDr = value;
                        this.SendPropertyChanged("OpenBalDr");
                        this.OnOpenBalDrChanged();
                    }
                }
            }

            [Column(Storage = "_OpenBalCr", DbType = "Money")]
            public System.Nullable<decimal> OpenBalCr
            {
                get
                {
                    return this._OpenBalCr;
                }
                set
                {
                    if ((this._OpenBalCr != value))
                    {
                        this.OnOpenBalCrChanging(value);
                        this.SendPropertyChanging();
                        this._OpenBalCr = value;
                        this.SendPropertyChanged("OpenBalCr");
                        this.OnOpenBalCrChanged();
                    }
                }
            }

            public event PropertyChangingEventHandler PropertyChanging;

            public event PropertyChangedEventHandler PropertyChanged;

            protected virtual void SendPropertyChanging()
            {
                if ((this.PropertyChanging != null))
                {
                    this.PropertyChanging(this, emptyChangingEventArgs);
                }
            }

            protected virtual void SendPropertyChanged(String propertyName)
            {
                if ((this.PropertyChanged != null))
                {
                    this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
                }
            }
        }
    }
}

البرنامج بعد التحديث فى المرفقات

Bonian.rar

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#28

بسم الله

شاشة الحسابات لم تنتهى بعد ولكن سيكون بها تطوير باستمرار

ولكن ننتقل الأن الى مرحلة ادخال القيود والعمليات واقنرح عليكم الجداول الأتيه :

--//**********************************************************************************************//
/* جدول العمليات*/


CREATE TABLE [dbo].[Transactions]
(

TransactionDate        	    datetime	              NOT NULL ,
TransactionID	                int  		              NOT NULL ,
TransactionDes	            varchar(150)  		      NOT NULL ,
Posting                 char(5)                   NOT NULL ,

CONSTRAINT [PK_Transactions] PRIMARY KEY  CLUSTERED 
	  (TransactionDate,TransactionID)

)

--//**********************************************************************************************//
--/* جدول تفاصيل العمليات*/


CREATE TABLE [dbo].[TransactionsDetails]
(
SerNo               int    identity          NOT NULL ,
TransactionDate        	datetime	              NOT NULL ,
TransactionID	            int  		              NOT NULL ,
AmountDr	        money        	                   ,
AmountCr	        money                              ,
AccName	            varchar(100)	          NOT NULL ,
AccID	            int	                      NOT NULL ,

CONSTRAINT [PK_TransactionsDetails] PRIMARY KEY  CLUSTERED 
	  (SerNo),
CONSTRAINT [FK1_TransactionsDetails_Accounts] FOREIGN KEY 
	(AccID) REFERENCES [dbo].[Accounts](AccID),
CONSTRAINT [FK2_TransactionsDetails_Transactions] FOREIGN KEY 
	  (TransactionDate,TransactionID) REFERENCES [dbo].[Transactions](TransactionDate,TransactionID),

)

ملحوظه : فى هذه الجداول أنا لم احدد نوع السند من حيث كونه

سند قيد

سند قبض

سند دفع

سند تسويه

ولكن اعتبرت أنه سند قيد يوميه عادى ....حتى الأن

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#29

الشكل الذى سوف تكون عليه شاشة العمليات ان شاء الله

post-207223-12729842284367_thumb.jpg

ملحوظه : بعض الدوال التى سوف نستخدمها فى القيود فيما بعد مقتبسه من كود للأخ BazaR فىمدونة محاسبه.نت

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#30

السلام عليكم،،

نصيحة اخ محب

الانظمة المحاسبية = مضيعة للوقت

لا اقول لك قالولي بل اقول لك ادخل هنا ONX ERP

لن تستفيد الا القليل

ERP = High competion and few money

هناك كثير من الافكار البسيطة ممكن تعمل لها برنامج يصيب الهدف :cool:

لايؤمن احدكم حتى يحب لاخية مايحب لنفسة

برجاء عموم الفائدة

اللي يحب يجرب ال ONX ERP

المستخدم : admin

الباسورد: abc123

سبحان الله وبحمده *** سبحان الله العظيم

www.quraany.com

www.arabcs.com

#31

بسم الله الرحمن الرحيم

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

هل عند فتح اي حساب يكون الرصيد الافتتاحي = 0

هل يوجد رصيد افتتاحي مدين ورصيد افتتاحي دائن؟

واذاكان الرصيد الافتتاحي مدين يكون الرصيد الحالي دائن ويكون

الرصيد الحالي(الدائن) = الرصيد الافتتاحي(المدين)+الجانب المدين- الجانب الدائن

واذاكان الرصيد الافتتاحي دائن يكون الرصيد الحالي مدين ويكون

الرصيد الحالي(المدين) = الرصيد الافتتاحي(الدائن)+الجانب الدائن- الجانب المدين

الله في عون العبد مادام العبد في عون اخيه

الله في عون العبد مادام العبد في عون اخيه

#32

شو كلمة السر لقاعدة البيانات

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