تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 3 از 3

نام تاپيک: نوشتن گزارش وقتی تعداد ستون ها متغیره

  1. #1
    داره خودمونی میشه amir zm's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    31

    پيش فرض نوشتن گزارش وقتی تعداد ستون ها متغیره

    سلام

    زبان برنامه :VB6
    پروایدر : ADO با Microsoft Jet 4
    دیتابیس : Access 2000

    'گزارش هایی با دستورTRANSFORM PIVOT نوشتم که تعداد ستون ها در اون متغیره.
    نمی دونم چه جوری می تونم فرم این گزارش ها رو با Crystal Report ایجاد کنم. (اگه روش دیگری غیر از Crystal Report سراغ دارید استفبال می کنم.)

    Crystal Report 10 Advanced Developer و Crystal Report 8.5 Developer رو دارم
    متشکرم

    این هم نمونه ریپورتم هست:


    strsqlsef = "SELECT custumer,code,sum(quantity) as sef,'sef' FROM sefareshat,shsefareshat" & _
    " WHERE sefareshat.sn=shsefareshat.sn" & _
    strdate & strmamoor & " group by code,custumer"

    strsqlexit = "SELECT sharh.to as custumer,code,-sum(quantity) as kh,'kh' FROM data,sharh" & _
    " WHERE data.ID=sharh.ID AND k=4 " _
    & strdate & strmamoor & " group by code,sharh.to"

    strsqlbar = "SELECT sharh.from as custumer,code,sum(quantity) as bar,'bar' FROM data,sharh" & _
    " WHERE data.ID=sharh.ID AND k=0 " _
    & strdate & strmamoor & " group by code,sharh.from"

    strsql = strsqlsef & " UNION " & strsqlexit & " UNION " & strsqlbar
    strsql = "Select custumer,code,sum(sef) as re from (" & strsql & ") Group BY code,custumer Having sum(sef)<>0"
    strsql = "SELECT custumer,nam,code,re from (" & strsql & "),kala WHERE code=kalacode"

    strsql = "TRANSFORM SUM(re) SELECT custumer from (" & strsql & ") Group BY custumer PIVOT nam
    "

  2. #2
    پروفشنال hoseinquest's Avatar
    تاريخ عضويت
    Dec 2004
    محل سكونت
    خودم ‌اينجا‌ قلبم ‌بين‌الحرمين
    پست ها
    793

    پيش فرض

    سلام . اولا از این استفاده کن
    SELECT * FROM TABLES
    بعد هم میتونی از دستور while و همچنین for each برای چاپ مقدیر تمام ستون ها استفاده کنی
    Last edited by hoseinquest; 30-04-2006 at 22:36. دليل: یادم رفت for eacho begam

  3. #3
    داره خودمونی میشه amir zm's Avatar
    تاريخ عضويت
    Apr 2006
    پست ها
    31

    پيش فرض

    سلام
    ممنون میشم بیشتر توضیح بدین که منظورتون از For Each برای چاپ چیه.
    یعنی از دستوری مشابه ایه:
    Dim ctlfield As ADODB.Field
    For Each ctlfield In AdoResult

    Next
    و با دستور Printer.print کار کنم؟
    احتمالا این کار باعث میشه که هر ستون رو به پرینتر بفرسته و در این صورت شما نی تونید در هر صفحه سر برگ و تایتل ستون ها رو چاپ کنید.
    در ضمن با من می خواهم به کابرانم امکان تغییر تنظیمات چاپ از قبیل تغییر عرض ستون ها رو بدم.

    در ضمن در مورد SELECT * FROM TABLES هم منظورتون چی بود؟ (البته بحث من در مورد دستور Select نیست.)

    اگه منظورتون TABLES هست: (یعنی چند جدول از یک دیتابیس)
    اگر دقت کرده باشید در این دیتابیس اعداد 2 فیلد از 2 جدول ShSefareshat و Sharh وجود داره و بر اساس Custumer های یکسان جمع زده شوند تا میزان باقیمانده از سفارش اون مشتری مشخص بشه.
    اگر این 2 فیلد از این 2 جدول با دستور Select انتخاب بشوند در کنار هم قرار می گیرند که طبیعتا جمع زدن اون ها بر اساس فیلد Custumer با امکان Group کردن وجود نداره.
    لذا در 2 دستور انتخاب شده اند و با دستور Union در یک جدول قرار گرفته اند تا بتوان بر اساس فیلد Custumer جمع زده شوند.

    در ضمن باید بعضی از رکورد که در ستون Quantity در جدول Sharh وجود دارن به خاطر نوعشان (K) باید از جمع کم شوند (خروجی ها و ...) لذا باز هم در 2 دستور انتخاب شده اند و با دستور Union در یک جدول قرار گرفته اند.

    اگه منظورتون * است:
    این جداول اطلاعات خیلی بیشتری دارند که در این Query احتیاجی به اون ها نیست. لذا فقط این فیلد ها انتخاب شده اند و برای فیلتر شدن این فیلد ها بر اساس سایر فیلد های آن جداول با STRDATE , STRMamoor انجام شده است.

    متشکرم.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •