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

كيف يتم الحساب بين الجداول من فورم الى اخرى

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

كيف يتم الحساب بين الجداول من فورم الى اخرى

مُساهمة  amire في 15/10/2017, 11:28 pm

السلام عليكم و رحمة الله و بركاته

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

السلام عليكم و رحمة الله و بركاته
لدي ثلاث جداول الأول هو لقسم المشتريات   وهو موجود في الفور رقم4 stock entrer  و الثاني هو للبضاعة التي خرجت   وهو موجود في الفورم 5 stock sortie و الثالث موجود في الفورم 6هو  stock reste حصيلة ما تبقى من الجدول الأول
)stock entrée (forme 4) - stock sortie(forme 5) = stock reste  
(form6)
مثلا و 10 أقلام وكتبناها في الجدول الأول و في الجدول الثاني لدينا استهلاك 7 أقلام اريد حل للعملية الحسابية
و أيضا اريد يكتب الباقي بشكل اتوماتيكي في الجدول stoCk
يعني يمتلأ الجدول اتوماتيكيا

amire

عدد المساهمات : 1
تاريخ التسجيل : 27/09/2017

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

رد: كيف يتم الحساب بين الجداول من فورم الى اخرى

مُساهمة  alla في 22/11/2017, 3:49 pm

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

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

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

واشكرك على طرحك لهذا السؤال والتسجيل كذلك


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


الوحدة الرابعة لقسم المشتريات

الكود:

unit Unit4;

interface

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

type
  TForm4 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Table1Cod: TFloatField;
    Table1Quat: TFloatField;
    Table1Prix: TCurrencyField;
    Table1Nom: TStringField;
    Edit4: TEdit;
    Label4: TLabel;
    DBNavigator1: TDBNavigator;
    DBGrid1: TDBGrid;
    Edit5: TEdit;
    Button1: TButton;
    Label5: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form4: TForm4;

implementation

uses Unit3, Unit6;

{$R *.dfm}

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  form3.show;
end;

procedure TForm4.BitBtn1Click(Sender: TObject);
begin

  Table1.Open;
  if Table1.Locate('Nom',Edit4.Text,[]) then
  begin
    //  stock entrée
    //  لقسم المشتريات
    // اسم السلعة موجود
    Table1.Edit;
    Table1.FieldByName('Cod').AsString := Edit1.Text;
    Table1.FieldByName('Quat').AsString := Edit2.Text;
    Table1.FieldByName('Prix').AsString := Edit3.Text;
  // Table1.FieldByName('Nom').AsString := Edit4.Text;
    Table1.Post;
  end
  else begin
  //////////////////////////////////////////
    // stock entrée
    // لقسم المشتريات
    // اسم السلعة غير موجود
    Table1.Last;
    Table1.Append;
    Table1.FieldByName('Cod').AsString := Edit1.Text;
    Table1.FieldByName('Quat').AsString := Edit2.Text;
    Table1.FieldByName('Prix').AsString := Edit3.Text;
    Table1.FieldByName('Nom').AsString := Edit4.Text;
    Table1.Post;
  //////////////////////////////////////////
  end;

  BitBtn2Click(Sender);
end;

procedure TForm4.BitBtn2Click(Sender: TObject);
begin
  Edit1.Text := '';
  Edit2.Text := '';
  Edit3.Text := '';
  Edit4.Text := '';
end;

procedure TForm4.Button1Click(Sender: TObject);
begin
 if Table1.Locate('Nom',Edit5.Text,[]) then ShowMessage('Trouve');
end;

end.




الوحدة الخامسة لــقسم المبيعات

الكود:

unit Unit5;

interface

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

type
  TForm5 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Table1Cod: TFloatField;
    Table1Quant: TFloatField;
    Table1Prix: TCurrencyField;
    Table1Nom: TStringField;
    Edit4: TEdit;
    Label4: TLabel;
    DBNavigator1: TDBNavigator;
    DBGrid1: TDBGrid;
    Edit5: TEdit;
    Button1: TButton;
    Label5: TLabel;
    Label6: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form5: TForm5;

implementation

uses Unit3, Unit6, Unit4;

{$R *.dfm}

procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  form3.show;
end;

