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

نام تاپیک: گزارش گیری از دو جدول مرتبط .

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    شیراز
    سن
    39
    پست
    74

    گزارش گیری از دو جدول مرتبط .

    سلام
    من با استفاده از مطالب دیگر تاپیک ها فهمیدم که چطور می شه یک شی دیتاست (با add new item) به برنامه ام اضافه کنم .بعد روی دیتاست کلیک کردم و چند جدول (با data table) توی اون قرار دادم .
    بعد یک شی کریستال ریپورت به برنامه اضافه کردم و ازا database expert و project data و ado.net dataset رو انتخاب کردم.
    بعد یک جدول رو اضافه کردم و تونستم با کد هایی که در crystal report viewer نوشتم (از قبیل connection string و query دلخواهم ) اطلاعات را در کریستال ریپورت ببینم .

    اما مشکل انجا است که اگر اطلاعات دو جدول با فیلد مشترک ( که در یکی کلید اصلی و در دیگری کلید خارجی است) را بخواهیم نمایش دهیم این کار امکان پذیر نیست .
    به عبارت بهتر اگه تمام فیلد های جدول sale رو بخواهیم نامیش میده ولی اگه فیلد name از جدول stuff رو اضافه کنیم هیچ رکوردی نمایش داده نمی شه.
    واقعا مشکل عجیبیه.اگه ممکنه راهنمایی کنید.
    با تشکر.

    Dim Con As New OleDbConnection("provider = microsoft.jet.oledb.4.0;data source =" & path & "\bargh.mdb;Jet OLEDB:Database Password=abc")
    Con.Open()
    Dim oleAdapter1 As OleDbDataAdapter
    Dim ds As New DataSet
    Dim cr As New CrystalReport4

    Dim str As String

    str = "select stuff.name,sale.code,sale.sale_fac,sale.buyer_name ,sale.sale_day,sale.sale_month,sale.sale_year,sale .sale_number,sale.sale_price,sale.description from sale,stuff where sale.code = stuff.code"
    oleAdapter1 = New OleDbDataAdapter(str, Con)
    oleAdapter1.Fill(ds, "sale")
    cr.SetDataSource(ds)
    CrystalReportViewer1.ReportSource = cr

  2. #2
    کاربر دائمی آواتار sm
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    ایساتیس
    پست
    1,389
    توی کوئریتون عمدا از ضرب استفاده کردید؟ چرا از join استفاده نشده است؟
    امتحان نکردم، شاید مشکل از همین باشه... با Join امتحان کنید.

    موفق باشید

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    شیراز
    سن
    39
    پست
    74
    از راهنماییت ممنون.
    اما مشکل رو پیدا کردم . من بایست تمام جداول رو توی دیتاست می گذاشتم.به صورت زیر:

    oleAdapter1.Fill(ds, "sale")
    oleAdapter1.Fill(ds, "stuff")
    بازم تشکر می کنم.

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    شیراز
    سن
    39
    پست
    74
    فقط یه مشکل برای ایجاد relation بین اونها وجود داره.
    من این کدها رو نوشتم:
    oleAdapter1.Fill(ds, "sale")
    oleAdapter1.Fill(ds, "stuff")

    ds.Relations.Add("newrel", ds.Tables("sale").Columns("code"), ds.Tables("stuff").Columns("code"))
    و این error رو میده:

    These columns don't currently have unique values.

    فیلدهای جدول stuff
    • code
    • ...
    (کلید جدول، code است.)


    فیلدهای جدول sale
    • sale_fac
    • code
    • ...
    (کلید جدول، sale_fac و code است.)

    واقعا دچار مشکل شدم!!!! باید چکار کنم؟

  5. #5
    کاربر دائمی آواتار sm
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    ایساتیس
    پست
    1,389
    چه نیازی هست که توی برنامه Relationها رو مشخص کنین؟
    این پیغام هم بخاطر اینه که توی جدول اصلی تون مقدار تکراری دارید... حتما باید کلید اصلی باشه

    موفق باشید

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

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