فيما يتعلق بالنتيجة الناجمة عن الفرق بين تاريخين
#1
كيف حساب الخبرة بين تاريخين بالسنة والشهر والايام يجب ان تظهر النتيجة الحقول المعرفة في العملية الأولى
العملية الأولى
1- عدد السنين المحصل عليه يظهر في الحقل An_01
2- عدد الشهور المحصل عليه يظهر في الحقل Mois1
3- عدد الايام المحصل عليه يظهر في الحقل Jour1
وهذه النتيجة قد وضعت له الكود الموجود بالمرفق الا انه عند التنفيذ تظهر رسالة خطأ تقول inversé les Dates SVP

العملية الثانية
تساوي كل سنة من نتيجة العملية الآولى تساوي 6 أشهر ويجب ان تظهر النتيجة في هاته الحقول
1- عدد السنين المحصل عليها في النتيجة الثانية يظهر بالحقل An_02
2- عدد الشهورالمحصل عليها في النتيجة الثانية يظهر بالحقل Mois2
3- عدد الأيام المحصل عليها في النتيجة الثانية يظهر بالحقل Jour2

العملية الثالثة
نتيجة العملية الأولى + نتيجة العملية الثانية ويجب ان تظهر النتيجة في هاته الحقول
1- عدد السنين المحصل عليها في النتيجة الثالثة يظهر بالحقل An_03
2- عدد الشهورالمحصل عليها في النتيجة الثالثة يظهر بالحقل Mois3
3- عدد الايام المحصل عليها في النتيجة الثالثة يظهر بالحقل Jour3

العملية الرابعة
تساوي حسب الشرط الناجم عن الحقل Mode_Calcule_IEP
وهو اذا كان الحقل Mode_Calcule_IEP يساوي 'A'
فالخبرة تساوي نتيجة العملية الثالثة مقسومة على 2 سنتين و 6 ستة اشهر
توضع النتيجة في الحقل IEP_01
والباقي يوضع في الخانات الآتية يجب ان يظهر الباقي في هاته الحقول
1- عدد السنين المحصل عليها في النتيجة الرابعة يظهر بالحقل An_04
2- عدد الشهورالمحصل عليها في النتيجة الرابعة يظهر بالحقل Mois4
3- عدد الايام المحصل عليها في النتيجة الرابعة يظهر بالحقل Jour4

و اذا كان الحقل Mode_Calcule_IEP يساوي 'B'
فالخبرة تساوي نتيجة العملية الثالثة مقسومة على 3 سنوات
توضع النتيجة في الحقل IEP_02
والباقي يوضع في الخانات الآتية يجب ان يظهر الباقي في هاته الحقول
1- عدد السنين المحصل عليها في النتيجة الرابعة يظهر بالحقل An_05
2- عدد الشهورالمحصل عليها في النتيجة الرابعة يظهر بالحقل Mois5
3- عدد الايام المحصل عليها في النتيجة الرابعة يظهر بالحقل Jour5

و اذا كان الحقل Mode_Calcule_IEP يساوي 'C'
فالخبرة تساوي نتيجة العملية الثالثة مقسومة على 3 سنوات و 3 أشهر
توضع النتيجة في الحقل IEP_03
والباقي يوضع في الخانات الآتية يجب ان يظهر الباقي في هاته الحقول
1- عدد السنين المحصل عليها في النتيجة الرابعة يظهر بالحقل An_06
2- عدد الشهورالمحصل عليها في النتيجة الرابعة يظهر بالحقل Mois6
3- عدد الايام المحصل عليها في النتيجة الرابعة يظهر بالحقل Jour6

ملاحظة
اذا كان ممكن احتاج الى كود لمشكلة Séparator للتاريخ
كيف ما كتبته يقبله سواء كتبته باستعمال '/'
او باستعمال '-'
ووفقكم الله


الملفات المرفقة
.rar   Teste_IEP.rar (الحجم : 3.83 ك ب / التحميلات : 78)
الرد
#2
تم
اطلع على المرفق


الملفات المرفقة
.rar   Teste_IEP.rar (الحجم : 11.62 ك ب / التحميلات : 53)
الرد
#3
imadma كتب :تم عمل المطلوب

الرجاء الاطلاع على المرفق

