PDA

View Full Version : اشکال در برنامه اینتراوب



tecnicco
جمعه 25 تیر 1389, 18:36 عصر
با سلام
کسی میدونه مشکل این کد چیه وکارنمی کنه؟
توضیح : iwdbedit1.text به یک ستون از اطلاعات عددی از یک جدول بانک اطلاعاتی وصله و بعد از اجرای این کد مجموع اعداد این ستون باید در iwedit1.text ذخیره بشه ولی فقط سطر جاری از ستون با خودش جمع میشه ؟ این کد در win application داره کار میده ولی تو اینترا وب ؟ ممنون

adoquery1.open;
adoquery1.first;
iwedit1.text:='0';
while not adoquery1.eof do begin
iwedit1.text:=floattostr(strtofloat(iwedit1.text)+ strtofloat(iwdbedit1.text));
adoquery1.next;
end;



در ضمن اگر دوستان روش دیگری را برای انجام این کار پیشنهاد کنند ممنون میشم

البته با کوری میشه این کار و راحت انجام داد ولی چون برای یه برنامه حسابداری باید سطر به سطر روی اطلاعات رو با هم جمعو تفریق کرد فقط از روش بالا میشه این کار رو انجام داد البته با چند خط اضافه تر توی begin
کد کوری


adoquery1.close;
adoquery1.sql.text:='select sum(fildname) from jadval';
adoquery1.open;

vcldeveloper
شنبه 26 تیر 1389, 19:53 عصر
خب، چرا مقدار iwedit1.Text رو مرتبا در اون حلقه تغییر می دید، و دائما هم مقادیر Float رو به string تبدیل می کنید؟!

یک متغیر Double تعریف کنید، و در همون حلقه مورد نظرتون، مقادیر فیلد مربوطه در هر رکورد را به اون متغیر اضافه کنید. در نهایت، وقتی حلقه تمام شد، مقدار اون متغیر رو با استفاده از FloatToStr به string تبدیل کنید، و به iwedit1.Text اختصاص بدید.

tecnicco
یک شنبه 27 تیر 1389, 15:25 عصر
با سلام آقای کشاورز
مشکل اصلی اینه که مثل برنامه های ویندوز اطلاعات از دیتا بیس به سرعت وارد iwdbedit و یا iwdbgrid نمیشه و نمی توان از مقدار آن آگاهی پیدا کرد (وقتی next می شه اطلاعات قبلی باقی می مونه) برای این مشکل چه راه حلی به ذهنتون می رسه؟)
( البته مساله قبلی با روش کووری حل شد ومتشکر از راهنماییتون)