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

مشروع تسيير مخازن بسيط

رائج
بدأه علي .ع في 29 أغسطس 2008 · 390 رد · 76,879 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#176
اقتباس
أخي علي هنا سنستخدم جدول article2 , أليس كذلك كونه لايحوي بيانات محفوظة

نعم اخي طلال سنستخدم نفس الجدول

اقتباس
سؤال: Daticle2 , Darticle3 مرتبطان بالجدول Article2 , هل هذا له علاقة إذا كنا سنستخدم الجدول الفواتير والطلبيات

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

بالتوفيق

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#177

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

أسف على التأخير أخي علي

كنت أحاول ربط جدول Article2 الخاص بالفواتير بـDarticle3 كون الجدول الأول مرتبط بـDarticle2 ولكن كانت هناك مشاكل

هذا قسم من المطلوب , ولاأعرف ماذا يحتاج غير الربط إلى Darticle3 , كي تنتقل البيانات إلى الجدول

هل العمل في المفتاح إضافة؟؟؟؟؟؟؟

بالتوفيق إن شاء الله

تم تعديل هذه المشاركة بواسطة talal ibrahim belal في 2 نوفمبر 2008 في 10:57

#178

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

الحل سهل في الواقع يوجد حلين للمشكلة اخ طلال

الحل الاول هو ان تنشاء TTAble اخر وتربطه DAritcle3 ومن ثم تعمل بشكل حر

الحل الثاني ان تلغي تفعيل Darticle2 بمجرد فتح نموذج الفواتير

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

تحياتي لك

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#179

مالجديد عندك اخ طلال

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#180

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

اسف على التأخير أخي علي

لقد حاولت بعدة وسائل بفلترة وبدون فلترة ولكن يبدو هناك أمور تغيب عني

لاأعرف أين الحطأ

sto.zip

تم تعديل هذه المشاركة بواسطة talal ibrahim belal في 4 نوفمبر 2008 في 15:37

#181

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

حسننا هنا سنقوم باخراج المواد من المخزون فلا يجوز ان يكون المخزون النهائي 0 او اقل من المية التي نريد سحبها

نستخدم هنا الطرح من المخزون الموجود وليس كما في الطلبيات جمع المخزون الداخل مع الكمية النهائية

اخر شيء وامتنى ان لا تنساه هو التفقيط اي تحويل مبلغ الفاتورة الى ارقام ومن ثم الطباعة ستاركه لك اذا اردت المحاولة

انتظر منك رد الباقي ساقدمه اليوم وارجو منك ان تحاول قبل ذلك وهكذا نكون قد اشرفنا على قرب نهاية المشروع

وفقنا الله واياكم

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#182

أخي علي

أولا : جعلت المخزون الأولي يساوي المخزون النهائي

ثانيا: المخرجات تساوي بيانات جدول الفواتير

ثالثا: المخزون النهائي يساوي المخزون الأولي - المخرجات

هل هذه العملية خطأ

طبعابشرط أن تكون كمية المخرجات أصغر من كمية المخزون الأولي

#183

يا سلام عليك هذا هو المطلوب فعلا

لذا سااخر ارفاق التعديل الى ان تقدم ما انجزت وان شاء الله سنناقش الامر

وكذلك تحويل الارقام الى احرف

تحياتي لك

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#184

سأبدأ المحاولة من جديد

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

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

تم تعديل هذه المشاركة بواسطة talal ibrahim belal في 5 نوفمبر 2008 في 01:53

#185

يمكنك ارفاق الكود وان شاء الله سنصححه سويا

بالتوفيق

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#186

هذا ماكنت أحاول القيام به

begin
DM.tvon.Post;
DM.tArticle3.First;
while not DM.tArticle3.eof do
begin
DM.TStock.Filtered:=False;
DM.TStock.Filter:='Code_Article='+DM.tArticle3Code_Article.Text;
DM.TStock.Filtered:=True;
if not DM.Tstock.Locate('code_Article',DM.tArticle3Code_Article.Text,[])then
begin

