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

نام تاپیک: شرط command برای کریستال ریپورت رو چه طوری بنویسم

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

    شرط command برای کریستال ریپورت رو چه طوری بنویسم

    برای ارسال داده به کریستال ریپورت من دیتاست رو تو کد نویسی fill می کنم و ازcommandاستفاده می کنم خوب مثلا چند تا جدولو اینر جوین کردم و همه چیز درسته ولی اگه بخام یه رکورد خاص رو نشون بده چه طوری شرطی رو که تو دیتاست قید می کنم تو command لحاظ کنم . من نمی خام از یه جدول واسط استفاده کنم
    vb.net2008 sql2005

  2. #2

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    شما منظورت از یک رکورد خاص رو نشون دادن چیه؟ اینکه گفتی چه شرطی رو قرار بدی توی Command؟
    خب توی where اون command بنویس مقدار کلید مساوی با مقدار مورد نظرت باشه. منظورت اینه؟
    یک مثال بزن.

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

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    مثلا من این دیتاست رو پر می کنم و می خام تو command پیاده کنم
            
    cmd. commandtext="select * from student hnner join tb1 where student.id='"+textbox1,text+"' d"


    خوب تو command کریستال textbox رو چه جوری استفاده کنم . البته از ارسال پارامتر هم استفاده کردم اما خالی نشون می ده . لطفا کامل تو ضیح بدین . تکس رو کاربر وارد می کنه و همیشه تغییر می کنه

  4. #4

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    من که متوجه نشدم میخوای چیکار کنی.
    خب دیتاست رو که پر کردی بفرستش برای کریستال.

    اگه داری به صورت مستقیم با کریستال وصل میشی به دیتابیس، و منظورت اینه که چه شکلی فیلتر کنی دیتای دریافتی از دیتابیس رو.میتونی از Select Expert استفاده کنی. فکر میکنم بتونی خودت متوجه بشی که باید چیکار کنی، اما اگه نتونستی پیدا کنی، بگو تا برات توضیح بدم.

    موفق باشی.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    دوست من شما متوجه سوال من نشدی
    من به صورت ویزارد دیتاست درست نمی کنم بلکه از طریق کد نویسی یه دیتاست تعریف و اونو پر می کنم .خوب حالا که دیتاست پر شد می گم گزارشم لود بشه .
    حالا تو صفحه کریستال با database expert و از قسمت oledb پایگاهمو معرفی می کنم اما مستقیما از اون استفاده نمی کنم و از addcommand استفاده می کنم حالا اینجا باید دقیقا همون دستوری که تو دیتاست نوشتی رو اینجا کپی بگیری اگه select نیاز به where نداشته باشه مشکلی نیست اما اکه شرط داشته باشی
    علاوه بر دیتاست باید تو command هم معرفی بشه وگرنه کل جدولتو نشون می ده . حالا چه طوری مقداری رو که کاربر تو textbox نوشته تو صفحه command ارسال کنی ؟؟؟؟ من از متغیر استفاده کردم جواب نداد

    لطفا برنامه نویسا کمک کنن

  6. #6

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    سلام دوست عزیز
    فکر میکنم متوجه شدم میخوای چیکار کنی، اما بازم نباید مشکلی باشه،
    شما مراحلی رو که انجام میدی بنویس اینجا شاید بتونیم کمکت کنیم.

    به عنوان مثال من این کوئری رو نوشتم:
    SELECT     ID, ProvinceID, Name, RegisterStartDate, RegisterEndDate, 
    FROM Exam
    where Name like '{?Name}'

    و پارامتر Name رو به لیست پارامتر ها اضافه کردم.
    مشکلی وجود نداره.

    مگه اینکه شما باز منظورت چیز دیگه ای باشه.

    موفق باشی

  7. #7

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    نقل قول نوشته شده توسط shocraneh مشاهده تاپیک
    من به صورت ویزارد دیتاست درست نمی کنم بلکه از طریق کد نویسی یه دیتاست تعریف و اونو پر می کنم .خوب حالا که دیتاست پر شد می گم گزارشم لود بشه .
    خب شما اصلا دیتاست رو برای چی پر میکنی؟
    راستی با ویزارد درست کردن یا نکردن دیتاست یادم نمیاد برای فرستادن برای گزارش تفاوتی داشته باشه

  8. #8
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    با تشکر . عذر می خام خیلی سرتونو درد آوردم
    من قبلا یه datatable معادل با همون فیلد هایی که تو query داشتم به صورت ویزارد درست می کردم و اونو expert کرده و الی اخر ... نکته مهم این که اسم سرور پویا معرفی می شد و همهچیز درست بود . کدزیر:
    Dim ds As New DataSet
    query = "select lastname from ostad where codeostad='" + TextBox1.Text.Trim + "'"
    da = New SqlClient.SqlDataAdapter(query, cn)
    da.Fill(ds, "std")


    Dim mytbl As DataTable
    mytbl = New DataTable
    da.Fill(mytbl)
    Dim strReportPath As String = GetCurrentDirectory()
    If strReportPath.Substring(strReportPath.Length - 9) = "bin\Debug" Then
    strReportPath = strReportPath.Substring(0, strReportPath.Length - 10)
    End If
    strReportPath &= "\CrystalReport1.rpt"
    Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent
    rpt.Load(strReportPath)
    rpt.SetDataSource(mytbl)
    Form1.CrystalReportViewer1.ReportSource = rpt
    Form1.ShowDialog()


    اما با خودم فکر کردم کاش اون دیتاتیبل رو که اول کار به صورت ویزارد درست می کردم رو از قضیه حذف کنم برای همین به فکر command افتادم ( مشکل ارسال پارامتر با کمک دوستان حل شد ). من این کدها رو به شکل زیر استفاده کردم
     Dim re As Form1 = New Form1
    re.CrystalReportViewer1.ReportSource = re.crystalReport81
    re.crystalReport81.SetParameterValue("a", TextBox1.Text)

    Dim ds As New DataSet
    query = "select * from ostad where codeostad='" + TextBox1.Text.Trim + "'"
    da = New SqlClient.SqlDataAdapter(query, cn)
    da.Fill(ds, "std")
    Dim rpt As New CrystalReport8
    rpt.SetDataSource(ds.Tables("std"))
    Form1.CrystalReportViewer1.ReportSource = rpt
    Form1.Show()

    برنامه جواب می ده اما یه مشکل اساسی داره و اون اینکه برای استفاده از command باید سرور رو معرفی کنم و نمی شه پویا باشه . آیا شما راه حلی برای این قضیه داری ؟؟


    نکته بعدی راجع به ویزارد و پر کردن دیتاست : من شنیدم بهتره از ویزارد استفاده نشه .
    دیتاست رو اگه پر نکنم چی کار کنم ؟ لطفا توضیح بدین .اگه منظورتون اینه که استفاده از command دیگه دیتاست نمی خاد من به شکل زیرم کد نوشتم ولی اخه صفحه گزارش که لود میشه یه فرم باز می کنه که مقدار متغیر رو درخواست می کنه و مقدار ارسالی تو کدنویسی رو نادیده می گیره
     Dim re As Form1 = New Form1
    re.CrystalReportViewer1.ReportSource = re.crystalReport81
    re.crystalReport81.SetParameterValue("a", TextBox1.Text)

    Dim rpt As New CrystalReport8
    Form1.CrystalReportViewer1.ReportSource = rpt
    Form1.Show()

  9. #9

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    سلام دوست عزیز
    بله همینطوره،
    اگه از Command استفاده کنید، (حالت سوم) نیاز به کوئری زدن و SetDataSource دیگه نیست.
    در واقع شما با این کار کل قضیه Command رو بیخیال شدی. چون دیگه گزارشت مستقیم به دیتابیس وصل نمیشه و از dataset ی که براش فرستادی استفاده میکنه.
    در حالت دوم، شما اصلا نیازی به استفاده از Command نداری، گزارشت بدون Command هم درست کار میکنه.
    و البته برای کریستال ریپورت، ارسال این دیتاست که در زمان اجرا ساخته شده و پر شده، تقریبا تفاوتی با دیتاستی که در زمان طراحی و با ویزارد پر شده نداره.
    و حتی در زمان طراحی به مراتب سخت تره، طراحی گزارش با این روش.

    در مورد حالت سوم هم که گفتی وقتی گزارشت باز شده ازت پارامتر خواسته
    احتمالا با این کد حل میشه:
    re.CrystalReportViewer1.ParameterFieldInfo = re.crystalReport81.ParameterFields;


    نمیدونم مشکلت با طراحی دیتاست در زمان طراحی چیه؟ در حلی که به نظر من کلی از امکاناتی که برای ارتباط با دیتابیس برات طراحی شده رو بیخیال شدی و استفاده نکردی، در واقع با این دید، اصولا کاربرد LINQ در .net 3.5 رو هم میبری زیر سوال.
    به نظر من در حالت عادی، ساده ترین و بهترین روش طراحی گزارش با Crystal Report اینه که یک دیتاست در زمان طراحی و به قول شما با Wizard بسازی و در زمان اجرا دیتاست پر شده رو بفرستی برای report.
    من تنها دلیلی که از این روش استفاده نمیکنم اینه که بخوام گزارش رو به صورت داینامیک و در زمان اجرا به سیستم اضافه کنم.

    موفق باشید

  10. #10
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    یه سوال تو پرانتز : یادم می یاد سری قبل که msdn رو نصب کرده بودم اطلاعات crystall رو هم داشت اما الان انگار می گی اصلا کریستال رو سرچ نمی کنه ؟1 اشتباه از منه یا .. ؟؟

    واما حالت دوم وقتی از command استفاده نکنم یا باید از حالت اول (استفاده از دیتاتیبلی با ستون های همنام با quert)استفاده کنم یا یه روش دیگه که قبولش ندارم add->tabel Adapter اشکالات این روش : نمی شه سرور رو پویا معرفی کرد و بعضی مواقع این ویزارد با مشکل مواجه می شه و اطلاعات رو تو گزارش نشون نمی ده برای خودم پیش اومده دوستان هم تو سایت زیاد اینو مطرح کردن .در کل روشش رد شده است

    این جوری که من فهمیدم روش اول از همه کارا تره و شماهم با اون موافق بودید . اما متوجه نشدم چرا تو جملات اخرتون اونو نفی کردیدو گفتید (من تنها دلیلی که از این روش استفاده نمیکنم اینه که بخوام گزارش رو به صورت داینامیک و در زمان اجرا به سیستم اضافه کنم) دوست من میشه شیوه گزارش داینامیک رو توضیح بدین . تو سایت قبلا یه چیزایی دیده بودم ولی خیلی شکسته پاره بودو دنبالشو نگرفتم (اگه توضیحات کامل باشه یه دنیا ممنون )

    من برای استفاده از روش اول دوتا مشکل دارم
    1: کوئری من یک اینر جوین است اما جدای از اون یه جدول دیگه دارم که شماره گزارش رو تو اون
    آپدیت و نشون می دم . این جدول رو نمی تونم اینرجوین کنم چه طوری نشونش بدم ؟؟؟؟
    2:من متوجه شدم وقتی از command استفاده میشه تو ارسال پارامتر مشکلی نیست اما وقتی از دیتاتیبل استفاده می کنم اون فرمه مییاد ومقدار می خاد و کدی که داده بودید هم مشکل رو برطرف نکرد
    لطفا راهنمایی کنید
    آخرین ویرایش به وسیله shocraneh : جمعه 10 مهر 1388 در 15:21 عصر

  11. #11

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    سالها پیش، در دوران دانشجویی وقتی روی پروژه هایی که خیلی با حافظه سر و کار داشتند (مثل پیاده سازی ساختار B+Tree) کار میکردیم و زمان اجرا، اون جوری که انتظار داشتیم کار نمیکرد، یا هنگ میکرد، یا کمبود حافظه پیدا میکرد، پیش خودم میگفتم اه ه ه زبون C ِ مسخره. درست کار نمیکنه.
    غافل از اینکه مشکل از C نیست، مشکل از من ِ که اشراف کاملی به اتفاقاتی که میافتاده نداشتم و این زبون رو درست بلد نبودم، وگرنه C طبق اون چیزی که باید، کار میکرده.
    خیلی وقتها مشکل ما موقع برنامه نویسی از همین ناشی میشه، اشراف کاملی به اون چیزی که جلومونه نداریم فکر میکنیم مشکل از اونه.

    سلام دوست عزیز

    در مورد MSDN حقیقتش نمیدونم.
    آیا Crystal Reports رو با Visual Studio نصب کردید؟ درست تو ذهنم نیست، اما شاید موقع نصب MSDN، نصبش نکردید.نصب MSDN رو اجرا کنید، شاید دلیلش رو بتونید پیدا کنید.

    واما حالت دوم وقتی از command استفاده نکنم یا باید از حالت اول (استفاده از دیتاتیبلی با ستون های همنام با quert)استفاده کنم
    متوجه منظورتون نمیشم از دیتاتیبلی با ستون های همنام با Query. در کدی که نوشتید یک datatable جدید ایجاد کردید و اون رو فرستادید برای Crystal reports. ستونهای همنام چیه قضیه اش؟

    یا یه روش دیگه که قبولش ندارم add->tabel Adapter اشکالات این روش : نمی شه سرور رو پویا معرفی کرد و بعضی مواقع این ویزارد با مشکل مواجه می شه و اطلاعات رو تو گزارش نشون نمی ده برای خودم پیش اومده دوستان هم تو سایت زیاد اینو مطرح کردن .در کل روشش رد شده است
    جالبه، چرا این روش رد شده است؟
    خیر شما با این امکان مشکل تعریف داینامیک سرور رو ندارد.
    خیلی ساده اگه بخوام حرف شما رو رد کنم، شما به راحتی میتونید برای TableAdapter درست مثل یک DataAdapter که اینجا استفاده کردید، یک ConnectionString به صورت دستی set کنید.


    بله به نظر من، ساده ترین روش ساختن یک گزارش استفاده از Typed Dataset هاست که با استفاده از DataSources در Visual Studio ساخته شده. چون به این ترتیب Crystal Reprot هم موقع طراحی به راحتی فیلد ها و جداول مورد نیاز شما رو شناسایی میکنه و میتونید گزارشتون رو طراحی کنید.

    در مورد گزارش داینامیک، خب هر کسی ممکنه منظور خاصی داشته باشه از این عبارت.
    من منظورم این بود که در زمان اجرا، و بدون نیاز به کامپایل مجدد، بشه به منوی گزارشات سیستم یک گزارش جدید اضافه کرد.
    برای این کار کلاسی رو استفاده میکنم که از یک فایل Config لیست گزارشات و فایل rpt مربوطه و پارامتر های گزارش، و کوئری که باید زده بشه و پارامترهای اون رو میخونه.
    بنابراین نمیتونم از TypedDataset استفاده کنم، و باید از روشی مشابه روش دوم شما استفاده کنم.

    البته هیچ کدام از کدهایی که در پست قبل نوشتید به نظر درست نیست، و هر کدوم ایراداتی دارند.

    برای Innerjoin که گفتید، ببینید شما لازم نیست حتما Innerjoin کنید بعد برای گزارش بفرستید، شما میتونید در یک Dataset دو تا datatable رو پر کنید با اطلاعات لازم، و در زمان طراحی گزارش، ارتباط بین اونها (relation) رو در Crystal Reports مشخص کنید، میشه همون Innerjoin.
    و یا اینکه مثلا یک TableAdapter جدید اضافه کنید و اونجا که باید کوئری مربوطه رو مشخص کنید که تابع Fill اون TableAdapter نوشته بشه، میتونید از کوئری مورد نظرتون که شامل Innerjoin هم هست استفاده کنید.
    و راههای دیگه..
    این دو تا رو مثال زدم که ببینید در این موارد ساده استفاده از TypedDataset ها مشکل خاصی نداره.

    در مورد اون فرمه که باید مقدار پارامتر رو set کنید، اولا اگه از Command که قبلا استفاده میکردید، استفاده نکنید، پارامتر مربوطه رو هم باید حذف کند از گزارش تا دیگه ازتون مقدار پارامتر رو نخواد.
    اما اگه به جز اون، گزارشتون پارامتر های دیگه هم داشته باشه، من به این شکل عمل میکنم و مشکل ندارم: (بر اساس کدهایی که در پست های قبلی نوشتید:)
    re.CrystalReportViewer1.ReportSource = re.crystalReport81
    re.crystalReport81.SetParameterValue("a", TextBox1.Text)
    re.CrystalReportViewer1.ParameterFieldInfo = re.crystalReport81.ParameterFields


    پیشنهاد میکنم اگه دوست داشتید یک پروژه و فایل گزارش و دیتابیس مربوطه که باهاش مشکل دارید رو بفرستید تا من یا دیگر دوستان اونو اصلاح کنیم.
    قاعدتا به این ترتیب راحتتر دستتون میاد که ایراد کارتون کجاست.

    موفق باشید

  12. #12
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    مقدمه ای که فرمودید از درستم درستره . منم قبولش دارم

    اگه من تو صفحه dataset یه دیتاتیبل با ستون های همنام درست نکنم خوب چی رو تو کریستال expert کنم وفیلداشو رو صفحم بچینم (برنامه رو گذاشتم .توضیحات داخلش نوشتم . لطف کنید روش درست و کاربردی رو نشونم بدید . من عجله دارم و ممنون از اینکه هر روز به تاپیک سر می زنید )
    قضیه استفاده نکردن از inner join رو هم نفهمیدم . ارسال پارامتر هم مشکل داره
    ای کاش یه برنامه برام بزارید و شیوه درستو و حسابی کاررو نشونم بدید

    دوست من وقتی تو ویزارد از datatable استفاده می کنی موقع expert ازت اسم سرور رو نمی خاد چون هنوز به sql کاری نداریم . اما اگه از dataadapter استفاده کنی .هم این جا باید به sql متصل بشی ونام روبدی هم موقع expert . خوب حالا برنامه رو به سیستم دیگه انتقال می ده اسم کامپیوتر سیستم مقصد متفاوته . حالا مشکل ایجاد میشه . برای این من دیتا آداپتر رو رد کردم . حالا اگه راه حلی هست ممنون می شم بهم بگین
    منظورتان را از یک ConnectionString به صورت دستی set کنید رو نفهمیدم (فکر کنم اشکال من همین جاست)

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

    بازم تقاضا می کنم یه برنامه برام بزارید و شیوه صحیح کارو نشونم بدید(پرروییه اما من بافرمول نویسی هم مشکل دارم اگه میشه یه فرمول خیلی ساده برام تو گزارش بزنید ممنون )
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله shocraneh : شنبه 11 مهر 1388 در 10:24 صبح

  13. #13

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    سلام دوست عزیز

    از لطفت ممنونم
    فایلی که فرستادی رو گرفتم، نیگاش کردم، سعی میکنم روی پروژه ای که فرستادی اول یه سری مسائل و ایرادات رو بهت توضیح بدم. البته ان شاء الله فردا.

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

    در مورد روش درست و حسابی کار که گفتی، ببین دوست عزیز راههای زیادی هست چه برای طراحی گزارش و چه برای نمایشش در زمان اجرا.
    باید ببینی کدومش برای شرایط شما در زمان پیاده سازی بهتره.
    سعی میکنم در حین توضیح دادن، روش هایی که به ذهنم میرسه رو با کاربردش بهت توضیح بدم.

    البته من expert نیستم در این زمینه، حتما روش های بهتری هم وجود داره، که دوستان ایشالا اگه چیزی به نظرشون اومد حتما توضیح خواهند داد در خلال پست های من.

    راستی منظورت رو از کلمه expert که چند بار نوشتی تو پست آخرت نگرفتم.

    فردا سعی میکنم برات یک نمونه برنامه بذارم که بدون مشکل از tableAdapter استفاده کنه، بعد هم یه سری توضیحات بهت میدم که کدت رو اصلاح کنی.

    موفق باشی

  14. #14
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

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

    وقتی روی فرم کریستال ریپورت می ری(crystall report1 )گوشه فرمروی database field راست کلیک و expert databaseرو می زنی و .......
    آخرین ویرایش به وسیله shocraneh : یک شنبه 12 مهر 1388 در 21:59 عصر دلیل: expert

  15. #15

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    سلام دوست عزیز
    یک نمونه پروژه برات گذاشتم
    سعی کردم شبیه روش کار خودت باشه، که بتونی مقایسه کنی.
    فرم 1 همون فرم خودته فقط کدش تغییر کرده
    فرم 2 هم شامل دو تا گزارش هست، اولی، گزارشی هست که به نوعی داخل گزارش Innerjoin شده ، و دومی هم شامل یک پارامتر هست.

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

    از اونجایی که Crystal Reports من 2008 هست، مطمئن نیستم بتونی گزارش ها رو باز کنی، چک کن، که اگه نتونستی باز کنی پروژه رو، فکر دیگه ای بکنیم.

    موفق باشی
    فایل های ضمیمه فایل های ضمیمه

  16. #16
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    موقع unzip ارور می ده .عکسشو گذاشتم البته شاید از ورژن winrar باشه که خودم برطرفش می کنم
    اما کریستال رو گیر میده احتمالا یه dll هست که من اضافه کنم و ورژن 11 بشم . دنبالش می گردم
    اگه لینکشو داری برام بزار چون قبلا دنبالش بودم تو سطح شهر نبود بخرم
    . اما قضیه اصلی : قبلا براتون گفته بودم من با table addapter کار می کردم و پروژه ام هم درست
    بود اما یه سری که ویندوز مجدد نصب کردم وقتی روفرم دیتاست راست کلیک می کردم
    یه اررور برام میامد که عکسشو گذاشتم رفتم سراغ پروزه های درست قبلی .همون پروژه قبلی هم همین مشکل رو داشت
    البته تو اجرا مشکل نداشت پرسیدم گفتن شیوه ویزارد این دردسر هارو هم داره
    گفتم خوب مجدد ویندوز رو نصب می کنم تا مشکلم حل شه
    تونستم مثل گذشته کار کنم اما تو اجرا مقدارها رو خالی می داد.البته دقیقا همون کدایی که تو پروژه قبلی
    نوشته بودمو کپی کردم تا از کدش مطمئن بشم . قضیه اینکه اصلا دیتاست باز نمی شه تا ببینم داخلش چه خبره
    فایل های ضمیمه فایل های ضمیمه

  17. #17
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    من مشکلم با ارسال پارامتر حل شد
    برای adaptor که اصلا نمی تونم به صورت ویزارد بسازمش و اررور داره . اما دوست من
    این که همون حرف اول من شد شما احتمالا یه دیتااداپتر با ویزارد ساختی و خوب صد در صد
    همون جا به پایگاه اتصالش دادی . خوب وقتی کارتو ببری رو سیستم دیگه چون اسم کامپیوتر ها
    متفاوته . بهت اررور می ده ؟؟!!1
    من روی اینکه اسم سرور پویا باشه تاکید دارم .
    حالا من قصد داشتم همون شیوه اول خودم رو بهینه تر کنم فکر می کنم جوین
    شیوه ی درستی نباشه اما نمی دونم چی کار کنم(با یه دیتاست چه جوری دو تا تیبل رو پر کنم

  18. #18
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    دیتاستی که با دو تا تیبل پر شده چه طوری به کریستال ارسال کنم 
    یه چیزی مثل این کد که البته جواب نمی ده
    Dim ds As New DataSet
    query = "select * from table1 where id='" + TextBox1.Text.Trim + "'"
    da = New SqlClient.SqlDataAdapter(query, cn)
    da.Fill(ds, "std1")
    query = "select * from table2"
    da = New SqlClient.SqlDataAdapter(query, cn)
    da.Fill(ds, "std2")
    Dim strReportPath As String = GetCurrentDirectory()
    If strReportPath.Substring(strReportPath.Length - 9) = "bin\Debug" Then
    strReportPath = strReportPath.Substring(0, strReportPath.Length - 10)
    End If
    strReportPath &= "\CrystalReport2.rpt"
    Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent
    rpt.Load(strReportPath)
    rpt.SetDataSource(ds)
    Form2.CrystalReportViewer1.ReportSource = rpt
    Form2.ShowDialog()

  19. #19

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    نقل قول نوشته شده توسط shocraneh مشاهده تاپیک
    من مشکلم با ارسال پارامتر حل شد
    برای adaptor که اصلا نمی تونم به صورت ویزارد بسازمش و اررور داره . اما دوست من
    این که همون حرف اول من شد شما احتمالا یه دیتااداپتر با ویزارد ساختی و خوب صد در صد
    همون جا به پایگاه اتصالش دادی . خوب وقتی کارتو ببری رو سیستم دیگه چون اسم کامپیوتر ها
    متفاوته . بهت اررور می ده ؟؟!!1
    من روی اینکه اسم سرور پویا باشه تاکید دارم .
    حالا من قصد داشتم همون شیوه اول خودم رو بهینه تر کنم فکر می کنم جوین
    شیوه ی درستی نباشه اما نمی دونم چی کار کنم(با یه دیتاست چه جوری دو تا تیبل رو پر کنم
    سلام دوست عزیز
    الآن فرصت ندارم، یه جواب کوچیک بهت میدم، ایشالا شب بهت دقیقتر جواب میدم.
    فایل رو یک بار دیگه گذاشتم، تست کن.

    در مورد اسم پویای سرور، دوست من، الان همین پروژه که روی سیستم من ساخته شده رو باز کن، ببین مشکل داری با اتصال به پایگاه؟
    نباید داشته باشی. پس فرض مسئله اشتباهه.

    ببین دوست من، بسته به شرایط پروژه شما راههای متفاوتی هست برای پویا شدن اتصال به دیتابیس. که در هیچ کدوم من مشکلی برای ویزاردی بودن دیتاست نمیبینم.
    بله همونطور که بهت توضیح دادم، به عنوان نمونه یک پروژه کوچیک با استفاده از ویزارد ساختم که ببینی ویزارد هیچ مشکلی بوجود نمیاره، و ترست بی مورده.

    موفق باشی

    پ ن. یادم رفته بود Attach کنم عجله داشتم ببخشید.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله mn_zandy63 : دوشنبه 13 مهر 1388 در 23:09 عصر دلیل: فایل رو Attach کردم

  20. #20
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    دوست من فایلی که گفتی کجا گذاشتی ؟؟ قبلی رو هم که ویرایش نکردی ؟! البته یه بار دیگه گرفتمش ام بازم از crystal اررور داره و رو اجرا نمی ره و البته این می گم دیتاست مشکل داره در کل رو سیستم من جدیدا این مشکل بوده و خودم هم نمی تونم یه دیتا آداپتور بسازم . نمی دونم از دوباره ویندوز نصب کنم ولی گمون نکنم چون این کار رو کردم . شاید درایو ای دیگم ویروسیه و ..... نظرتون چیه ؟
    سایت کریستال نمی دونی چیه یه چیزی تو مایه های crystallreport.net بود . از google خود کریستل 11 رو پیدا نکردم

  21. #21

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    نقل قول نوشته شده توسط shocraneh مشاهده تاپیک
    دوست من فایلی که گفتی کجا گذاشتی ؟؟ قبلی رو هم که ویرایش نکردی ؟! البته یه بار دیگه گرفتمش ام بازم از crystal اررور داره و رو اجرا نمی ره و البته این می گم دیتاست مشکل داره در کل رو سیستم من جدیدا این مشکل بوده و خودم هم نمی تونم یه دیتا آداپتور بسازم . نمی دونم از دوباره ویندوز نصب کنم ولی گمون نکنم چون این کار رو کردم . شاید درایو ای دیگم ویروسیه و ..... نظرتون چیه ؟
    سایت کریستال نمی دونی چیه یه چیزی تو مایه های crystallreport.net بود . از google خود کریستل 11 رو پیدا نکردم
    سلام دوست من، فایل رو در همون پست قبلی گذاشتم، عذر میخوام، عجله داشتم فراموش کرده بودم بذارم.
    در مورد اینکه نمیتونی data Adapter بسازی، تا حالا بر نخوردم، نمیدونم، شاید دوستان بتونن کمک کنن. آیا بهت خطا میده؟ مشکلت چیه؟
    در مورد کریستال هم اینجا رو یک نیگاه بنداز.
    https://wiki.sdn.sap.com/wiki/pages/...ageId=56787567
    کریستال 2008 ورژن 12 ِ.
    شاید با نصب لینکهای اینجا مشکلت حل شه، البته من خودم تست نکردم. بنابراین مطمئن نیستم.

  22. #22

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    نقل قول نوشته شده توسط shocraneh مشاهده تاپیک
    من روی اینکه اسم سرور پویا باشه تاکید دارم .
    حالا من قصد داشتم همون شیوه اول خودم رو بهینه تر کنم فکر می کنم جوین
    شیوه ی درستی نباشه اما نمی دونم چی کار کنم(با یه دیتاست چه جوری دو تا تیبل رو پر کنم
    در مورد اسم پویای سرور، کاملا بسته به شرایط پروژه ات داره، مثلا اگه فرض کنیم، شما پروژه ات قراره همیشه به SQL به صورت Local وصل شه، در اینصورت کافیه اسم سرور رو بذاری (local) یا یک نقطه، در اینصورت دیگه مشکل اسم سرور در جابجایی رو نداری و .... که بستگی داره شرایط پروژه ات چی باشه.

    در مورد پر کردن 2 تا جدول در یک dataset، کاری نداره، اگه کدی که برات فرستادم رو ببینی، این کار رو انجام دادم؛کافیه با دو تا Select متفاوت، یا دو تا TableAdapter متفاوت، دو بار یک دیتاست رو Fill کنی، و هر بار یک اسم متفاوت برای جدولش بدی. همین.
    مثلا:
    TableAdapter1.Fill(ds,"table1")
    TableAdapter2.Fill(ds,"table2")


    موفق باشی.

  23. #23

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    نقل قول نوشته شده توسط shocraneh مشاهده تاپیک
    دیتاستی که با دو تا تیبل پر شده چه طوری به کریستال ارسال کنم 
    یه چیزی مثل این کد که البته جواب نمی ده
    Dim ds As New DataSet
    query = "select * from table1 where id='" + TextBox1.Text.Trim + "'"
    da = New SqlClient.SqlDataAdapter(query, cn)
    da.Fill(ds, "std1")
    query = "select * from table2"
    da = New SqlClient.SqlDataAdapter(query, cn)
    da.Fill(ds, "std2")
    Dim strReportPath As String = GetCurrentDirectory()
    If strReportPath.Substring(strReportPath.Length - 9) = "bin\Debug" Then
    strReportPath = strReportPath.Substring(0, strReportPath.Length - 10)
    End If
    strReportPath &= "\CrystalReport2.rpt"
    Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent
    rpt.Load(strReportPath)
    rpt.SetDataSource(ds)
    Form2.CrystalReportViewer1.ReportSource = rpt
    Form2.ShowDialog()
    خب اینجا خودت جواب سوال قبلیت رو دادی.
    به نظر ایرادی نداره کدت.
    مشکلت چیه؟
    ممکنه مشکلت مربوط به زمان طراحی باشه. گزارشت رو چه شکلی ساختی، دیتاست گزارشت دقیقا همین دو تا جدول رو داره و با همین فیلدها؟

  24. #24
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: شرط command برای کریستال ریپورت رو چه طوری بنویسم

    بابت لینک ممنون حتما دانلود می کنم .
    کدای شما کاملا درسته به شرطی که سیستم من لجبازی نکنه!!!فکر کنم ویروسیه
    کدی که من براتون گذاشتم مشکلش سر ارسال رو کریستاله
    rpt.SetDataSource(ds)
    حتما باید یکی از تیبل ها رو انتخاب کنی وگرنه جواب نمی ده

    در هر صورت بابت توجهتون ممنونم . نتیجه رو خبرتون می دم . خیلی وقتتون رو نگیرم . خداحافظ

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

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