كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية)

اذهب الى الأسفل

كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) Empty كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية)

مُساهمة  medreg في 5/7/2015, 8:48 pm

السلام عليكم ورحمة الله تعالى وبركاته
في المرحلة الاولى كنا قد ربطنا N_Groupe بـ Groupe
وكانت النتيجة في المستوى المطلوب
وفي هذه المرحلة سنربط N_Groupe بـ Groupe و S_Groupe
وفي حالة تكرار نفس القيمة في S_Groupe
هنا المطلوب
يجب ان يأخذ نفس الترقيم في N_Groupe
حسب ماهو موضح في هذه الصورة
كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) 29qfo94
وهذا هو الكود المستعمل في المرحلة الاولى
الكود:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables;

type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    DataSource1: TDataSource;
    Table1: TTable;
    Table1Cde: TFloatField;
    Table1N_Groupe: TFloatField;
    Table1Groupe: TStringField;
    Table1Montant: TFloatField;
    Table1S_Groupe: TStringField;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   num1, num2,num3,num4: integer; //Alger
   Cde1: Word; //Alger
begin
    num1 := 0; num2 := 0; num3 := 0;  num4 := 0;//Alger
    Cde1 := 0; //Alger
    Table1.Open;  //Alger
    Table1.First; //Alger

    Table1.DisableControls; //Alger
    while not Table1.Eof do
    begin
      if Table1Groupe.Text ='900' then
      begin
          num1 := num1 + 1; //Alger
          Table1.Edit;
          Table1N_Groupe.Value := num1;  //Alger
          Table1.Post; //Alger
      end;
      if Table1Groupe.Text ='901' then
      begin
          num2 := num2 + 1; //Alger
          Table1.Edit;
          Table1N_Groupe.Value := num2;  //Alger
          Table1.Post; //Alger
      end;
      if Table1Groupe.Text ='902' then
      begin
          num3 := num3 + 1; //Alger
          Table1.Edit;
          Table1N_Groupe.Value := num3;  //Alger
          Table1.Post; //Alger
      end;
      if Table1Groupe.Text ='903' then
      begin
          num4 := num4 + 1; //Alger
          Table1.Edit;
          Table1N_Groupe.Value := num4;  //Alger
          Table1.Post; //Alger
      end;
      Table1.Next; //Alger
    end;
   Table1.EnableControls; //Alger
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 close;
end;

end.
وبالتوفيق وصحى لفطورك

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

عدد المساهمات : 74
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) Empty رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية)

مُساهمة  ali في 7/7/2015, 4:16 pm

بسم الله الرحمن الرحيم

السؤال :


وفي هذه المرحلة سنربط N_Groupe بـ Groupe و S_Groupe

وفي حالة تكرار نفس القيمة في S_Groupe

هنا المطلوب

يجب ان يأخذ نفس الترقيم في N_Groupe

حسب ماهو موضح في هذه الصورة

الجواب :

أعتقد تمت الاجابة على السؤال

الكود:

procedure TForm2.Button1Click(Sender: TObject);//Alger
var
  num1, num2, num3: Word;  //Alger
  sga1,sga2: string;    //Alger
  sgb1,sgb2: string;  //Alger
  sgc1,sgc2: string; //Alger

begin
    num1 := 0; num2 := 0; num3 := 0; //Alger
    Table1.Open;  //Alger
    Table1.First;  //Alger

    Table1.DisableControls;  //Alger
    while not Table1.Eof do
    begin
      if Table1Groupe.Text = '900' then
      begin
          sga1 := Table1S_Groupe.text; //Alger
          if sga1 <> sga2 then num1 := num1 + 1; //Alger
          Table1.Edit;  //Alger
          Table1N_Groupe.Value := num1;  //Alger
          Table1.Post;  //Alger
          sga2 := sga1;  //Alger
      end
      else if Table1Groupe.Text = '901' then
      begin
          sgb1 := Table1S_Groupe.text;  //Alger
          if sgb1 <> sgb2 then num2 := num2 + 1;  //Alger
          Table1.Edit;
          Table1N_Groupe.Value := num2;  //Alger
          Table1.Post;  //Alger
          sgb2 := sgb1;  //Alger
      end
      else
      begin
          sgc1 := Table1S_Groupe.text;  //Alger
          if sgc1 <> sgc2 then num3 := num3 + 1;  //Alger
          Table1.Edit;  //Alger
          Table1N_Groupe.Value := num3; //Alger
          Table1.Post;  //Alger
          sgc2 := sgc1;  //Alger
      end; //Alger
      Table1.Next;  //Alger
    end;  //Alger
    Table1.EnableControls; //Alger
end;


وفي الاخير تقبل مني فائق الشكر التقدير

معذرة على تأخير

اذا كانت هناك أي ملاحظات فلا تتردد في طرحها

شكرا






_________________
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ali
مبرمج مجتهد

عدد المساهمات : 872
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) Empty رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية)

مُساهمة  ali في 7/7/2015, 4:21 pm


كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) 15ewk7a


كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) 29zea0w

_________________
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ali
مبرمج مجتهد

عدد المساهمات : 872
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) Empty رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية)

مُساهمة  medreg في 7/7/2015, 6:19 pm