DM.TStock.Append;
DM.TStock.FieldByName('Qts_si').Value:=dm.Tstock.fieldbyname('Qts_f').Value;
DM.TStock.FieldByName('Pu_si').Value:=dm.Tstock.fieldbyname('Pu_f').Value;
DM.TStock.FieldByName('MOn_si').Value:=dm.Tstock.fieldbyname('Mon_f').Value;
DM.TStock.FieldByName('N_Fact_Bon').Value:=StrToFloat(DBEdit1.Text);
DM.TStock.FieldByName('Date_F_C').Value:=DateTimePicker1.Date;
DM.TStock.FieldByName('Code_Cli_four').Value:=StrToFloat(Edit1.Text);
DM.TStock.FieldByName('Remarque').Value:=DBEdit2.Text;
DM.TStock.FieldByName('Qts_s').Value:=DM.tArticle3.FieldByName('Quantite').Value;
DM.TStock.FieldByName('Pu_s').Value:=DM.tArticle3.FieldByName('Prix_de_vent').Value;
DM.TStock.FieldByName('MOn_s').Value:=DM.tArticle3.FieldByName('Quantite').Value * DM.tArticle3.FieldByName('Prix_de_vent').Value;
DM.TStock.FieldByName('Code_Article').Value:=DM.tArticle3.FieldByName('Code_Article').Value;
DM.TStock.FieldByName('Qts_f').Value:=DM.TStock.FieldByName('Qts_si').Value -DM.TStock.FieldByName('Qts_s').Value;
DM.TStock.FieldByName('Pu_f').Value:=DM.TStock.FieldByName('Pu_e').Value;
DM.TStock.FieldByName('MOn_f').Value:=DM.TStock.FieldByName('MOn_si').Value -DM.TStock.FieldByName('MOn_s').Value;
DM.TStock.Post;
DM.TStock.Filtered:=False;
DM.tArticle3.Next;


end;
end;

تم تعديل هذه المشاركة بواسطة talal ibrahim belal في 5 نوفمبر 2008 في 05:51

#187

أتصور الحل على الشكل التالي

begin
DM.tvon.Post;
DM.tArticle3.First;
while not DM.tArticle3.eof do
begin
DM.TStock.Filtered:=False;
DM.TStock.Filter:='Code_Article='+DM.tArticle3Code_Article.Text;
DM.TStock.Filtered:=True;
if not DM.Tstock.Locate('code_Article',DM.tArticle3Code_Article.Text,[])then
begin

DM.TStock.Append;
DM.TStock.FieldByName('Qts_si').Value:=dm.Tstock.fieldbyname('Qts_f').Value;
DM.TStock.FieldByName('Pu_si').Value:=dm.Tstock.fieldbyname('Pu_f').Value;
DM.TStock.FieldByName('MOn_si').Value:=dm.Tstock.fieldbyname('Mon_f').Value;
DM.TStock.FieldByName('N_Fact_Bon').Value:=StrToFloat(DBEdit1.Text);
DM.TStock.FieldByName('Date_F_C').Value:=DateTimePicker1.Date;
DM.TStock.FieldByName('Code_Cli_four').Value:=StrToFloat(Edit1.Text);
DM.TStock.FieldByName('Remarque').Value:=DBEdit2.Text;
DM.TStock.FieldByName('Qts_s').Value:=DM.tArticle3.FieldByName('Quantite').Value;
DM.TStock.FieldByName('Pu_s').Value:=DM.tArticle3.FieldByName('Prix_de_vent').Value;
DM.TStock.FieldByName('MOn_s').Value:=DM.tArticle3.FieldByName('Quantite').Value * DM.tArticle3.FieldByName('Prix_de_vent').Value;
DM.TStock.FieldByName('Code_Article').Value:=DM.tArticle3.FieldByName('Code_Article').Value;
DM.TStock.FieldByName('Qts_f').Value:=DM.TStock.FieldByName('Qts_si').Value -DM.TStock.FieldByName('Qts_s').Value;
DM.TStock.FieldByName('Pu_f').Value:=DM.TStock.FieldByName('Pu_e').Value;
DM.TStock.FieldByName('MOn_f').Value:=DM.TStock.FieldByName('MOn_si').Value -DM.TStock.FieldByName('MOn_s').Value;
DM.TStock.Post;
DM.TStock.Filtered:=False;
end;
DM.tArticle3.Next;


end;
end;

قمت بإضافة end; قبل DM.tArticle3.Next;

