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

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

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

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

مُساهمة  medreg في 2/7/2015, 4:06 pm

السلام عليكم ورمضان كريم
قاعدة البيانات absolute database
delphi7
كيف اجعل أحد الحقول يأخذ قيمة من 1 الى اخر سجل به حسب كل فرقة
لدي جدول يحتوي على اربع حقول بـ10 سجلات
Cde, Groupe,N_ Groupe,Montant
احتاج الى ترقيم كل فرقة على ان تبدأ برقم واحد
حسب هذا الشكل
الرمز:

Cde         Groupe        N_Groupe     Montant
1                   aaa              1             220.00
2                   aaa              2             330.00
3                   aaa              3             250.00
4                   aaa              4            5200.00
5                   aaa              5              150.00
6                   bbb              1            1250.00
7                   bbb              2            1250.00
8                   bbb              3            1250.00
9                   bbb              4            1500.00
10                 bbb              5            1500.00


عدل سابقا من قبل medreg في 5/7/2015, 9:11 pm عدل 1 مرات

medreg
مبرمج

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 4/7/2015, 1:07 pm


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

الصلاة والسلام على أشرف المرسلين سيدتا محمد صلى الله عليه سلم وعلى آله وصحبه


السلام عليكم ورمضان كريم

حسب مفهمت من الموضوع الذي وضعته

أنه عندك فرقتين

الفرقة الاولى aaa

والفرقة الثانية bbb

افراد الفرقة aaa يكون عندهم ترقيم خاص بهم لكل فرد أو عنصر أو شخص رقم خاص به يختلف عن اخر

افراد الفرقة bbb نفس شيء

الرمز:

Cde      Groupe  N_Groupe    Montant

    1      aaa        1      220.00
    2      aaa        2      330.00
    3      aaa        3      250.00
    4      aaa        4      5200.00
    5      aaa        5      150.00
    6      bbb        1      1250.00
    7      bbb        2      1250.00
    8      bbb        3      1250.00
    9      bbb        4      1500.00
    10      bbb        5      1500.00



.

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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 4/7/2015, 1:18 pm


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

والصلاة والسلام على رسول الله


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

واني فكرت في الفكرة

ووجدت أن المجموعة تمثل الوظيفة مثلا

المجموع الاولى الموظف وهو رقم 1

المجموعة الثانية الصيانة وهو رقم 2

المجموعة الثالثة بناء وهو رقم 3

المجموع الرابعة عامل بسيط وهو رقم 4

المجموعة الخامسة عون أمن وهو رقم 5

....
.

يعني لكل مجموعة رقم خاص بها

والمثال بـ البارادوكس
paradox 7
و
الاكسس 2007
Access 2007

أعتقد أنه بامكانك تبديل بعض الاوامر

كما بدلت أنا بين أكسس و البرادوكس

لأني لحد الان لم أتحصل على الابسولي

أي قواعد البيانات أبسولي

قاعدة البيانات absolute database

وفي الاخير أعذرني لأني لم أستطع أن أساعدك




والمثال بـ البارادوكس
paradox 7


الرمز:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Table1: TTable;
    Table2: TTable;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DBNavigator1: TDBNavigator;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    BitBtn1: TBitBtn;
    DateTimePicker1: TDateTimePicker;
    Table2Code_p: TFloatField;
    Table2Nom_fonc: TStringField;
    Table2Dat_fonc: TDateField;
    Table1Cod_fonc: TFloatField;
    Table1Code: TFloatField;
    Table1Nom: TStringField;
    Table1Prenom: TStringField;
    Table1Dat_n: TDateField;
    Edit3: TEdit;
    DateTimePicker2: TDateTimePicker;
    Edit2: TEdit;
    ComboBox1: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.BitBtn2Click(Sender: TObject);
var
  strA: string;
  strB: string;
