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

نام تاپیک: فیلتر کردن یک گزارش با توجه به تکست باکس

  1. #1
    کاربر دائمی آواتار Mehr@ban
    تاریخ عضویت
    آبان 1389
    محل زندگی
    بچه محله امام رضا
    پست
    562

    فیلتر کردن یک گزارش با توجه به تکست باکس

    سلام

    برنامه ای هست که قراره یک گزارش رو با توجه به محتویات یک تکست باکس، فیلتر کنه

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

    حالا چرا این محاسبه رو داخل کوئری انجام ندادم دلیلش اختلاف و درصد خطایی هست که در نتیجه محاسبات در کوئری و نتیجه محاسبات در خود گزارش هست.

    نمونه رو هم ضمیمه میکنم دوستان یه نگاهی بندازن و راهنمایی کنن


    فقط یه توضیحی در گزارش هم بدم:
    در گزارش یک ناحیه قرمز رنگ هست که در سمت چپش یه جدول هست
    در سلول وسط باید فیلتر بشه که مساوی با 0 باشه، بزرگتر یا کوچکتر از 0 باشه
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: فیلتر کردن یک گزارش با توجه به تکست باکس

    این خیلی آشناست!
    قبلا جواب نداده بودم؟

  3. #3
    کاربر دائمی آواتار Mehr@ban
    تاریخ عضویت
    آبان 1389
    محل زندگی
    بچه محله امام رضا
    پست
    562

    نقل قول: فیلتر کردن یک گزارش با توجه به تکست باکس

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    این خیلی آشناست!
    قبلا جواب نداده بودم؟
    سلام
    قبلا یه توضیحی در مورد نمونه دیگه ای داده بودین که به دلیلی که در زیر میگم نشد ازش استفاده کنم

    من یک محاسبه ساده رو در این گزارش لازم داشتم که مشخص کنه این فرد در فلان دوره چه وضعیت مالی رو داره! بستانکار هست یا بدهکار و یا تسویه کرده؟
    خب دو راه برای انجامش بود
    1. باید محاسبات رو در خود کوئری انجام میدادم و نتیجه رو در یک فیلد قرار میدادم و میفرستادم به گزاش
    2. اینکه با استفاده از محاسبات داخل خود گزارش که محتویات یک فیلد رو ضرب و تقسیم و ... کنم و نتیجه رو در یک تکس باکس دیگه نشون بدم


    خب علی القاعده باید از روش اول که اساسی تر هست استفاده میکردم ولی چرا نشد؟
    اینکه من دو راه حل رو پیاده کردن و اما نتیجه ای که گرفتم در محاسبات متفاوت بود!
    یعنی در اکثر موارد نتیجه محاسبات یکی بود، ولی در برخی از موارد نتیجه متفاوت بود. یعنی محاسباتی که در کوئری انجام میشد نتیجه اشتباه رو نشون میداد ولی محاسبه ای که داخل خود گزارش و روی فیلدها انجام شده بود دقیقتر بود!

    خیلی دنبال دلیلش گشتم ولی خب دست ما کوتاه و خرما بر نخیل ...

    لذا رفتیم سراغ همون راه دوم که محاسبات رو داخل خود گزارش و بر روی فیلدها انجام بدم!

    ولی خب یه چالش دیگه افتادم
    اینکه نمیشه محتویات فیلدی رو که داده خودش رو از منبع کوئری یا جدول نمیگیره رو فیلتر کرد! که دقیقا میشه همین مورد بنده که میخوام گزارش رو بر اساس فیلدی که صرفا نتیجه محاسباتی که در داخل خود گزارش انجام میشه رو فیلتر کرد!



    و اینشد که دوباره برگشتیم سرخونه اول و برنامه خوابید ...

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: فیلتر کردن یک گزارش با توجه به تکست باکس

    خب چیزی که مد نظر شماست قطعا نشدنی و درواقع ایده اش هم نادرست است.

    پرسش قبلی شما در تاپیک زیر بود:
    https://barnamenevis.org/showthread.php?540498

    که همونجا یک نمونه هم هست برای اینکه چگونه مانده حساب ها رو در یک کوئری محاسبه کنیم.

    مشکل بعدی شما به این برمیگرده که چجوری نتایج جستجو رو نشون بدین (همون فیلتر کردن) که میتونین در تاپیک پایین روشهای مختلف رو ببینین:
    https://barnamenevis.org/showthread.p...دین-شرط

    شما باید همین ها رو در برنامه خودتون پیاده کنین. من طراحی جدول ها رو دیدم. اشکالات اساسی داره که قبلا هم گفته بودم.
    مهمترینش شاید این باشه که جنس فیلدهای مبلغ رو single گذاشتین که خب باید long integer یا decimal باشه.
    موارد دیگه هم هست ؛ چیزهایی مثل جنسیت یا مدرس و آموزشگاه و ... باید حتما بصورت ID ذخیره بشن که شما همه رو string گذاشتین.
    همینطور تاریخ که بارها گفتم باید long integer ذخیره بشه.

    اینکه نتیجه جستجو اونچه انتظار دارین نیست باحتمال برآیند اینجور چیزهاست که قطعا قبل از هر چیز این موارد باید برطرف بشه.

    با این وجود یک نمونه دیگه همینجا میگذارم.
    آخرین ویرایش به وسیله mazoolagh : شنبه 04 آذر 1396 در 12:32 عصر دلیل: ---

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: فیلتر کردن یک گزارش با توجه به تکست باکس


  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,044

    نقل قول: فیلتر کردن یک گزارش با توجه به تکست باکس

    Option Compare Database
    Option Explicit
    Dim WHR
    Private Sub Form_Open(Cancel As Integer)
    WHR = Array("", "WHERE Balance=0", "WHERE Balance<0", "WHERE Balance>0")
    End Sub
    Private Sub Status_AfterUpdate()
    Me.Child.Report.RecordSource = "Select * from Totals " & WHR(Status - 1)
    End Sub
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. پاسخ: 5
    آخرین پست: دوشنبه 21 مرداد 1392, 12:19 عصر
  2. پاسخ: 9
    آخرین پست: دوشنبه 13 اردیبهشت 1389, 08:00 صبح
  3. ست کردن تایمر برای تغییر محتویات یک فرم با توجه به اطلاعات دیتابیس
    نوشته شده توسط shimamehr در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: دوشنبه 09 شهریور 1388, 17:01 عصر
  4. پاسخ: 5
    آخرین پست: یک شنبه 13 بهمن 1387, 08:03 صبح
  5. پاسخ: 12
    آخرین پست: شنبه 18 آبان 1387, 08:35 صبح

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

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