مانده گیری از طریق فیلد محاسباتی
با سلام خدمت دوستان
میخواهم از طریق یک فیلد محاسباتی مانده گیری انجام دهم.البته این مانده گیری به رکورد قبلی ارتباط دارد.
از کد زیر استفاده نمودم ولی خطا میده. اگر خط قرمز بکار گرفته شود باعث میشود که مانده هر سطر جداگانه و بدون ارتباط با سطر قبل شود که مورد نظر نمی باشد. اگر خط را غیرفعال نمایم در رابطه با خط سبز رنگ خطای فلوت اتقاف میافتد. به نظر شما خط قرمز در کجا قرار دهم که در موقع محاسبه فقط یکبار عمل شود؟ متشکرم
نقل قول:
procedure TfrmRoyatGardeshAmel2.qyrDaftarCalcFields(DataSet: TDataSet);
var
intMondehKol:Extended;
intMondehJari:Extended;
begin
intMondehKol:=0;
intMondehJari:=Abs(qyrDaftarBED.Value-qyrDaftarBES.Value);
intMondehKol:=intMondehKol+intMondehJari;
qyrDaftarMondeh.Value :=intMondehKol;
end;
نقل قول: مانده گیری از طریق فیلد محاسباتی
پارامتر intMondehKol رو بیرون از این رویه تعریف کن و بیرون از این رویه هم مقدار دهی کن. بهتره اونو تو پروسه ای مقداردهی کنی که یکبار اجرا بشه.
نکته دوم اینکه با یک Query ساده هم میتونی جمع و تفریق یک یا چند فیلد رو بدست بیاری. نیازی به استفاده از فیلد محاسباتی نیست.
نقل قول: مانده گیری از طریق فیلد محاسباتی
نقل قول:
نوشته شده توسط
naderanhari
پارامتر intMondehKol رو بیرون از این رویه تعریف کن و بیرون از این رویه هم مقدار دهی کن. بهتره اونو تو پروسه ای مقداردهی کنی که یکبار اجرا بشه.
نکته دوم اینکه با یک Query ساده هم میتونی جمع و تفریق یک یا چند فیلد رو بدست بیاری. نیازی به استفاده از فیلد محاسباتی نیست.
با تشکر.
در مورد پارامتر intMondehKol میشه نمونه ارائه دهید؟
در مورد نکته دوم اینکه به اون روش فقط تقاوت رکود مورد نظر بدست میاید که مورد نظر من نیست . زیرا تفاوت این رکورد با مانده رکورد قبل باید جمع شود.
نقل قول: مانده گیری از طریق فیلد محاسباتی
از SQL استفاده کن عزیزم! از SQL! و از ابداع راه های خلاقانه بپرهیز! این کار اصلا جواب نمیده چون هیچ تضمینی وجود نداره اونی که در intMandehKol ذخیره شده اونی هست که می خوایی!
نقل قول: مانده گیری از طریق فیلد محاسباتی
با تشکر از پاسختان
ولی فیلد محاسباتی را برای همین موارد ساخته شده و قطعا هم روشی برای مانده گیری با فیلد محاسباتی وجود دارد.
نقل قول: مانده گیری از طریق فیلد محاسباتی
نقل قول:
نوشته شده توسط
khoshblagh
با تشکر از پاسختان
ولی فیلد محاسباتی را برای همین موارد ساخته شده و قطعا هم روشی برای مانده گیری با فیلد محاسباتی وجود دارد.
برای اینکاری که شما می خواهید ساخته نشده! برای محاسبه درجای یک فیلد بر پایه فیلدهای دیگر همان رکورد هست. اگر هم می خواهی چنین کاری کنی که مجموع یک فیلد رو بده باید یک کوئری با SQL بگیری و نتیجه اش رو به فیلد محاسباتی اختصاص بدی. برای چیزی که شما می خواهی به این صورت هیچ روشی وجود نداره یا بار بسیار زیادی رو به برنامه وارد میکنه بدون اینکه نتیجه درستی بده.
اگر کوئری SQL بلد نیستی بنویسی برادرانه بهت توصیه می کنم نوشتن برنامه های پایگاه داده رو کلا بذار کنار یا برو یاد بگیر!
نقل قول: مانده گیری از طریق فیلد محاسباتی
نقل قول:
نوشته شده توسط
a_mosavian
برای اینکاری که شما می خواهید ساخته نشده! برای محاسبه درجای یک فیلد بر پایه فیلدهای دیگر همان رکورد هست. اگر هم می خواهی چنین کاری کنی که مجموع یک فیلد رو بده باید یک کوئری با SQL بگیری و نتیجه اش رو به فیلد محاسباتی اختصاص بدی. برای چیزی که شما می خواهی به این صورت هیچ روشی وجود نداره یا بار بسیار زیادی رو به برنامه وارد میکنه بدون اینکه نتیجه درستی بده.
اگر کوئری SQL بلد نیستی بنویسی برادرانه بهت توصیه می کنم نوشتن برنامه های پایگاه داده رو کلا بذار کنار یا برو یاد بگیر!
با سلام خدمت دوست گرامی
من از کوئری در برنامه استفاده مینمایم. بحث سر این است که همیشه راه بهتری (یا روش دیگری) برای کار مشابه وجود دارد. متشکرم
نقل قول: مانده گیری از طریق فیلد محاسباتی
نقل قول:
نوشته شده توسط
khoshblagh
با سلام خدمت دوست گرامی
من از کوئری در برنامه استفاده مینمایم. بحث سر این است که همیشه راه بهتری (یا روش دیگری) برای کار مشابه وجود دارد. متشکرم
اگه بلدید کویری بنویسید این شامورتی بازیا چیه پس؟! بهترین راه همونه چون در پایین ترین لایه ای که شما بهش دسترسی دارید اجرا میشه.