نمایش نتایج 1 تا 4 از 4

نام تاپیک: مشکل کد چیست

  1. #1
    کاربر دائمی آواتار majidsoft
    تاریخ عضویت
    مهر 1387
    محل زندگی
    اهواز
    سن
    44
    پست
    329

    مشکل کد چیست

    با سلام
    من از این کد برای میانگین گیری می خواهم استفاده کنم به شرطی که اگر صفر بود جز میانگین نباشد و فیلدهای صفر را حساب نکند . ولی جواب نمیدهد لطفا راهنمایی کنید
    numbervar i;
    NUMBERVAR K;
    numbervar q;

    for i:=1 to COUNT ({SUGARINF.MODTP}) step 1 do(
    if ({SUGARINF.MODTP}) = 0 then k=k+1;
    );
    q:= sum({sugarinf.modtp})/((count ({sugarinf.modtp}))-k)

  2. #2

    نقل قول: مشکل کد چیست

    کدی که نوشتی توی یک حلقه فقط روی مقدار اولین رکورد عمل میکنه.
    الآن نمیدونم دقیقا چطوری میتونی به تک تک رکورد ها دسترسی پیدا کنی، پیدا کردم بهت میگم.
    یک نکته دیگه رو هم کلا دقت کن، کدت ممکنه به خطای Devid by zero بر بخوره.
    اگه مقدار همه رکوردها صفر باشه، کسر تقسیمت صفر میشه.
    مواظبش باش.

    موفق باشی.

  3. #3
    کاربر دائمی آواتار majidsoft
    تاریخ عضویت
    مهر 1387
    محل زندگی
    اهواز
    سن
    44
    پست
    329

    نقل قول: مشکل کد چیست

    آقا فکر نکنم سوال سختی باشه یعنی کسی بلد نیست

  4. #4

    نقل قول: مشکل کد چیست

    سلام دوست عزیز
    راه حلی که به ذهن من میرسه اینه که با یک فرمول تعداد مقادیر غیر صفر رو بشماری و بعد جمع مقادیر رو به تعداد غیر صفر ها تقسیم کنی.
    بنابراین ابتدا یک فرمول میسازیم که به ازای مقادیر صفر، صفر خروجی بده و بازای مقادیر غیر صفر 1 خروجی بده. حالا اگه جمع مقادیر این فرمول رو حساب کنیم در واقع تعداد مقادیر غیر صفر رو شمردیم.

    یک Formula Field اضافه کن، مثلا به اسم CoutCondition و مقدارش رو بذار:
    if {SUGARINF.MODTP} <> 0 then
    1
    else
    0


    حالا این کد مقدار میانگین فیلد مورد نظرت رو بدون در نظر گرفتن مقادیر صفر حساب میکنه:
    sum({SUGARINF.MODTP}) / sum({@CoutCondition})


    و به این ترتیب میتونی مقدار میانگین فیلد مورد نظرت با احتساب مقادیر صفر به دست بیاری:
    sum({SUGARINF.MODTP})/count({SUGARINF.MODTP})

    و البته راه بهتری هم هست:
    average({SUGARINF.MODTP})


    موفق باشی

قوانین ایجاد تاپیک در تالار

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