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

نام تاپیک: مشکل در پرینت گرفتن از گزارشی که با logoninfo تنظیم شده

  1. #1
    با عرض سلام
    من برای حل مشکلم logoninfo را search کردم و نهایتاً کد برنامه را به صورت زیر قرار دادم:
    Public Overrides Property ResourceName() As [String]
    Get
    Return x
    End Get
    Set(ByVal value As [String])
    'Do nothing
    End Set
    End Property
    EndClass

    Public a As New myReport
    Dim logonInfo As New CrystalDecisions.Shared.TableLogOnInfo

    "logonInfo.ConnectionInfo.DatabaseName = "DBName"
    logonInfo.ConnectionInfo.ServerName = "server_name"
    logonInfo.TableName = table
    logonInfo.ConnectionInfo.Password = "Pass"
    logonInfo.ConnectionInfo.UserID = "user_id"
    a.x ="myreport"
    Me.CrystalReportViewer1.ReportSource = a
    Me.CrystalReportViewer1.RefreshReport()
    Me.a.Database.Tables("tableName").ApplyLogOnInfo(log onInfo)
    در قسمت design صفحه هم یک crystalreportviewer قرار داده ام ولی گزارشی به آن bind نکرده ام. اکنون برنامه از طریق دستور فوق گزارش را بدون نیاز به logonنمایش می دهد. ولی مشکل اینجاست که وقتی دکمه های بالای گزارش مثل export یا print را انتخاب می کنم گزارش به کلی حذف می شود. این در صورتی است که اگر دستور زیر را بنویسم export می شود ولی باز به logon نیاز دارد. من نمی دانم چطور این دو حالت را با هم ترکیب کنم. لطفاً مرا راهنمایی کنید.
    "crystalreportviewer1.reportsource="myreport

  2. #2
    "crystalreportviewer1.reportsource="myreport
    a.x ="myreport"
    Me.CrystalReportViewer1.ReportSource = a
    مگه این دو یک کار رو نمی کنند؟! این همونی که شما می خواهید نیست؟

    نکته: لطف کنید برای موضوع جدید حتما تاپیک جدید ایجاد کنید. اینبار من پست شما رو منتقل کردم ولی امیدورام دیگه خودتون رعایت کنید.
    با تشکر.

  3. #3
    مگه این دو یک کار رو نمی کنند؟! این همونی که شما می خواهید نیست؟

    اولی گزارش را مشخص می کنه و دومی اونو به crystalreportviewer در صفحه bind می کنه.
    ولی به هر حال مشکل من اینه که نمی دونم کد را چطور بنویسم که با logoninfo تنظیم شده باشه و در عین حال print و export هم بکنه. برای کدهایی که نوشتم هم به سختی به نتیجه رسیدم.
    تعداد گزارشات من زیاده لذا:
    اولاً باید از طریق کد به crystalreportviewer و بر اساس انتخاب کاربر bind بشه
    دوماً مشکل logon حل بشه
    سوماً بتوانم print و exportکنم
    با تشکر از توجه تون

  4. #4
    این کد رو امتحان کنید:

    Public Overrides Property ResourceName() As [String]
    Get
    Return x
    End Get
    Set(ByVal value As [String])
    'Do nothing
    End Set
    End Property
    EndClass


    Public a As New myReport
    Dim logonInfo As New CrystalDecisions.Shared.TableLogOnInfo


    "logonInfo.ConnectionInfo.DatabaseName = "DBName"
    logonInfo.ConnectionInfo.ServerName = "server_name"
    logonInfo.TableName = table
    logonInfo.ConnectionInfo.Password = "Pass"
    logonInfo.ConnectionInfo.UserID = "user_id"

    Me.a.Database.Tables("tableName").ApplyLogOnInfo(l og onInfo)


    a.x ="myreport"
    Me.CrystalReportViewer1.ReportSource = a
    Me.CrystalReportViewer1.RefreshReport()

  5. #5
    مشکل حل نشد. فرقی نمی کنه؟؟؟؟

  6. #6
    resourcename رو هم ست کنید:

    rfrm.MycrystalReport.ResourceName = System.Windows.Forms.Application.ExecutablePath;

  7. #7
    متوجه نشدم
    این کد یعنی چی
    کجا باید اضافه بشه؟

  8. #8
    من منتظر پاسخ شما هستم
    با تشکر

  9. #9
    با سلام
    من می توانم از طریق design فیلد پارامتری ایجاد و بر اساس آن نمودار رسم کنم. ولی مشکل من اینه که نمی دونم با کدهایی که نوشتم و گزارش را از طریق logoninfo باز می کنم چطور و کجا مقدار پارامتر را برای رسم نمودار ارسال کنم.
    همون مشکلی که با print و export داشتم و هنوز حل نشده؟

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


    من می توانم از طریق design فیلد پارامتری ایجاد و بر اساس آن نمودار رسم کنم. ولی مشکل من اینه که نمی دونم با کدهایی که نوشتم و گزارش را از طریق logoninfo باز می کنم چطور و کجا مقدار پارامتر را برای رسم نمودار ارسال کنم.
    جستجو کنید!
    https://barnamenevis.org/showth...parameterfield

  11. #11
    با تشکر از شما آقای راد عزیز به خاطر راهنمایی هاتون
    ولی مشکل من اینه که وقتی کدهای مربوط به تعریف پارامتر را می نویسم و کد های logoninfo را هم اضافه می کنم دیگر چیزی نشان داده نمی شه
    اما هر کدوم اینها به تنهایی جواب میده . مثلاً فرض کنید همون گزارشی رو که لینکش رو در قسمت قبل برای من گذاشتید و برای اون پارامتر تعریف کردید و فرضاً مقدار پارامتر را از داخل کد به اون ارسال کردید را بخواهید از طریق logoninfo باز کنید و در ضمن قابلیت print و export هم داشته باشه
    چطور کد اونو می نویسید.
    باز هم تشکر می کنم

  12. #12
    خواهش می کنم:)

    ولی همون گزارشی که مثال گذاشتم اونجا رو من هم با تنظیم logoninfo و هم با ست کردن پارامترها از داخل کد ، بهش وصل میشم. در عین حال پرینت هم می تونم بگیرم و مشکلی نداره!

    شاید مشکل شما از جای دیگه باشه

  13. #13
    اگه ممکنه قسمتی از کد برنامه تون که مربوط به این مطالبه برای من بگذارید
    البته با عرض معذرت

  14. #14
    خواهش می کنم.

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

    private void SetConnectionInfo(Report rpt)
    {
    CrystalDecisions.Shared.TableLogOnInfo logOnInfo = new CrystalDecisions.Shared.TableLogOnInfo();
    logOnInfo.ConnectionInfo.DatabaseName = "Doctor";
    string[] strServerFiles;
    strServerFiles=System.IO.Directory.GetFiles("c:\\d octordoc");
    if(strServerFiles.Length==1)
    {
    logOnInfo.ConnectionInfo.ServerName = strServerFiles[0].Replace("c:\\doctordoc\\","");
    logOnInfo.TableName="document";
    logOnInfo.ConnectionInfo.Password = "";
    logOnInfo.ConnectionInfo.UserID = "sa";
    rpt.MycrystalReport.Database.Tables[0].ApplyLogOnInfo(logOnInfo);
    }

    }
    private void uiButton2_Click(object sender, System.EventArgs e)
    {
    Report rfrm = new Report();
    rfrm.ID=this.TxtDocumentIdEdit.Text;
    SetConnectionInfo(rfrm);


    CrystalDecisions.Shared.ParameterField ParamField= new CrystalDecisions.Shared.ParameterField();
    CrystalDecisions.Shared.ParameterDiscreteValue discreteParam = new CrystalDecisions.Shared.ParameterDiscreteValue();
    CrystalDecisions.Shared.ParameterFields ParamFields= new CrystalDecisions.Shared.ParameterFields();


    ParamField.ParameterFieldName = "@docId";
    discreteParam.Value=Convert.ToInt32(rfrm.ID);
    ParamField.CurrentValues.Add(discreteParam);
    ParamFields.Add(ParamField);



    rfrm.crystalReportViewer1.ParameterFieldInfo=Param Fields;
    rfrm.MycrystalReport.ResourceName = System.Windows.Forms.Application.ExecutablePath;
    rfrm.crystalReportViewer1.ReportSource=rfrm.Mycrys talReport;
    //this.TxtLabData.Text=System.IO.Path.GetFullPath("c rystalreport1.rpt");

    // CrystalDecisions.CrystalReports.Engine.ReportDocum ent rpt = new CrystalDecisions.CrystalReports.Engine.ReportDocum ent();
    // //rpt.Load(System.IO.Path.GetFullPath("crystalreport 1.rpt"));
    // rpt.Load("C:\\Documents and Settings\\abolfazl\\Desktop\\New Folder\\Doctor\\crystalreport1.rpt");
    //
    // rpt.SetParameterValue("docId",this.TxtDocumentIdEd it.Text);
    // rfrm.crystalReportViewer1.ReportSource=rpt;

    rfrm.ShowDialog();
    }





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

    public string ID;
    public CrystalDecisions.Windows.Forms.CrystalReportViewer crystalReportViewer1;
    public Doctor.CrystalReport1 MycrystalReport;

  15. #15
    من کدهای شما را امتحان کردم
    اولاً مشکل این جاست که اصلاً فایل کریستال من را نمی شناسد و وقتی که یک کلاس تعریف می کنم و source آن را فایل کریستال قرار می دهم، گزارش را رسم نمی کند.
    به خاطر همین بعضی از خاصیت ها و توابعی که نوشته اید نیز جواب نمی دهد.
    من نمی دانم در دات نت 2 چطور باید این کارها را انجام دهم؟؟؟؟؟؟؟!!!!

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

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