بارك الله فيك وجزاك الله عنا خير الجزاء
تقبل الله منا ومنكم صالح الاعمال
وثبت اقدامكم على السراط المستقيم
وتقبل الله منا ومنكم الصيام والقيام بمزيد من الأجر والثواب والمغفرة
آميـن آميـن آميـن آميـن آميـن آميـن آميـن

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

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

عدد المساهمات : 74
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) Empty رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية)

مُساهمة  medreg في 10/7/2015, 5:57 pm

السلام عليكم ورحمة الله تعالى وبركاته
تقيل الله منا ومنكم الصيام والقيام وصالح الاعمال
وبارك الله فيكم أخي alla
العملية ناجحة 100/100
جزاكم الله عنا خير الجزاء ووفقكم الله لما يحبه وبرضاه
رمضان كريم

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

عدد المساهمات : 74
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) Empty رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية)

مُساهمة  ali في 11/7/2015, 12:11 pm


الحمد لله رب العالمين

آميـن آميـن آميـن آميـن آميـن



جزاكم الله خير الجزاء ووفقكم الله لما يحبه وبرضاه
رمضان كريم

آميـن

_________________
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ali
مبرمج مجتهد

عدد المساهمات : 872
تاريخ التسجيل : 29/07/2013

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الثانية) Empty المرحلة الثالثة

مُساهمة  medreg في 4/8/2019, 2:50 am

السلام عليكم ورحمة الله تعالى وبركاته
فيما يتعلق بإضافة ترقيم برمجيا حسب كل مجموع شريطة ان لايتجاوز الترقيم 5 حتى ولوكانت المجموعة تحتوي على اكثر من 5
يعني اذا كانت المجموعة تساوي 10 سجلات فالخمسة الاولى تكون من 1 الى 5
والخمسة الثانية تكون من 1 الى 5
وهذا هو الكود للتعديل عليه بارك الله فيكم

الكود:
Var
D500,D501,D000,
R500,R501,R000: Word;
  sga1,sga2: string;
  sgb1,sgb2: string;
  sgc1,sgc2: string;

begin
D500:=0; D501:=0; D000:=0; R500:=0; R501:=0; R000:=0;
  With Dm do
  Begin
    Tab1.Open;
    Tab1.First;
    Tab1.DisableControls;
    while not Tab1.Eof do
    begin
      if (Tab1Grp.Text = '500')and(Tab1Tpe.Text ='A') then
      begin
          sga1 := Tab1Opt.Text;
          if (sga1 <> sga2) then D500 := D500 + 1;
          Tab1.Edit;
          Tab1Cln.Value := D500;
          Tab1.Post;
          sga2 := sga1;
//اذا كانت قيمة هذا الحقل تصل الى اكثر من 5 سجلات بنفس القيمة يكون الترتيب المطلوب من 1 الى 5 لكل  خمس سجلات
      end
      else if (Tab1Grp.Text = '500')and(Tab1Tpe.Text ='B') then
      begin
          sgb1 := Tab1Opt.Text;
          if (sgb1 <> sgb2) then R500 := R500 + 1;
          Tab1.Edit;
          Tab1Cln.Value := R500;
          Tab1.Post;
          sgb2 := sgb1;
//اذا كانت قيمة هذا الحقل تصل الى اكثر من 5 سجلات بنفس القيمة يكون الترتيب المطلوب من 1 الى 5 لكل  خمس سجلات      
      end
      else if (Tab1Grp.Text = '501')and(Tab1Tpe.Text = 'A') then
      begin
          sga1 := Tab1Opt.Text;
          if (sga1 <> sga2) then D501 := D501 + 1;
          Tab1.Edit;
          Tab1Cln.Value := D501;
          Tab1.Post;
          sga2 := sga1;
//اذا كانت قيمة هذا الحقل تصل الى اكثر من 5 سجلات بنفس القيمة يكون الترتيب المطلوب من 1 الى 5 لكل  خمس سجلات    
      end
      else if (Tab1Grp.Text = '501')and(Tab1Tpe.Text = 'B') then
      begin
          sgb1 := Tab1Opt.Text;
          if (sgb1 <> sgb2)then R501 := R501 + 1;
          Tab1.Edit;
          Tab1Cln.Value := R501;
          Tab1.Post;
          sgb2 := sgb1;
//اذا كانت قيمة هذا الحقل تصل الى اكثر من 5 سجلات بنفس القيمة يكون الترتيب المطلوب من 1 الى 5 لكل  خمس سجلات      
      end
      else
      begin
          sgc1 := Tab1Opt.Text;
          if (sgc1 <> sgc2) then D000 := D000 + 1;
          Tab1.Edit;
          Tab1Cln.Value := D000;
          Tab1.Post;
          sgc2 := sgc1;

          sgc1 := Tab1Opt.Text;
          if (sgc1 <> sgc2) then R000 := R000 + 1;
          Tab1.Edit;
          Tab1Cln.Value := R000;
          Tab1.Post;
          sgc2 := sgc1;
      end;
      Tab1.Next;
    end;
    Tab1.EnableControls;
  end;
end;

medreg
مبرمج ممتاز جدا
مبرمج ممتاز جدا

عدد المساهمات : 74
تاريخ التسجيل : 29/01/2015

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى