PDA

View Full Version : سوال: مشکل با QUERY



mehdi_khepel2004
سه شنبه 01 بهمن 1387, 02:27 صبح
با سلام میخوام ببینم توی این همه برنامه نویس کسی تاحالا این مشکلی رو که من داشتم براش پیش نیومده بابا پیامبر خدا گفتن ذکات علم و دانش یاد دادن به دیگران هست چرا کسی پیدا نمیشه یه جواب درست به من بده بخدا بد مشکلی تمام برنامه ایی که نوشتم گیر همینه
من 2 تا فیلد بدهکار و بستانکار دارم میخوام مثل سایر نرم افزارهای حسابداری فیلد مانده رو کنار این دوتا توی گرید نمایش بدم با استفاده ار فیلدهای محاسباتی این کار رو کردم ولی زمانی که اسکزول رو بالا و پایین میبری مقادیر فیلد مانده تغییر میکنه و کاملا غلط در میاد لطفا راهنمایی کنید با دستورات sql میشه این کار رو کرد یا نه و اگر کسی این کار رو کرده که بعید میدونم انجام نداده باشین 1 راهنمایی هم به من بکنه با تشکر

merced
سه شنبه 01 بهمن 1387, 11:16 صبح
جستجو كني پيدا مي كني ..
من هم اين مشكل رو داشتم
http://www.barnamenevis.org/forum/showthread.php?t=21194
وجواب گرفتم .

البته يه راه ساده اش پيمايش هست.
اطلاعات به كلاينت منتقل ميشه -> در يه فايل Temp كه بهتره XML كه فيلد مانده توش تعريف شده به وسيله ClientDataset ذخيره بشه ..بعد در آخر با پيمايش اون كلاينت ديتا ست ميتوني فيلد مانده رو مقدار بدي. (زمانبره ولي جواب ميده)

apgapg
سه شنبه 29 بهمن 1387, 15:20 عصر
با سلام میخوام ببینم توی این همه برنامه نویس کسی تاحالا این مشکلی رو که من داشتم براش پیش نیومده بابا پیامبر خدا گفتن ذکات علم و دانش یاد دادن به دیگران هست چرا کسی پیدا نمیشه یه جواب درست به من بده بخدا بد مشکلی تمام برنامه ایی که نوشتم گیر همینه
من 2 تا فیلد بدهکار و بستانکار دارم میخوام مثل سایر نرم افزارهای حسابداری فیلد مانده رو کنار این دوتا توی گرید نمایش بدم با استفاده ار فیلدهای محاسباتی این کار رو کردم ولی زمانی که اسکزول رو بالا و پایین میبری مقادیر فیلد مانده تغییر میکنه و کاملا غلط در میاد لطفا راهنمایی کنید با دستورات sql میشه این کار رو کرد یا نه و اگر کسی این کار رو کرده که بعید میدونم انجام نداده باشین 1 راهنمایی هم به من بکنه با تشکر

این کد را امتحان کن

select filde1,filde2,fild1-filde2
from table

Hsimple11
سه شنبه 29 بهمن 1387, 17:47 عصر
مشکلی ایجاد نمیشه.چطور از Calculated Field استفاده میکنید؟

j_shokrzadeh
پنج شنبه 08 اسفند 1387, 14:39 عصر
شما با جدول اصلی کاری نداشته باش در برنامت یه کلاینت دیتاست اضافه کن و تمام فیلدهای جدول اصلی رو داخل اون اضافه کن بعدش در زمان گزارش گیری یا هرکار دیگی داری به این کلاینت دیتاست عمل کن و داخل کلاینت دیتاستت یه فیلد مانده اضافه کن در زمان گزارش گیری این عمل انجام بده
var mandeh,bedehkar, bestankar:double
begin
mandeh:=0
bedehkar:=0;
bestankar:=0;
adoquery1.first;
while not adoquery1.eof do
begin
clientdataset1.append;
clientdataset1.filed1.value:= adoquery1.filed1.value;
clientdataset1.filed2.value:= adoquery1.filed2.value;
.
.
.

clientdataset1.filedbedehkar.value:= adoquery1.filedbedehkar.value;
clientdataset1.filedbestankar.value:= adoquery1.filedbstankar.value;
mandeh:=mandeh + clientdataset1.mandeh.value;
clientdataset1.mandeh.value:=mandeh;
clientdataset1.post;
adoquery1.next;
end;

و بعد از اتمام این کار clientdataset1 وصل کنید به dbgrid خودتون و نتیجه رو می بینید که مانده حساب در ستون اخر میبینی