begin

  Table1.Open;
  Table1.Last;

  if Table1code.Value = 0 then strB := '1'
  else strB := IntToStr(StrToInt(Table1code.Text) + 1);


  Table1.Append;
  Table1code.Text := strB;
  Table1nom.Text := Edit2.Text;
  Table1prenom.Text := Edit3.Text;
  Table1dat_n.Value := DateTimePicker1.Date;

        if ComboBox1.ItemIndex = 0 then
    strA := '1'
  else if ComboBox1.ItemIndex = 1 then
    strA := '2'
  else if ComboBox1.ItemIndex = 2 then
    strA := '3'
  else if ComboBox1.ItemIndex = 3 then
    strA := '4'
  else if ComboBox1.ItemIndex = 4 then
    strA := '5'
  else if ComboBox1.ItemIndex = 5 then
    strA := '6';

  Table1Cod_fonc.Text := strA;//
  Table1.Post;                  //
                                  //
  Table2.Open;                    //
  Table2.Last;

  //  ÇÐÇ ßÇäÊ ãæÌæÏÉ ãÇäÖÝÔ
  if not Table2.FindKey([strA]) then
  begin
    Table2.Append;
    Table2Code_p.Text := strA;
    Table2Nom_fonc.Text := ComboBox1.Text;
    Table2Dat_fonc.Value := DateTimePicker2.Date;
    Table2.Post;
  end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
// ãä ÃÌá Çáíæã ÇáÍÇáí  áÑÇäÇ Ýíå
 DateTimePicker1.DateTime := date;
 DateTimePicker1.DateTime := date;

 /////////////////////////////////
 // ÃæÞÝ åÐå ÊÚáíãÇÊ æÔÇåÏ
 
 Table2.MasterSource := DataSource1;
 Table2.MasterFields := 'Cod_fonc';
 Table2.IndexFieldNames := 'Code_p';

 /////////////////////////////////

end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
 Form2.Show;
end;

end.



الاكسس 2007
Access 2007


الرمز:

unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    DBNavigator1: TDBNavigator;
    DBGrid1: TDBGrid;
    DBGrid2: TDBGrid;
    BitBtn1: TBitBtn;
    DateTimePicker1: TDateTimePicker;
    Edit3: TEdit;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    DateTimePicker2: TDateTimePicker;
    Edit2: TEdit;
    ComboBox1: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    BitBtn2: TBitBtn;
    ADOTable1: TADOTable;
    ADOTable2: TADOTable;
    ADOTable1Cod_fonc: TIntegerField;
    ADOTable1Code: TIntegerField;
    ADOTable1Nom: TWideStringField;
    ADOTable1Prenom: TWideStringField;
    ADOTable1Dat_n: TDateTimeField;
    ADOTable2Code_p: TIntegerField;
    ADOTable2Nom_fonc: TWideStringField;
    ADOTable2Dat_fonc: TDateTimeField;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
// ãä ÃÌá Çáíæã ÇáÍÇáí  áÑÇäÇ Ýíå
 DateTimePicker1.DateTime := date;
 DateTimePicker1.DateTime := date;

 /////////////////////////////////
 // ÃæÞÝ åÐå ÊÚáíãÇÊ æÔÇåÏ

 ADOTable2.MasterSource := DataSource1;
 ADOTable2.MasterFields := 'Cod_fonc';
 ADOTable2.IndexFieldNames := 'Code_p';

 /////////////////////////////////

end;

procedure TForm2.BitBtn2Click(Sender: TObject);
var
  strA: string;
  strB: string;