procedure TForm5.BitBtn1Click(Sender: TObject);
begin

  Table1.Open;
  Form6.Table1.Open;
  Form4.Table1.Open;
  if Form4.Table1.Locate('Nom',Edit4.Text,[]) then
  begin
    if Form5.Table1.Locate('Nom',Edit4.Text,[]) then
    begin
    //  stock sortie
    // قسم المبيعات
    // // اسم السلعة موجود
      Table1.Edit;
      Table1.FieldByName('Quant').AsFloat := Table1.FieldByName('Quant').AsFloat+StrToFloat(Edit2.Text);
      if edit3.Text <>'' then
        Table1.FieldByName('Prix').AsString := Edit3.Text;
      Table1.Post;
    end else
    begin
      Table1.First;
      Table1.Append;
      Table1.FieldByName('Cod').AsString := Edit1.Text;
      Table1.FieldByName('Quant').AsString := Edit2.Text;
      Table1.FieldByName('Prix').AsString := Edit3.Text;
      Table1.FieldByName('Nom').AsString := Edit4.Text;
      Table1.Post;
    end;
    //  stock reste
    // حصيلة ما تبقى من الجدول الأول  و الثاني
    if Form6.Table1.Locate('Nom',Edit4.Text,[]) then
    begin
      Form6.Table1.Edit;
Form6.Table1.FieldByName('Quant').AsFloat := Form6.Table1.FieldByName('Quant').AsFloat-StrToFloat(Edit2.Text);
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] := StrToCurr(Edit3.Text)-Form4.Table1.FieldByName('Prix').AsCurrency;

      Form6.Table1.Post;
    end else
    begin
      Form6.Table1.First;
      Form6.Table1.Append;
      Form6.Table1.FieldByName('Cod').AsString := Edit1.Text;
Form6.Table1.FieldByName('Quant').AsFloat := Form4.Table1.FieldByName('Quat').AsFloat-StrToFloat(Edit2.Text);
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] := StrToCurr(Edit3.Text)-Form4.Table1.FieldByName('Prix').AsCurrency;

      Form6.Table1.FieldByName('Nom').AsString := Edit4.Text;
      Form6.Table1.Post;
    end;
 end
  else ShowMessage('Ne trouve pas');
  BitBtn2Click(Sender);
end;

procedure TForm5.BitBtn2Click(Sender: TObject);
begin
  Edit1.Text := '';
  Edit2.Text := '';
  Edit3.Text := '';
  Edit4.Text := '';
end;

procedure TForm5.Edit4Change(Sender: TObject);
begin
 
 if Form5.Table1.Locate('Nom',Edit4.Text,[]) then
 begin
  Edit1.Color := clBtnFace;
  Edit1.Enabled := false;
  Label6.Caption:='= vide';
 end else
 begin
  Edit1.Color := clWindow;
  Edit1.Enabled := true;
  Label6.Caption:='.';
 end;
 Form5.Table1.First;

end;

procedure TForm5.Button1Click(Sender: TObject);
begin
if Table1.Locate('Nom',Edit5.Text,[]) then ShowMessage('Trouve');
end;

end.



الوحدة السادسة للباقي من عملية البيع

الكود:

unit Unit6;

interface

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

type
  TForm6 = class(TForm)
    DataSource1: TDataSource;
    Table1: TTable;
    DBNavigator1: TDBNavigator;
    DBGrid1: TDBGrid;
    Table1Cod: TFloatField;
    Table1Quant: TFloatField;
    Table1Prix: TCurrencyField;
    Table1Nom: TStringField;
    BitBtn1: TBitBtn;
    Edit5: TEdit;
    Button1: TButton;
    Label5: TLabel;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private public
  end;

var
  Form6: TForm6;

implementation

uses Unit3;

{$R *.dfm}

procedure TForm6.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  form3.show;
end;

procedure TForm6.FormCreate(Sender: TObject);
begin
 Table1.Open;
end;

procedure TForm6.Button1Click(Sender: TObject);
begin
if Table1.Locate('Nom',Edit5.Text,[]) then ShowMessage('Trouve');
end;

end.


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



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

alla
مبرمج مجتهد

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

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

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


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