delphi4arab منتديات دلفي للعرب

نسخة كاملة : النقطة الاستدلالية 2022 الوظيف العمومي الجزائري
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الاخوة العاملين في حساب الاجرة و مطوري البرامج افادتنا في كيفية حساب الاجرة او النقطة الاستدلالية الجديدة 2022
غير فقط الرقم الاستدلالي
أو كيف كنت تعمل بها من قبل؟
مأخوذه من موضوع سابف عليك بتغيير قيم الدرجات الصحيجة

كود :
function Salaire_base(const _ech,_catg:string ): integer;

var i:Word;
_base, _iep:integer;

const
  gri_new : array[1..18, 1..15] of Word =
  (
    ( 0,  0, 0,  1,  2,  3,  4,  5,  6,  7 ,  8,  9,  10 ,  11 ,  12),
    ( 1, 250, 0, 13, 35,  52,  70,  87, 104, 122, 139, 157, 174 , 191 , 209 ),
    ( 2, 269, 0, 14, 35,  52,  70,  87, 104, 122, 139, 157, 174 , 191 , 209 ),
    ( 3, 290, 0, 15, 35,  52,  70,  87, 104, 122, 139, 157, 174 , 191 , 209 ),
    ( 4, 313, 0, 16, 35,  52,  70,  87, 104, 122, 139, 157, 174 , 191 , 209 ),
    ( 5, 338, 0, 17, 35,  52,  70,  87, 104, 122, 139, 157, 174 , 191 , 209 ),
    ( 6, 365, 0, 19, 35,  52,  70,  87, 104, 122, 139, 157, 174 , 191 , 209 ),
    ( 7, 398, 0, 20, 35,  52,  70,  87, 104, 122, 139, 157, 174 , 191 , 209 ),
    ( 8, 429, 0, 221, 35,  52,  70,  87, 104, 122, 139, 157, 174 , 191 , 209 ),
    ( 9, 368, 0, 24, 35,  52,  70,  87, 104, 122, 139, 157, 174 , 191 , 209 ),
    (10, 503, 0, 26, 45,  68,  91, 113, 136, 159, 181, 204, 227 , 249 , 272 ),
    (11, 548, 0, 28, 50,  75, 100, 125, 149, 174, 199, 224, 249 , 274 , 299 ),
    (12, 587, 0, 30, 54,  81, 109, 134, 161, 188, 215, 242, 269 , 295 , 322 ),
    (13, 621, 0, 32, 58,  87, 116, 145, 173, 202, 231, 260, 289 , 318 , 347 ),
    (14, 671, 0, 34, 62,  93, 124, 155, 186, 217, 248, 279, 311 , 342 , 373 ),
    (15, 716, 0, 36, 67, 100, 133, 167, 200, 233, 266, 300, 333 , 366 , 400 ),
    (16, 763, 0, 39, 71, 107, 143, 178, 214, 220, 285, 321, 357 , 392 , 428 ),
    (17, 812, 0, 41, 76, 114, 152, 191, 229, 267, 305 ,343, 381 , 419 , 457 )
  );

begin


for I := 1 to 18 do begin

  if _catg=IntToStr(gri_new[i,1]) then
  begin
  _base:=(gri_new[i,2]*45);

  _iep:=(gri_new[i, StrToInt(_ech)   +3]*45);

Result :=  _base + _iep;

  Break;
  end;

end;

end;

استدعاء الدالة
كود :
procedure TForm1.Button1Click(Sender: TObject);
begin
edit3.Text := FormatFloat('#,##0.00', Salaire_base(edit1.Text,edit2.Text )    );
end;
السلام عليكم
هذه دالة مختصرة أستخدمها دائماً في اكسال و وينداف تقوم بحساب الرقم الاستدلالي و جدول الأجر كاملا
قمت بتحويلها لدلفي و هي تعمل جيداً
كود :
Function Indic(Categori:Integer): integer;
var
    vals:Integer;
begin
    If (Categori >= 11) And (Categori <= 17) then vals := 18
    Else If (Categori >= 9) And (Categori <= 10) Then vals := 10
    Else If (Categori >= 7) And (Categori <= 8) Then vals := 4
    Else
        vals := 0;

    Result := vals + (Categori - 1) * 19 + 250 + (Categori - 2) * (Categori - 1);
End;

الاستخدام:

كود :
procedure TTMSForm1.Button1Click(Sender: TObject);
var
v1: integer;
begin
v1 := strtoint(Edit1.Text);
Edit2.Text:= IntToStr(Indic(v1));
end;
يمكن إستخدام Case
كود :
function TForm1.Indic(Categori: Integer): integer;
    var val : Integer;
begin

     case Categori of
       11..17:  val := 18;
       9..10: val := 10;
       7..8: val := 4;
      else
       val := 0;
     end;

    result := val + (Categori-1 ) * 19 + 250 + (Categori - 2) * (Categori - 1);

end   ;

المناداه
كود :
procedure Form1.Button1Click(Sender: TObject);
begin
Edit2.Text:=inttostr(indic(StrToInt(Edit1.Text)));
end;
(27-04-2022, 06:06 AM)ALG2009 كتب : [ -> ]مأخوذه من موضوع سابف عليك بتغيير قيم الدرجات الصحيجة

كود :
function Salaire_base(const _ech,_catg:string ): integer;

الدالة تعطيني خطا حتى اقوم بتغيير المصفوفة الى  gri_new : array[1..18, 1..15] عوض 10 وذلك منطقي لان المصفوفة فيها 18 سطر
او ان لم افهم المصفوفة وشكرا الاخ ALG2009
لقد أصبت كما قلت الخطأ في gri_new : array[1..18, 1..15] of Word =

لقد عدلت على المشاركة السابقة
بالنسبة للدالة للاخ bousaid بالنسبة للانديس يجب توفر قيمتين وهما السلم والدرجة اضن ان الدالة ناقصة
(30-04-2022, 07:07 PM)bouh25 كتب : [ -> ]بالنسبة للدالة للاخ bousaid بالنسبة للانديس يجب توفر قيمتين وهما السلم والدرجة اضن ان الدالة ناقصة

هل جربتها حتى تحكم عليها بالنقصان ؟
الدالة تحسب الرقم الاستدلالي للصنف ... و لا تتطلب وجود قيمتين
عندما يكون عندك موظف مثالا الدرجة 12 و السلم 7 و آخر في نفس الدرجة 12 و السلم 5
كيف تقوم بادخال هذه البيانات ؟؟