شكرا اخي على الرد والإفادة وهذا هو المطلوب
لكن بقي شيء واحد في العملية وهو يتعلق بالنتيجة الثالثة
عندما تضع التاريخ الاول بـ 30/11/2011 والثاني 16/01/2006
النتيجة المحصل عليها هي
7 سنوات
16 شهر
14 يوم
والمطلوب ان تكون التيجة
8 سنوات
04 اشهر
14 يوم
بمعنى عندما يبلغ عدد الشهور 12 شهر يضاف الى عدد السنوات بسنة والباقي من الشهور يبقى في مكانه
وجزاك الله عنا كل خير
الرد
#4
اضف ما يلي:
كود :
if Table1.Fieldvalues['Jour3']> 30 then begin Table1.Fieldvalues['Mois3']:= Table1.Fieldvalues['Mois3']+ Table1.Fieldvalues['Jour3'] div 30; Table1.Fieldvalues['Jour3']:= Table1.Fieldvalues['Jour3'] mod 30; end; if Table1.Fieldvalues['Mois3']> 12 then begin Table1.Fieldvalues['An_03']:= Table1.Fieldvalues['An_03']+ Table1.Fieldvalues['Mois3'] div 12; Table1.Fieldvalues['Mois3']:= Table1.Fieldvalues['Mois3'] mod 12; end;

يعد السطر

كود :
Table1.Fieldvalues['Jour3']:= Table1.Fieldvalues['Jour1']+Table1.Fieldvalues['Jour2'];
الرد
#5
السلام عليكم ورحمة الله تعالى وبركاته
اولا اشكرك جزيل الشكر
وثانيا لقد اضفت حقل جديد في المرفق وهو تاريخ السريان للدرجة واسم الحقل هو Dt_Application
هذا الحقل يخضع لشروط معينة
الشرط الأول
اذا كان المدة المتبقية المتمثل في الحقل An_04 اصغر من 0 والحقل Mois4 اصغر من 0 و الحقل Jour4 اصغر من 0
تكون نتيجة الحقل Dt_Application تساوي اليوم الأول من الشهر بعد التاريخ الموجود بالحقل DT_02
بمعنى اذا كان تاريخ الحقل DT_02 هو 31/12/2010 فالنتيجة تكون في الحقل Dt_Application هي
01/01/2011
الشرط الثاني
اذا كانت النتيجة المتبقية اكبر من 0 واقصد الحقول An_04وMois4وJour4
فهنا تكون النتيجة كالاتي
تخصم المدة المتبقية من التاريخ الموجود بالحقل DT_02 والمتمثل في 31/12/2010
وبعدها يوضع التاريخ المحصل عليه بعد الخصم
يعني لو كانت النتيجة المتبقية في An_04 هي 01 وفي Mois4 هي 06 وفي Jour4 هي 00
يكون تاريخ Dt_Application يساوي 01/07/2009

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

ثم قم بتعديل طريقة الحساب الموجودة بالإجراءات اعلى الوحدة كما يلي les fonction DT2,DT1
كل الشهور تكون عدد ايامها 30 يوما بدلا من ايامها الإفتراضية
بمعنى لا يأخذ بعين الإعتبار الشهر الذي يحتوي على 31 يوما ولا الشهر الذي يحتوي على 28 او 29 يوم
ووضع هذ التعذيل في ملف نصي وارفقه مع المرفق بعد التعديل
لأنه على ما أظن ان هناك طريقتين للحساب الأولى كما هي في المرفق
والثانية بالطريقة المطلوب تعديلها حسب 30 يوما لكل شهر
وهاهو اعيد لك المرفق بما هو مضاف اليه للتعديل عليه من فضلك اخي وجزاك الله عنا كل خير


الملفات المرفقة
.rar   Teste_IEP.rar (الحجم : 7.87 ك ب / التحميلات : 60)
الرد
#6
بالنسبة تعديل طريقة الحساب
قانا افضل ان يكون هناك اختيار الطريقة بواسطة المكون CheckBox
اي اذا كان المستعمل يفضل الطريقة الاولى فيكون الحساب بها
واذا كان يفضل الطريقة الثانية فيكون الحساب بالطريقة الثانية
وبهذه الحالة لاداعي للملف النصي
ووفقك الله
الرد
#7
السلام عليكم :
والله مافهمة شي
الرد
#8
ali shaaban كتب :السلام عليكم :
والله مافهمة شي

ما هو الشيء الذي لم تفهمه وسأوضح لك
الرد


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


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