begin

  ADOTable1.Open;
  ADOTable1.Last;

  if ADOTable1code.Value = 0 then strB := '1'
  else strB := IntToStr(StrToInt(ADOTable1code.Text) + 1);


  ADOTable1.Append;
  ADOTable1code.Text := strB;
  ADOTable1nom.Text := Edit2.Text;
  ADOTable1prenom.Text := Edit3.Text;
  ADOTable1dat_n.Value := DateTimePicker1.Date;

        if ComboBox1.ItemIndex = 0 then
    strA := '1'
  else if ComboBox1.ItemIndex = 1 then
    strA := '2'
  else if ComboBox1.ItemIndex = 2 then
    strA := '3'
  else if ComboBox1.ItemIndex = 3 then
    strA := '4'
  else if ComboBox1.ItemIndex = 4 then
    strA := '5'
  else if ComboBox1.ItemIndex = 5 then
    strA := '6';


  ADOTable1Cod_fonc.Text := strA;//
  ADOTable1.Post;                  //
                                  //
  ADOTable2.Open;                    //
  ADOTable2.Last;

  //  ÇÐÇ ßÇäÊ ãæÌæÏÉ ãÇäÖÝÔ
  if not ADOTable2.Locate('Code_p','strA',[]) then
  begin
    ADOTable2.Append;
    ADOTable2Code_p.Text := strA;
    ADOTable2Nom_fonc.Text := ComboBox1.Text;
    ADOTable2Dat_fonc.Value := DateTimePicker2.Date;
    ADOTable2.Post;
  end;


end;

end.




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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 4/7/2015, 1:24 pm

alla كتب:
بسم الله الرحمن الرحيم

الصلاة والسلام على أشرف المرسلين سيدتا محمد صلى الله عليه سلم وعلى آله وصحبه


السلام عليكم ورمضان كريم

حسب مفهمت من الموضوع الذي وضعته

أنه عندك فرقتين

الفرقة الاولى   aaa

والفرقة الثانية  bbb

افراد الفرقة aaa يكون عندهم ترقيم خاص بهم لكل فرد أو عنصر أو شخص رقم خاص به يختلف عن اخر

افراد الفرقة bbb نفس شيء  

الرمز:

Cde      Groupe   N_Groupe    Montant

    1       aaa        1       220.00
    2       aaa        2       330.00
    3       aaa        3       250.00
    4       aaa        4      5200.00
    5       aaa        5       150.00
    6       bbb        1      1250.00
    7       bbb        2      1250.00
    8       bbb        3      1250.00
    9       bbb        4      1500.00
    10      bbb        5      1500.00



.





انتظر مني رد على هذا ان شاء الله


.

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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  medreg في 4/7/2015, 3:42 pm

شكرًا اخي على هذه المداخلة
لكن ما اريده هو ان يبدأ ترقيم الفرقة الاولى من 01 الى اخر سحل وحسب مثالنا الذي ارفقته
الفرقة الاولى تبدا من رقم 01 الى رقم 05
والثانية تبدا من رقم 01 الى رقم 05
وهكذا
والحقال المقصود في الترقيم هو الحقل N_Groupe
لا يهم بالنسبة لقواعد اليانات لا بهم ان كانت بالابسوليت ام بالبرادوكس
المهم هو الكود
وبالتوفيق ورمضان كريم وتقبل الله منا ومنكم الصيام والقيام وصالح الاعمال أمين

medreg
مبرمج

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 5/7/2015, 1:01 am





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

الصلاة والسلام على أشرف المرسلين سيدتا محمد صلى الله عليه سلم وعلى آله وصحبه


السلام عليكم ورمضان كريم

هذا هو البرنامج  أتنى ان بكون في المستوى

الرمز:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    DBNavigator1: TDBNavigator;
    DBGrid1: TDBGrid;
    Edit1: TEdit;
    ComboBox1: TComboBox;
    Button1: TButton;
    Table1Montant: TFloatField;
    Table1N_Groupe: TCurrencyField;
    Table1Groupe: TFloatField;
    Table1Cde: TStringField;
    Label1: TLabel;
    Label3: TLabel;
    Button2: TButton;
    DBNavigator2: TDBNavigator;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   mont1: Word;
   group1, group2, group: Word;
   num1, num2: Word;

