12-03-2017, 10:37 AM
بسم الله الرحمن الرحيم
الصلاة والسلام على رسول الله
جرب هذا المثال : ربما تجد الحل
كان جوابي حسب الكود الذي وضعته
ولكن تقوم ببعض تغيرات فقط كي تستطيع تطبيقيه
على قاعدة البيانات التي تعمل عليها
الصلاة والسلام على رسول الله
جرب هذا المثال : ربما تجد الحل
كان جوابي حسب الكود الذي وضعته
ولكن تقوم ببعض تغيرات فقط كي تستطيع تطبيقيه
على قاعدة البيانات التي تعمل عليها
كود :
unit Bachirsoft;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids;
type
TForm1 = class(TForm)
Button1: TButton;
TArticleX4: TTable;
TLigne_Comptoire: TTable;
TArticle: TDBGrid;
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DataSource2: TDataSource;
Table1: TTable;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin //spSkinMessage.
if messagedlg('Recuperer les quantité du stock?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
TArticleX4.DisableControls; // من أجل تسريع
TLigne_Comptoire.DisableControls;
try
TLigne_Comptoire.First;
while not TLigne_Comptoire.eof do
begin
TArticleX4.First;
while not TArticleX4.eof do
begin
if TArticleX4.fieldbyname('Designation_Art').asstring=
TLigne_Comptoire.FieldByName('Designation_LC').asstring
then
begin
TArticleX4.Edit;
TArticleX4.FieldByName('Quantite_Art').asinteger:=
TArticleX4.FieldByName('Quantite_Art').asinteger-
TLigne_Comptoire.FieldByName('Qte_LC').asinteger;
TArticleX4.Post;
TArticle.Refresh;
Break; //الخروج من الحلقة عند أول تساوي للكميتين
// اذا كنت تريد مقارنة عدة قيم أقف عمل
// Break;
TArticleX4.Next; // يضع داخل شرط وخارج شرط
end;
TArticleX4.Next; // يضع داخل شرط وخارج شرط
end; // وداخل الحلقة;
TLigne_Comptoire.Next; // وداخل الحلقة
end;
finally
TArticleX4.EnableControls;
TLigne_Comptoire.EnableControls;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
if not fileExists('fat_LC.db') then
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('CREATE TABLE "fat_LC.db"(Designation_LC CHAR(20),Qte_LC CHAR(20))');
Query1.ExecSQL;
end;
if not fileExists('fat_Art.db') then
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('CREATE TABLE "fat_Art.db"(Designation_Art CHAR(20),Quantite_Art CHAR(20))');
Query1.ExecSQL;
end;
Query1.Close;
if (fileExists('fat_Art.db'))and(fileExists('fat_LC.db')) then
begin
TArticleX4.TableName := 'fat_Art.db';
TLigne_Comptoire.TableName := 'fat_LC.db';
DataSource1.DataSet := TArticleX4;
DataSource2.DataSet := TLigne_Comptoire;
TArticle.DataSource := DataSource1;
dbgrid1.DataSource := DataSource2;
TArticleX4.Open;
TLigne_Comptoire.Open;
end;
end;
end.
