النقطة الاستدلالية 2022 الوظيف العمومي الجزائري
#1
الاخوة العاملين في حساب الاجرة و مطوري البرامج افادتنا في كيفية حساب الاجرة او النقطة الاستدلالية الجديدة 2022
وقل ربي زدني علماً
الرد
#2
غير فقط الرقم الاستدلالي
أو كيف كنت تعمل بها من قبل؟
[-] كل من 1 user says قال شكرا ل ALG2009 على المشاركة المفيدة
  • bouh25
الرد
#3
مأخوذه من موضوع سابف عليك بتغيير قيم الدرجات الصحيجة

كود :
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;
[-] كل من 3 users say قال شكرا ل ALG2009 على المشاركة المفيدة
  • bassem_43, bouh25, bousaid
الرد
#4
السلام عليكم
هذه دالة مختصرة أستخدمها دائماً في اكسال و وينداف تقوم بحساب الرقم الاستدلالي و جدول الأجر كاملا
قمت بتحويلها لدلفي و هي تعمل جيداً
كود :
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;
[-] كل من 1 user says قال شكرا ل bousaid على المشاركة المفيدة
  • bouh25
الرد
#5
يمكن إستخدام 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;
[-] كل من 1 user says قال شكرا ل ALG2009 على المشاركة المفيدة
  • bouh25
الرد
#6
(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
وقل ربي زدني علماً
الرد
#7
لقد أصبت كما قلت الخطأ في gri_new : array[1..18, 1..15] of Word =

لقد عدلت على المشاركة السابقة
[-] كل من 1 user says قال شكرا ل ALG2009 على المشاركة المفيدة
  • bouh25
الرد
#8
بالنسبة للدالة للاخ bousaid بالنسبة للانديس يجب توفر قيمتين وهما السلم والدرجة اضن ان الدالة ناقصة
وقل ربي زدني علماً
الرد
#9
(30-04-2022, 07:07 PM)bouh25 كتب : بالنسبة للدالة للاخ bousaid بالنسبة للانديس يجب توفر قيمتين وهما السلم والدرجة اضن ان الدالة ناقصة

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


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


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