begin

 group := 0;
 group1 := 0;
 group2 := 0;
 num1 := 0;
 num2 := 0;

 Table1.Open;
 Table1.Last;
 if Table1.FieldCount <= 0 then mont1 := 1
  else mont1 := Table1.FieldByName('Montant').asInteger + 1;

 if (ComboBox1.Text = 'aaa')and(Table1Groupe.AsInteger = 0) then
   num1 := 1
 else if (ComboBox1.Text = 'aaa')and(Table1Groupe.AsInteger > 0) then
 begin
    Table1.First;
    Table1.DisableControls;
    while not Table1.Eof do
    begin
    if Table1Cde.Text = 'aaa' then
          num1 := num1 + 1;
      Table1.Next;
    end;
    num1 := num1 + 1;
    Table1.EnableControls;
 end;
 group1 := num1;

  if (ComboBox1.Text = 'bbb')and(Table1Groupe.AsInteger = 0) then
    num2 := 1
 else if (ComboBox1.Text = 'bbb')and(Table1Groupe.AsInteger > 0) then
 begin
    Table1.First;
    Table1.DisableControls;
    while not Table1.Eof do
    begin
    if Table1Cde.Text = 'bbb' then
                 num2 := num2 + 1;
     Table1.Next;
   end;
   num2 := num2 + 1;
   Table1.EnableControls;

 end;
 group2 := num2;
 if ComboBox1.Text = 'aaa' then
   group := group1 else group := group2;

  Table1.Last;
  Table1.Append;
  Table1.FieldByName('Montant').AsInteger := mont1;
  Table1Groupe.AsInteger := group;
  Table1N_Groupe.Text := Edit1.Text;
  Table1Cde.Value := ComboBox1.Text;
  Table1.Post;

