17-10-21, 02:56 AM (آخر تعديل لهذه المشاركة : 17-10-21, 03:04 AM {2} بواسطة ragab_most.)
السادة مشرفى المنتدى
السلام عليكم
اريد معرفه كيفيه حساب رصيد المخزن من خلال طرح المبيعات من المشتريات
مرفق لحضراتكم
جدول المبيعات sales
جدول المشتريات achats
جدول الاصناف items
علما بانى استخدم مكتبات الادو فيجوال بيسك 6 وقاعدة البيانات اكسيس
فى انتظار تعاونكم وخاصه انه اول مشاركه لى فى هذا المنتدى الرائع
لكم منى خالص التحيه والاحترام
(17-10-21, 02:56 AM)ragab_most كتب : السادة مشرفى المنتدى
السلام عليكم
اريد معرفه كيفيه حساب رصيد المخزن من خلال طرح المبيعات من المشتريات
مرفق لحضراتكم
جدول المبيعات sales
جدول المشتريات achats
جدول الاصناف items
علما بانى استخدم مكتبات الادو فيجوال بيسك 6 وقاعدة البيانات اكسيس
فى انتظار تعاونكم وخاصه انه اول مشاركه لى فى هذا المنتدى الرائع
لكم منى خالص التحيه والاحترام
18-10-21, 03:02 AM (آخر تعديل لهذه المشاركة : 18-10-21, 03:03 AM {2} بواسطة ragab_most.)
(17-10-21, 02:56 AM)ragab_most كتب : السادة مشرفى المنتدى
السلام عليكم
اريد معرفه كيفيه حساب رصيد المخزن من خلال طرح المبيعات من المشتريات
مرفق لحضراتكم
جدول المبيعات sales
جدول المشتريات achats
جدول الاصناف items
علما بانى استخدم مكتبات الادو فيجوال بيسك 6 وقاعدة البيانات اكسيس
فى انتظار تعاونكم وخاصه انه اول مشاركه لى فى هذا المنتدى الرائع
لكم منى خالص التحيه والاحترام
(17-10-21, 02:56 AM)ragab_most كتب : السادة مشرفى المنتدى
السلام عليكم
اريد معرفه كيفيه حساب رصيد المخزن من خلال طرح المبيعات من المشتريات
مرفق لحضراتكم
جدول المبيعات sales
جدول المشتريات achats
جدول الاصناف items
علما بانى استخدم مكتبات الادو فيجوال بيسك 6 وقاعدة البيانات اكسيس
فى انتظار تعاونكم وخاصه انه اول مشاركه لى فى هذا المنتدى الرائع
لكم منى خالص التحيه والاحترام
السلام عليكم
بالنسبة لمشكلتك في حساب فرق المخزون بعد اضافة المشتريات وطرح المبيعات
صعبة في ADO ,
لأنه كلما كثر عدد سجلات المبيعات والمشتريات تصبح عملية حساب المخزون أبطئ وتأخذ وقت أكثر لأنها تعتمد على حساب السجلات سجل سجل..
--
لكنها بسيطة في الـ DAO وذلك لقدرة الـ DAO على انشاء قواعد بيانات حقيقة وووهمية واتساع تعاملها مع الـ SQL
مقارنة بـ ADO بالرغم من أنها أقدم منها ..
فاذا كنت قادر على البرمجة بـ DAO t أعد صياغة مشروعك وأرفقه هنا وأنا باذن الله سأساعدك به واضيف عليه الاكواد اللازمة لحساب المخزون ..
وإن كنت لا تستطيع البرمجة بها ولا تريد ذلك فمن تضييع الوقت أن نشرح الطريقة..
وشكراً ..
شكرا على النصيحه
تم التغلب على مشكله البطىء بطريقتين
1- عندما يبطىء البرنامج ..... يتم طبع الارصده .... وحذف كافه السجلات .... والبدء من جديد مع ترحيل الارصده مع السجلات الجديده
2- لابد ان يكون البرسيسور والرامات عاليه
وشكرا يا اخى على مساعدتك ورايك يحترم
ترحيل الحسابات يتم بالعادة عند نهاية السنة المالية (سنة ميلادية في اغلب الاحيان) وليس عندما يصبح البرنامج بطيء
في برامج الحسابات الجيدة لا تجد فرق كبير بين اجهزة الكمبيوتر التي معداتها متطورة او بطيئة.
عمليات الجمع فيه البرامج المحاسبية لا تعتمدج على الخاصية البدائية :
n=n+1
بل على أوامر الـ SQL
أمر واحد يجمع كل مافي العمود (مهما كانت عدد خلاياه ) بحسب الشروط الموجودة في الأمر.
======================================
تصور برنامجك سيعمل في محل مشهور (لن نقول جمعية تعاونية) يعني فيه اكثر من 200 عملية في اليوم -
يعني بأقل من شهر سيصبح عدد سجلات لبعض الجداول لديك أكثر 50 ألف سجل.
وسيصبح البرنامج أبطئ وأبطئ - هل ستصبح ترحل الحسابات شهريا أو كل عشرة أيام؟؟؟
=================================================
برنامج الحسابات الذي يجبر المستخدم على شراء جهاز كمبيوتر بمواصفات محددة ليس برنامج حسابات(هو أي شيء آخر عدا ان يكون برنامج حسابات).
النصيحة الوحيدة التي نوجهها لمن يريد استخدام برنامج حسابات أو برنامج يعمل عليه كثيراً هي : تغيير الهارديسك الميكانيكي إلى هارديسك SSD لانه أكثر أمانا للبيانات وعمره اطول
و يسرع الجهاز بنفس الوقت ضعف سرعته على الاقل(هذا ان رغب هو بذلك) وليس تغيير الجهاز كله.
=================================================
بسم الله الرحمن الرحيم .
أولا : لتفادي هذا البطيء عليك بتنظيم استعلاماتك بحيث تحدد الذي تريده من الاستعلام من الاعمدة و تستغني عن Select * From Table و تستعيض عنها بالعمدة التي تريد فقط .
ثانيا : ليس عليك بجلي كل الرو أي السجلات و تقوم باستعلام تحديد آخر 100 سجل أو السجلات التي تلي تاريخ معين مثلا مع إضافة رصيد سابق عن 100 سجل فهذا يخفف عبئ عن البرنامج في حال كان عدد السجلات كبير .
مثال عن استعلام قبل تاريخ : 2020-09-10
PHP كود :
use QtnDB1; IF EXISTS(SELECT * FROM #temp) drop table #temp CREATE TABLE #temp ( [DebitAccount] [decimal](18, 2) NOT NULL, [CreditAccount] [decimal](18, 2) NOT NULL, [BalanceAccount] [decimal](18, 2) NOT NULL, [AccountID] [int] NOT NULL, [AccountName] [nvarchar](50) NOT NULL, [AccountDate] [date] NOT NULL, [AutoNumbering] INT IDENTITY(1,1) PRIMARY KEY, ) ON [PRIMARY] delete from #temp insert into #temp (DebitAccount,CreditAccount,BalanceAccount,AccountID,AccountName,AccountDate) (Select Sum(DebitAccount)As DebitAccount,Sum(CreditAccount)As CreditAccount,Sum(DebitAccount)-Sum(CreditAccount)As BalanceAccount,AccountID,N'رصيد سابق','2020-09-09' From DayBook Where AccountDate < '2020-09-10' And AccountID=1811 group by AccountID,AccountName) DECLARE @i int =1,@b int=1
select DebitAccount,CreditAccount,BalanceAccount,AccountID,AccountName,AccountDate,AutoNumbering from #temp UNION ALL Select Sum(DebitAccount)As DebitAccount,Sum(CreditAccount)As CreditAccount,Sum(ISNULL(DebitAccount,0))-Sum(ISNULL(CreditAccount,0))As BalanceAccount,AccountID,AccountName,AccountDate,max(AutoNumbering) From DayBook Where AccountDate Between '2020-09-10' And '2021-04-15' And AccountID=1811 group by AccountID,AccountName,AccountDate;
سكربت إنشاء الجدول :
PHP كود :
USE [QtnDB1] GO
/****** Object: Table [dbo].[daybook] Script Date: 10/23/2021 2:32:50 PM ******/ SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
CREATE TABLE [dbo].[daybook]( [DebitAccount] [decimal](18, 2) NOT NULL, [CreditAccount] [decimal](18, 2) NOT NULL, [BalanceAccount] [decimal](18, 2) NOT NULL, [AccountID] [int] NOT NULL, [AccountName] [nvarchar](50) NOT NULL, [AccountStatement] [nvarchar](50) NULL, [AccountMoneyName] [int] NOT NULL, [AccountDate] [date] NOT NULL, [AccountNum] [int] NOT NULL, [Accounting] [int] NOT NULL, [AutoNumbering] [int] IDENTITY(1,1) NOT NULL, [IsDeleteed] [bit] NULL, CONSTRAINT [PK_daybook] PRIMARY KEY CLUSTERED ( [AutoNumbering] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
و طبعا قبل كل ذلك استبدال قواعد البيانات أكسيس و ما الى ذلك بقاعد بيانات مثل سيكول سيرفير أو ماي اس كيو ال سيرفير .
و طبعا كما قال الأخ : Taha Okla يحبذ استبدال الهارد العادي بهارد SSD و الله الموفق .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر