PDA

View Full Version : نحوه درست کردن یک دکمه ذخیره



hentjanson
دوشنبه 22 بهمن 1386, 11:48 صبح
سلام بچه ها من یک دکمه ذخیره درست کردم که بر اساس یک متغیر کار میکنه که اگه در هنگام اضافه کردن رکورد اون true بود ذخیره کنه دکمه ذخیره .
حالا یک مشکل دارم اگه در شرایط معمولی روی این دکمه ذخیره کلیلک کنم اطلاعات منو پاک میکنه میشه بگین مشکل کار کجاست .

بن نظر خود می خوام یک کدی بنویسم که اگه فیلد ها خال بود ذخیره نکنه این دکمه و پیغام بده میشه کمکم کنید .

مرسی

vcldeveloper
دوشنبه 22 بهمن 1386, 12:00 عصر
انتظار که ندارید فقط با دانستن اینکه شما یک دکمه برای ذخیره در برنامه دارید، ما بتونیم حدس بزنیم مشکل از کجاست، درسته؟

hentjanson
دوشنبه 22 بهمن 1386, 12:02 عصر
من کد خودمو میزارم . مرسی

hentjanson
دوشنبه 22 بهمن 1386, 17:20 عصر
ایک کد منه .
باید بگم که در حالت insert , edit متغیر رو true می کنم .



procedure TForm1.BitBtn11Click(Sender: TObject);
begin
if newsw=true then
begin
table1.Insert;
table1.FieldByName('shomare').asstring:=maskedit4. Text;
table1.FieldByName('namketab').asstring:=maskedit6 .Text;
table1.post;
end
else
begin
table1.edit;
table1.FieldByName('shomare').asstring:=maskedit4. Text;
table1.FieldByName('namketab').asstring:=maskedit6 .Text;
table1.post;
end;
newsw:=false;
end;

Amir_Safideh
دوشنبه 22 بهمن 1386, 18:01 عصر
بن نظر خود می خوام یک کدی بنویسم که اگه فیلد ها خال بود ذخیره نکنه این دکمه و پیغام بده میشه کمکم کنید .

خوب برای این کار این کد رو بنویس :

if (MaskEdit4.Text = '') Or (MaskEdit6.Text = '') then
begin
ShowMessage('Please complete all information!');
Exit;
end;


باید بگم که در حالت insert , edit متغیر رو true می کنم .

منظورتون اینه که هم زمانی که edit میخواهید بکنید و هم زمانی که insert میکنید این متغییر رو True میکنید ؟ خوب معلومه که زمانی که متغییر شما برابر با True باشه فقط Insert اتفاق میافته و طبق این کد شما زمانی که متغییر شما مخالف True باشه عمل Edit اتفاق میافته .

برای Edit بهتره که برای Table1 یک DataSource قرار بدید و عمل Edit رو روی این DataSource انجام بدید نه مستقیم روی Table1 .یعنی اینکه یک DataSource به فرمت اضافه کنی و خاصیت DataSet مربوط به این DataSource رو برابر با Table1 قرار بدی و عمل Edit رو مثل این کد برات نوشتم انجام بده :


with DataSource1 do
begin
Edit;
DataSet.FieldByName('shomare').asstring:=maskedit4 . Text;
DataSet.FieldByName('namketab').asstring:=maskedit 4. Text;
Table1.post;
end;

در ضمن بهتره برای Insert کردن متغییر رو برابر True و برای Edit کردن برابر False قرارش بدی که عمل Insert یا Edit به صورت کنترل شده اتفاق بیافتن .

به طور کلی این کد رو در رویداد OnClick دکمه ذخیره خودت قرار بده :


if (MaskEdit4.Text = '') Or (MaskEdit6.Text = '') then
begin
ShowMessage('Please complete all informations!');
Exit;
end;
if Newsw = True then
begin
Table1.Insert;
Table1.FieldByName('shomare').asstring:=maskedit4. Text;
Table1.FieldByName('namketab').asstring:=maskedit6 .Text;
Table1.post;
end
else
begin
with DataSource1 do
begin
Edit;
DataSet.FieldByName('shomare').asstring:=maskedit4 . Text;
DataSet.FieldByName('namketab').asstring:=maskedit 4. Text;
Table1.post;
end;
end;

------------
موفق باشید.