{ {}
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Button1.Enabled := false;
 ComboBox1.Text := 'chois';

end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  Button1.Enabled := true;
end;

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

end.




الفرقة الاولى تبدا من رقم 01 الى رقم 05

والثانية تبدا من رقم 01 الى رقم 05

وهكذا

والحقال المقصود في الترقيم هو الحقل N_Groupe

تستطيع تغير الحقول بكل سهولة

أخي  madreg أتمنى أن أكون قد يفقت في الاجابة عن السؤال

وأشكرك على الموضوع الرائع الذي تفضلت به

بارك الله فيك


.

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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 5/7/2015, 1:15 am

[img][/img]

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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  medreg في 5/7/2015, 3:02 am

يا اخي alla
ربما لم افلح في توصيل الغكرة حتى تتمكن من فهم المطلوب
المطلوب هو ترقيم الفرق عندما يكون الجدول مملوء
أي لا يستعمل Append  أو Insert
بل إستعمال Edit
بمعنى إذا كان الحقل Groupe يساوي aaa يكون الحقل N_Groupe يأخذ القيمة من 01 الى اخر سجل تابع له وبالترتيب 01،02،03،04,05
وإذا كان الحقل Groupe يساوي bbb يكون الحقل N_Groupe يأخذ القيمة من 01 الى اخر سجل تابع له وبالترتيب 01،02،03،04,05
مع العلم أن الحقول كالاتي
cde = integer
Groupe = string
S_Groupe=string
N_Groupe = Integer
Montant = Currency
مع العلم ام الحقل S_Groupe يحمل قيمة رقمية بالرغم انه من نوع string
وهذا مثال

ومن الأفضل أخي لو كان لديك حساب على السكيب فاحسن ختى اتمكن من النقاش وان تفهمني أكثر
واكون ممنون لك أخي وهذا حسابي عاى السكيب
medbbm2014
وجزاكم الله عنا كل هير

medreg
مبرمج

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 5/7/2015, 12:23 pm

بسم الله الرحمن الرحيم
والصلاة والسلام على رسول الله وعلى آله وصحبه أجــــــمـــعــيـن


السؤال :

المطلوب هو ترقيم الفرق عندما يكون الجدول مملوء

أي لا يستعمل Append أو Insert

بل إستعمال Edit

بمعنى إذا كان الحقل Groupe يساوي aaa يكون الحقل N_Groupe يأخذ القيمة من 01 الى اخر سجل تابع له

وبالترتيب 01،02،03،04,05

وإذا كان الحقل Groupe يساوي bbb يكون الحقل N_Groupe يأخذ القيمة من 01 الى اخر سجل تابع له

وبالترتيب 01،02،03،04,05

الجواب :

أعتقد أن هذا هو الجواب ومشكور أخـــــــــــــــــــــــــي على توضيح

واذا كان هناك  سؤال  فلا تتردد في طرحه ربما أستطيع الاجابة عليه

ومرحبا بك في أي وقت وأنا في الخدمة أن شــــــــــــــــــــــــــــاء الله



الرمز:


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

    Table1.DisableControls; //Alger
    while not Table1.Eof do
    begin
      if Table1Groupe.Text = 'aaa' then
      begin
          num1 := num1 + 1; //Alger
          //// //Cde1 := Cde1 + 1;
          Table1.Edit;
          Table1N_Groupe.Value := num1;  //Alger
          //// ///Table1.FieldByName('Cde').AsInteger := Cde1;
          Table1.Post; //Alger
      end
      else
      begin
          num2 := num2 + 1;  //Alger
         // ///// Cde1 := Cde1 + 1;
          Table1.Edit;
          Table1N_Groupe.Value := num2; //Alger
          /////////Table1.FieldByName('Cde').AsInteger := Cde1;
          Table1.Post; //Alger
      end;
      Table1.Next; //Alger
    end;
    Table1.EnableControls; //Alger

end;  //Alger


واذا لم أفلح في الاجابة فأرجو منك أخي

اعادة طرح سؤال وتوضيح أكثر

أشكر ك جزيل الشكر وبارك الله فيك .

......

ملاخظة

شاهدت الموضوع قبل أن تضع الصورة

وربما قليل من تعديل على مثال يفي قرض


عدل سابقا من قبل alla في 5/7/2015, 12:34 pm عدل 1 مرات (السبب : توضيح)

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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

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

السلام عليكم ورحمة الله تعالى وبركاته
صحى لصيامكم وتقبل الله منا ومنكم صالح الاعمال
تقريبا اخي سنصل الى الحل
إدا تمعنت جيدا في الجدول الذي ارفقته لك ستجد ان الحقل N_Groupe يتغير ترقيمه حسب القيمة الموجودة في الحقل Groupe
وفي الكود الذي وضعته لا يتغير حسب القيمة Groupe
لذا يجب أن يتوقف ترقيم الحقب N_Groupe مع نهاية القيمة الموجودة بGroupe
ويبدأ الترقيم من جديد عند بداية القيمة الجديدة للGroupe
ارجوا ان لا اكون قد اكثرت عليك
وجزاك الله عنا كل خير

medreg
مبرمج

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 5/7/2015, 6:42 pm

بسم الله الرحمن الرحيم
الصلاة والسلام على رسول الله

السؤال :

إدا تمعنت جيدا في الجدول الذي ارفقته لك ستجد ان الحقل N_Groupe
يتغير ترقيمه حسب القيمة الموجودة في الحقل Groupe

الجواب :
نعم يتغير حسب القيمة الموجودة في الحقل   Groupe
مثلا :
سأتكلم عن الحقلين Groupe و N_Groupe


الرمز:

Groupe  N_Groupe
aaa          1
aaa          2
aaa          3
aaa          4
aaa          5
bbb          1
bbb          2
bbb          3
bbb        4
bbb        5

================
الرمز:


Groupe  N_Groupe
aaa      1
bbb      1
bbb      2
aaa      2
aaa      3
bbb      3
bbb      4
aaa      4
aaa      5
bbb      5
 

وتلاحظ اني  لما غيرت في الفرقات أو المجموعات  Groupe  تغير

ترقيم في   N_Groupe  تنازليا وحسب كل فرقة  

كما تشاهد

هذا الذي حدث عندي عند تنفيذ البرنامج

اذا امكن افتح موضوع اخر في في نفس القسم

وارفقه بعدة صور توضحية وشروحات توضح فيها كل صغيرة وكبيرة

لأنني الى حد الآن لم أفهم برنامجك بعد و
إن لم أقل أني قد تعقد الامر لديا أعد سؤال
حتى تضح الفكرة أكثر

ولا تظن أنك ترقني بهذه الاسئلة بل بالعكس إنها اسئلة ممتعة

فتابع حتى نصل الهدف

رمضان مبارك

مشكور ونحن في الخدمة

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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

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

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

medreg
مبرمج

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 5/7/2015, 9:53 pm


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

الصلاة والسلام على أشرف المرسلين سيدتا محمد صلى الله عليه سلم وعلى آله وصحبه



الرمز:

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

    Table1.DisableControls; //Alger
    while not Table1.Eof do
    begin
      if Table1Groupe.Text = 'aaa' then
      begin
          num1 := num1 + 1; //Alger
          Cde1 := Cde1 + 1;
          Table1.Edit;
          Table1N_Groupe.Value := num1;  //Alger
          Table1.FieldByName('Cde').AsInteger := Cde1;
          Table1.Post; //Alger
      end
      else
      begin
          num2 := num2 + 1;  //Alger
          Cde1 := Cde1 + 1;
          Table1.Edit;
          Table1N_Groupe.Value := num2; //Alger
          Table1.FieldByName('Cde').AsInteger := Cde1;
          Table1.Post; //Alger
      end;
      Table1.Next; //Alger
    end;
    Table1.EnableControls; //Alger

end;  //Alger


ترتيب عشوائي لكل الحقول

الرمز:

procedure TForm1.Button3Click(Sender: TObject); //Alger
const
  tab1: array[1..2] of string = ('aaa','bbb'); //Alger
  tab2: array[1..10] of string =
  ('060','100','101','102','103','010','111','120','121','125'); //Alger

var
  i: integer; //Alger
 
begin
    randomize; //Alger

  Table1.Open; //Alger
  Table1.First; //Alger
  Table1.DisableControls; //Alger
  while not Table1.Eof do
  begin
    Table1.Edit; //Alger
    Table1Cde.Value := random(10)+1; //Alger
    Table1Groupe.Text := tab1[random(2)+1]; //Alger
    Table1S_Groupe.Text := tab2[random(10)+1]; //Alger
    Table1N_Groupe.Value := random(4)+1; //Alger
    Table1Montant.Text := tab2[random(10)+1]; //Alger
    Table1.Post; //Alger
    Table1.Next;  //Alger
  end; //Alger
  Table1.EnableControls; //Alger

end; //Alger





.

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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 5/7/2015, 9:54 pm


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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

مُساهمة  alla في 5/7/2015, 9:56 pm


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

الصلاة والسلام على أشرف المرسلين سيدتا محمد صلى الله عليه سلم وعلى آله وصحبه


الى المرحلة الثانية

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

alla
مبرمج مجتهد

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

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

رد: كيف اتحكم في ترقيم معين حسب كل فرقة (المرحلة الآولى)

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

السلام عليكم ورحمة الله تعالى وبركاته
بارك الله فيك
ملاحظة
إنتبه إلى الحقل S_Groupe إن فيمته غير محدودة وغير ثابتة تتغير حسب الحالة
أما بالنسبة للحقل Groupe فإن قيمته محدودة وثابتة لا تتغير ويشمل 24 فرقة فقط
إذا الى الموضوع الثاني والمرحلة الثانية
وعلى بركة الله

medreg
مبرمج

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

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

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


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