كيف اظهار مجموع عمود من DBGRID
#2
تحسب المجموع لكل جدول الخاص بكل سجل رئيسي له من خلال AfterScroll للجدول الرئيسي (Master)

لم أقم بحساب Total manq Facture و Ecard: لأنني لم أفهمهم جيدا، وبما أنني قدمت لك التوجيه لن يكون صعبا استخراج النتيجة.

لا تنسى أن تضيف الأحداث في Events (événements)


PHP كود :
unit UDM;

interface

uses
  System
.SysUtils, System.Classes, Vcl.StdCtrls, Data.DB, Data.Win.ADODB;

type
  Tdm 
= class(TDataModule)
    ADOConnection1: TADOConnection;
    tbl_centre: TADOTable;
    ADOQuery1: TADOQuery;
    ds_centre: TDataSource;
    tbl_centrecentre_id: TIntegerField;
    tbl_centrecentre_nom: TWideStringField;
    tbl_centrecentre_tel01: TWideStringField;
    tbl_centrecentre_tel02: TWideStringField;
    tbl_manq: TADOTable;
    ds_manq: TDataSource;
    tbl_paiement: TADOTable;
    ds_paiement: TDataSource;
    tbl_depot: TADOTable;
    ds_depot: TDataSource;
    tbl_depotbrd_id: TIntegerField;
    tbl_depotcentre_id: TIntegerField;
    tbl_depotdepot_date: TDateTimeField;
    tbl_depotbrd_mont: TBCDField;
    tbl_depotnbr_fact: TIntegerField;
    tbl_depotdep_pye: TBooleanField;
    tbl_depotdepot_OBS: TWideStringField;
    tbl_paiementpey_id: TAutoIncField;
    tbl_paiementbrd_id: TIntegerField;
    tbl_paiementpy_date: TDateTimeField;
    tbl_paiementpy_nbrF: TIntegerField;
    tbl_paiementpy_mant: TBCDField;
    tbl_paiementpy_obs: TWideStringField;
    tbl_manqmnq_id: TAutoIncField;
    tbl_manqbrd_id: TIntegerField;
    tbl_manqfact_n: TIntegerField;
    tbl_manqmantdepot: TBCDField;
    tbl_manqmantpye: TBCDField;
    tbl_manqOBS: TWideStringField;
    procedure tbl_centreAfterScroll(DataSet: TDataSet);
    procedure tbl_depotAfterOpen(DataSet: TDataSet);
    procedure tbl_paiementAfterOpen(DataSet: TDataSet);
    procedure tbl_depotAfterScroll(DataSet: TDataSet);
  private
    { Private declarations }
    procedure Montants(T: TADOTable; E: String);
  public
    { Public declarations }
  end;

var
  dm: Tdm;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

uses unt_main;
{
$R *.dfm}

procedure Tdm.Montants(T: TADOTable; E: String);
var
  Montant: Currency;
  M_Field: String;
begin
  Montant 
:= 0;

  if T.Name = 'tbl_depot' then
    M_Field 
:= 'brd_mont'
  else if T.Name = 'tbl_paiement' then
    M_Field 
:= 'py_mant';

  T.DisableControls;
  T.First;
  while not T.Eof do
  begin
    Montant 
:= Montant + T.FieldByName(M_Field).AsFloat;
    T.Next;
  end;
  if E = 'Edit1' then
    Form2
.Edit1.Text := CurrToStrF(Montant, ffCurrency, 2)
  else if E = 'Edit3' then
    Form2
.Edit3.Text := CurrToStrF(Montant, ffCurrency, 2);

  T.EnableControls;
end;

procedure Tdm.tbl_centreAfterScroll(DataSet: TDataSet);

begin
  
if tbl_depot.Active then
  begin
    Montants
(tbl_depot, 'Edit1');
    Montants(tbl_paiement, 'Edit3');
  end;
end;

procedure Tdm.tbl_depotAfterOpen(DataSet: TDataSet);
begin
  Montants
(tbl_depot, 'Edit1');
end;

procedure Tdm.tbl_depotAfterScroll(DataSet: TDataSet);
begin
  Montants
(tbl_paiement, 'Edit3');
end;

procedure Tdm.tbl_paiementAfterOpen(DataSet: TDataSet);
begin
  Montants
(tbl_paiement, 'Edit3');
end;

end. 
[-] كل من 1 user says قال شكرا ل merouane على المشاركة المفيدة
  • zouaidahmed
الرد


الردود في هذا الموضوع
RE: كيف اظهار مجموع عمود من DBGRID - بواسطة merouane - 23-09-2018, 10:16 PM

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


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