المشكلة أنك لن تنتقل إلى السجل التالي إلا بتحقق الشرط بهذا في حال كان الشرط مخالف ستبقى الحلقة تدور حتى اللا نهاية

أرجو أن أكون قد أصبت

تم تعديل هذه المشاركة بواسطة rober في 5 نوفمبر 2008 في 07:15

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#188

أخي روبير لم يحدث تغيير في جدول المخزون

لم تنتقل البيانات إلى جدول المخزون ولم يتغير شيء

تم تعديل هذه المشاركة بواسطة talal ibrahim belal في 5 نوفمبر 2008 في 22:19

#189

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

جميل اخ طلال والاخ Rober

لكن ينقص الكود بعض التنقيح فلنتخيل ان الكمية المطلوبةفي الفاتورة اكثر من الكمية الموجودة في المخزون هنا يجب علينا ان ننبه المستعمل لذلك

ومن اجل ذلك نستخدم الكود الاتي

DM.TVon.Post;
DM.Article3.First;
while not DM.Article3.eof do
begin
DM.TStock.Filtered:=False;
DM.TStock.Filter:='Code_Article='+DM.Article3Code_Article.Text;
DM.TStock.Filtered:=True;
DM.TStock.Last;

if (DM.Tstock.FieldByName('Qts_f').Value<DM.Article3.FieldByName('Quantite').Value) or(DM.Tstock.RecordCount=0) then
begin
ShowMessage('غيرمتوفر بالكمية اللازمة '+' '+DM.Article3Disignation.Text+' '+'المنتج');
DM.Article3.Delete;
end
else
begin
Query1.SQL.Clear;
Query1.SQL.Add('select Code_Article,Qts_f , pu_f , mon_f  from Stock');
Query1.Open;
Query1.Filtered:=False;
Query1.Filter:='Code_Article='+DM.Article3Code_Article.Text;
Query1.Filtered:=True;
Query1.Last;
DM.TStock.Append;
DM.TStock.FieldByName('N_Fact_Bon').Value:=StrToFloat(DBEdit1.Text);
DM.TStock.FieldByName('Date_F_C').Value:=DateTimePicker1.Date;
DM.TStock.FieldByName('Code_Cli_four').Value:=StrToFloat(Edit1.Text);
DM.TStock.FieldByName('Remarque').Value:=DBEdit2.Text;
DM.TStock.FieldByName('Qts_si').Value:=Query1.FieldByName('Qts_f').Value;
DM.TStock.FieldByName('Pu_si').Value:=Query1.FieldByName('Pu_f').Value;
DM.TStock.FieldByName('MOn_si').Value:=Query1.FieldByName('MOn_f').Value;
DM.TStock.FieldByName('Qte_s').Value:=DM.Article3.FieldByName('Quantite').Value;
DM.TStock.FieldByName('Pu_s').Value:=DM.Article3.FieldByName('Prix_de_Vent').Value;
DM.TStock.FieldByName('MOn_s').Value:=DM.Article3.FieldByName('Quantite').Value * DM.Article3.FieldByName('Prix_de_Vent').Value;
DM.TStock.FieldByName('Code_Article').Value:=DM.Article3.FieldByName('Code_Article').Value;
DM.TStock.FieldByName('Qts_f').Value:=DM.TStock.FieldByName('Qts_si').Value - DM.TStock.FieldByName('Qte_s').Value;
DM.TStock.FieldByName('Pu_f').Value:=DM.TStock.FieldByName('Pu_s').Value;
DM.TStock.FieldByName('MOn_f').Value:=DM.TStock.FieldByName('MOn_si').Value - DM.TStock.FieldByName('MOn_s').Value;
DM.TStock.Post;
DM.TStock.Filtered:=False;
Query1.Filtered:=False;
DM.Article3.Next;

end;
end;
Button6.Enabled:=True;
Button6.SetFocus;
end;

وفقنا الله واياكم الى ما يحب ويرضى

تم تعديل هذه المشاركة بواسطة علي .ع في 6 نوفمبر 2008 في 03:14

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#190

شكرا أخي علي

لم انسى الشرط , قمت بحذفة كي أعرف اين الخطأ , كنت أتوقع أن الأمر ممكن بدون إضافة Query

