ايران ويج

نسخه‌ی کامل: تفریق دو فیلد در پارادوکس
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
هرکی میتونه راهنمایی کنه
من تو پارودوکس یه بانک ساختم که چند تا فیلد داره
فیلد اول = صورتحساب که نوع اون$ است
فیلد دوم = مبلغ پرداختی که نوع اون $ است
فیلد سوم = مبلغ بدهکاری که نوع اونم $ است
حالا میخوام فیلد سوم از رابطه (صورتحساب - مبلغ پرداختی) بدست بیاد

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

1 - يك Query یا tableبه فرمت اضافه كن ( اختياري ) .
2- روي Query یا table دابل كليك كن ، بعد روي فرم باز شده راست كليك كن و گزينه Add All Fields رو انتخاب كن .
3 - بعد دوباره روي همون فرم راست كليك كن و اين بار گزينه New Field رو انخاب كن .
5 - در پنجره باز شده ، در بخش Name يه نام دلخواه بنويس مثلا Test ( بعدا اين فيلد رو همين نام صدا ميكنيم ) .
در بخش Type نوع فيلد رو مشخص كن ، مثلا String .
در قسمت Field Type مقدار Calculated رو انتخاب كن .
دكمه Ok رو بزن . مي بيني كه در ليست فيلدها نام فيلدي به اسم Test اضافه شده .
6 - توي Event هاي مربوط به Adoquery ، موردي به نام OnCalcFields رو با دابل كليك انتخاب كن .
7 - با توجه به سوال شما در بدنه تابع يه كدي مشابه كد زير بايد بنويسي :
کد:
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
dataset['بدهکار']:=dataset['صورت حساب']-dataset['مبلغ پرداختي'];
end;
8 - نتيجه كار رو بدون اجراء كردن برنامه در DBGrid ميتوني ببيني .
فيلدهايي رو كه نميخواي كاربر در DBGrid ببينه ، فقط از طريق خود Grid حذف كن
از راهنمایی شما ممنون
استفاده کردم table
همه این کارها را انجام دادم
ولی من میخوام وقتی که کاربر صورتحساب و مبلغ پرداختی را وارد میکنه خود به خود مبلغ بدهکاری توی فیلد خودش نوشته بشه ، ولی با این کارها میلغ حساب نکرد باید چطوری میلغ بدهکاری رو حساب کنه.
این برنامه رو میخوام برای مخابرات که هم برنامه 118 باشه
(که البته توی این موضوع مشکلی ندارم)
هم بدهکاریهای مشترکین رو حساب کنه

بازم منتظر راهنمایی شما هستم
خیلی مرسی
خب شما چک کنین وقتی کاربر صورتحساب و مبلغ پرداختی را وارد کرد مقدار فیلد سوم از رابطه (صورتحساب - مبلغ پرداختی) بدست بیاد
شما از چه کدی برای گرفتن اطلاعات و ثبت اون در بانک استفاده میکنین؟
من اول اومدم توی
database
یه بانک از نوع پارادوکس ساختم و بعد اومدم توی دلفی بوسیله
form wizard
یه فرم ساختم که توی اون یه عنصر
dbnavitor
وچند عنصر
dbedit
بود ویه
dbgrid
هم خودم اضافه کردم وبعد که برنامه رو اجرا میکنم
بوسیله همون
dbnavitor
به بانکم رکورد اضافه میکنم واز کدی استفاده نمیکنم
شما بهتره از formwizard استفاده نکنین چون چنین قابلیتی نداره بهتره از خودتون کنترلها رو رو فورم بزارید و ارتیاط ایجاد کنین
نوروز مبارک
اینکارم کردم
دستور زیر رو برای امتحان توی
adotable
,
adoquery
نوشتم
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
dataset['بدهکار']:=dataset['صورت حساب']-dataset['مبلغ پرداختي'];
end;

ولی باز نتیجه نگرفتم
باید کجا بنویسم که اینو از این کم کنه و بریزه توی یه فیلد دیگه
اصلا اون فیلد test برای چی بود
اگه ممکنه یه فکر اساسی برام بکن
دست شما درد نکنه
کوووووووووووووووووووووووووووووووومک
کووووووووووووووووووووووووووووووووووووووومک
کووووووووووووووووووووووووووووووووووووووووووووومک
خسته نباشید
اون مشکلم با کمی دقت برطرف شد
ولی حالا یه مشکل جدید دارم
اگه بخوام یه مبلغی رو جستجو کنم باید چکار کنم
البته باید بگم که اگه بخوام از فیلد صورت حساب ومبلغ پرداختی جستجو کنم مشکل ندارم
ولی وقتی میخوام ازهمون دستورات برای اون فیلد محاسباتی استفاده کنم جستجو نمیکنه
دستوراتی که استفاده میکنم اینه:procedure TForm3.N3Click(Sender: TObject);
var string1:string[70];
begin
table1.IndexFieldNames:='pardakht';
string1:=inputbox('ÌÓÊÌæí ãÈáÛ ÑÏÇÎÊí','æÇÑÏ äãÇííÏ ãÈáÛ ÑÇ','');
table1.SetKey;
table1.FieldByName('pardakht').AsString:=string1;
table1.GotoNearest;

end;