سأقوم بتجهيز التقرير

شكراًلك وشكر للأخ روبير

#191
اقتباس
كنت أتوقع أن الأمر ممكن بدون إضافة Query

الامر ممكن بدون استخدام Query

اقتباس
سأقوم بتجهيز التقرير

الا تريد ان تحاول في تفقيط المبلغ قبل القيام بالتقرير

بالتوفيق

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#192

أخي علي قمت بالتعديل على السطر الأخير من الكود الخاص بالسعر الكلي للمخزون النهائي

أتمنى أن تتأكد من التعديل إذا كان صحيح

DM.TStock.FieldByName('MOn_f').Value:=DM.TStock.FieldByName('Qts_f').Value * DM.TStock.FieldByName('pu_f').Value;

بالتوفيق

تم تعديل هذه المشاركة بواسطة talal ibrahim belal في 6 نوفمبر 2008 في 16:07

#193
علي .ع كتب:
السلام عليكم ورحمة الله

Query1.SQL.Clear;

Query1.SQL.Add('select Code_Article,Qts_f , pu_f , mon_f from Stock');

Query1.Open;

Query1.Filtered:=False;

Query1.Filter:='Code_Article='+DM.Article3Code_Article.Text;

Query1.Filtered:=True;

Query1.Last;

أخ علي أرجو منك أن توضح سبب أستخدام الـ Query فأنا لم أفهم سبب أستخدامها :blush:

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

المكتبة تقوم بتحويل الأرقام حتى 999999999999.99 أرجو أن تفيد في المشروع

post-143282-1225976885_thumb.jpg

nototext.rar

تم تعديل هذه المشاركة بواسطة rober في 6 نوفمبر 2008 في 16:10

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#194

أخ علي ممكن شرح ماهو المطلوب بالضبط لأني لاأعرف ماهو التفقيط

#195

تحويل الأرقام إلى كلام

/index.ph...st&p=892468

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#196

شكرأ أخي روبير

ممكن تعدل الرابط لأنه رابط هذه الصفحة

وكيف يمكنني إضافة هذه الوحدة إلى البرنامج

#197

أخ طلال الرابط يشير إلى مشاركتي السابقة

يوجد في الملف المرفق مكتبة بإسم nototext قم بإضافتها إلى المشروع ثم إلى الأطار الذي سوف تقوم بعمل التفقيط فيه

ثم قم بإستدعاء الأجراء على الشكل التالي

the text place := nototxt(the number place,the currency name,the part of currency name);

قم بالأطلاع على الملف المرفق و لا حظ الحدث TForm1.Edit1Change

لإضافة المكتبة تابع الصور المرفقة

post-143282-1225981871_thumb.jpg

post-143282-1225981879_thumb.jpg

تم تعديل هذه المشاركة بواسطة rober في 6 نوفمبر 2008 في 17:31

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#198
اقتباس
أخ علي أرجو منك أن توضح سبب أستخدام الـ Query فأنا لم أفهم سبب أستخدامها

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

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

اظن انه من برمجة الاخ مهند العبادي من سوريا الشقيقة

اقتباس
وكيف يمكنني إضافة هذه الوحدة إلى البرنامج

اخ طلال تذكر شكل الفاتورة في بدا الامر التفقيط يظهر في نموذج الفاتورة ولا نريد اضافة نموذج جديد

post-112245-1225989830_thumb.jpg

اعقتد ان يكون التفيقط في النموذج نفسه شيئا رائعا اليس كذلك اخ Rober واخي طلال

وفقنا الله واياكم

تم تعديل هذه المشاركة بواسطة علي .ع في 6 نوفمبر 2008 في 19:59

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#199
علي .ع كتب:
اعقتد ان يكون التفيقط في النموذج نفسه شيئا رائعا اليس كذلك اخ Rober واخي طلال

وفقنا الله واياكم

الف شكر أخ روبير وأخ علي

تم تعديل هذه المشاركة بواسطة talal ibrahim belal في 6 نوفمبر 2008 في 20:31

#200

أعتقد هذا ماطلبت أخ علي

post-169385-1225992859_thumb.jpg

تم تعديل هذه المشاركة بواسطة talal ibrahim belal في 6 نوفمبر 2008 في 20:34

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

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

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

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

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