Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 108,061

HOME > .NET Framework > Forum > โหลด Form crystal report จากเครื่องอื่นแล้วถามรหัส รบกวนช่วยทีครับ!!



 

โหลด Form crystal report จากเครื่องอื่นแล้วถามรหัส รบกวนช่วยทีครับ!!

 



Topic : 130985



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์




ผมทำตัว install โปรแกรมผม ไปลงที่เครื่องอื่น SQL สามารถconnectได้ ดึงข้อมูลได้ปกติทุกอย่างครับ แต่เวลากดแสดง CrystalReport ที่เครื่องอื่นจะถาม ให้ใส่รหัส ครับ พอใส่รหัสไป ก็เข้าไม่ได้อยู่ดี ขึ้นแบบนี้ครับ (ผมลง Runtime ของ CrystalReport 32 และ 64 bit แล้วครับ)

Error pic1

error2

แต่เครื่องที่ผมทำการเขียนโปรแกรมตัวนี้ ไม่มีปัญหาอะไรเลยครับ สามารถเข้าได้ปกติ จึงอยากรบกวน ผู้รู้ ช่วยทีครับบ

Code CrystalReport ของผมครับ

Code (VB.NET)
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TextBox1.Text <> "" Then
            sql = String.Format("select หมายเลขสั่งซื้อ from withdraw_result")
            cmd = New SqlCommand(sql, cn)
            connect()
            DR = cmd.ExecuteReader()
            If DR.HasRows = False Then
                MsgBox("ไม่พบข้อมูล")
                TextBox1.Text = ""
            Else
                Dim rptmaintanance As New CrystalReport1
                Dim crtableLogoninfo As New CrystalDecisions.Shared.TableLogOnInfo()
                Dim crConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo
                Dim TL As TableLogOnInfo = rptmaintanance.Database.Tables(0).LogOnInfo
                rptmaintanance.Load("D:\VB project\งานสต็อกสินค้า\Vat\Vat\CrystalReport1.rpt")
                rptmaintanance.SetParameterValue("หมายเลขสั่งซื้อ", Me.TextBox1.Text)       
                TL.ConnectionInfo.ServerName = ".\SQLEXPRESSS"
                TL.ConnectionInfo.DatabaseName = "VAT"
                TL.ConnectionInfo.UserID = "sa"
                TL.ConnectionInfo.Password = "123456"
                rptmaintanance.Database.Tables(0).ApplyLogOnInfo(TL)
                Me.CrystalReportViewer1.ReportSource = rptmaintanance
                Me.CrystalReportViewer1.Refresh()
            End If
        Else
            MsgBox("กรุณากรอกหมายเลขสั่งซื้อ")
        End If
        DR.Close()
    End Sub




Tag : .NET, MySQL, Ms SQL Server 2008, Crystal Report, VB.NET, VS 2010 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-05-05 19:39:53 By : Parinya N View : 517 Reply : 12
 

 

No. 1



โพสกระทู้ ( 233 )
บทความ ( 0 )



สถานะออฟไลน์


- ใช้ Database เครื่องมันเอง หรือใช้จากเครื่องอื่นในวง LAN ครับ
- ถ้าใช้เครื่องตัวเอง ServerName ถูกแล้วใช่ไหมครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-05 19:49:14 By : nPointXer
 


 

No. 2

Guest


ตอบความคิดเห็นที่ : 1 เขียนโดย : nPointXer เมื่อวันที่ 2018-05-05 19:49:14
รายละเอียดของการตอบ ::
Database ใช้เครื่องตัวมันเองครับ
ชื่อserver ถูกต้องแล้วครับ ฟังก์ชั่นอื่นใช้ได้ไม่มีปัญหา ยกเว้น crytal reportครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-05 20:05:20 By : Parinya n
 

 

No. 3



โพสกระทู้ ( 233 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : Parinya n เมื่อวันที่ 2018-05-05 20:05:20
รายละเอียดของการตอบ ::
งั้นตามนี้เลยครับ
Quote:
https://www.thaicreate.com/dotnet/forum/123302.html


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-05 20:23:56 By : nPointXer
 


 

No. 4

Guest


ตอบความคิดเห็นที่ : 3 เขียนโดย : nPointXer เมื่อวันที่ 2018-05-05 20:23:56
รายละเอียดของการตอบ ::
จากตัวอย่างที่ให้มา ผมไม่ค่อยเข้าใจของ คห.ที่1 ผมจึงเลือกทำตามแบบ คห.ที่2 แต่กลับยังเจอปัญหาเดิมครับ
รบกวนช่วยที่ครับ
Code (VB.NET)
Public Class Form3
    Private rpt As ReportDocument
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TextBox1.Text <> "" Then
            rpt = New ReportDocument()
            rpt.Load("D:\VB project\งานสต็อกสินค้า\Vat\Vat\CrystalReport1.rpt")
            Dim crtableLogoninfo As New TableLogOnInfo()
            Dim crConnectionInfo As New ConnectionInfo()
            Dim CrTables As Tables
            crConnectionInfo.ServerName = ".\SQLEXPRESSS"
            crConnectionInfo.DatabaseName = "VAT"
            crConnectionInfo.UserID = "sa"
            crConnectionInfo.Password = "123456"
            CrTables = rpt.Database.Tables
            For Each CrTable As CrystalDecisions.CrystalReports.Engine.Table In CrTables
                crtableLogoninfo = CrTable.LogOnInfo
                crtableLogoninfo.ConnectionInfo = crConnectionInfo
                CrTable.ApplyLogOnInfo(crtableLogoninfo)
            Next
            rpt.SetParameterValue("หมายเลขสั่งซื้อ", Me.TextBox1.Text)
            Me.CrystalReportViewer1.ReportSource = rpt
            'Me.CrystalReportViewer1.Refresh()
        Else
            MsgBox("กรุณากรอกหมายเลขสั่งซื้อ")
        End If
    End Sub
    Protected Sub OnUnload(ByVal e As EventArgs)
        Try
            If rpt IsNot Nothing Then
                rpt.Close()
                rpt.Dispose()
                GC.Collect()

            End If
        Catch ex As Exception
            error_message(ex.Message)
        End Try
    End Sub

    Protected Sub rptCrystal_Unload(ByVal sender As Object, ByVal e As EventArgs)
        Try
            If rpt IsNot Nothing Then
                rpt.Close()
                rpt.Dispose()
                GC.Collect()

            End If
        Catch ex As Exception
            error_message(ex.Message)
        End Try
    End Sub
End Class


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-07 16:14:25 By : Parinya N.
 


 

No. 5



โพสกระทู้ ( 233 )
บทความ ( 0 )



สถานะออฟไลน์


ใช้คำสั่ง SELECT @@SERVERNAME เพื่อดู Server Name ของเครื่องเรา ละลองเปลี่ยนดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-07 16:29:09 By : nPointXer
 


 

No. 6



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : nPointXer เมื่อวันที่ 2018-05-07 16:29:09
รายละเอียดของการตอบ ::
ติดปัญหาเหมือนเดิมเลยครับ สงสัยว่าเครื่องที่ใช้เขียนไม่มีปัญหาอะไร แต่ทำไมเครื่องอื่นถึงมีปัญหาครับ
ถ้าจะหาdatabaseไม่เจอ ก็ควรจะเป็นทั้งโปรแกรม แต่นี่เป็นเฉพาะ Crystal report รบกวนรด้วยครับบ
error3

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-07 16:41:54 By : Parinya N
 


 

No. 7



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ปวดหัวครับ รบกวนผู้รู้ช่วยด้วยด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-07 17:26:38 By : Parinya N
 


 

No. 8

Guest


อืมไม่รู้ว่าออกแบบ Report จากอะไรครับ DataSet หรือ Query ที่ Report อันนี้สำคัญนะครับ
ถ้า Report ไม่ซับซ้อนมากควรใช้ DataSet แต่แบบต้องมี Sup Report เยอะๆ ก็ให้ Crystal Report เชื่อมต่อเอา
แล้วส่งไปแค่ parameter ผมว่าของคุณอันหลังใช่ไหมครับ ลองดูตามนี้นะครับ

https://stackoverflow.com/questions/14459966/crystal-report-always-asks-for-database-login

หรือถ้าเป็น C# ผมจะใส่ครบไปเลยแบบนี้ (พอดีผมมี Report หลายตัว)
Code (C#)
public void printreport(string reportname, DateTime? dStart, DateTime? dEnd, string strBegin, string strEnd)
        {
            string strReportPath = Application.StartupPath + @"\report\" +reportname;
            CrystalDecisions.CrystalReports.Engine.ReportDocument report =
                new CrystalDecisions.CrystalReports.Engine.ReportDocument();
            report.Load(strReportPath);
            string param_begin = string.Empty;
            string param_end = string.Empty;
            switch (reportname)
            {
                case "A_INVOICE_RPT.rpt":
                    param_begin = "@BInv";
                    param_end = "@EInv";
                    break;
                case "A_Bill.rpt":
                    param_begin = "@BILL_NO";
                    param_end = "@BILL_End";
                    break;
                case "A_Receipt.rpt":
                    param_begin = "@RECEIPT_NO";
                    param_end = "@RECEIPT_END";
                    break;
                case "A_CreditDebitNote_RPT.rpt":
                    param_begin = "@BInv";
                    param_end = "@EInv";
                    break;
                default:
                    return;
            }
            report.SetParameterValue(param_begin, strBegin);
            report.SetParameterValue(param_end, strEnd);
        
            
            report.SetDatabaseLogon("admin", "xxxxxx", "IP Server", "A_LIVE_App");
            this.crystalReportViewer.ReportSource = report;
            this.crystalReportViewer.Refresh();
            
        }

การสร้าง Crystal Report กับ DataSet หรือ DataTable (VB.NET,C#) Admin เข้าทำตัวอย่างให้ดูแล้ว
https://www.thaicreate.com/dotnet/crystal-report-dataset-datatable.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-08 08:21:28 By : บัญดิษฐ
 


 

No. 9



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2018-05-08 08:21:28
รายละเอียดของการตอบ ::
สอบถามเพิ่มเติมครับ ตอนนี้ผมสร้าง Data set ตามที่ ลิ้ง https://www.thaicreate.com/dotnet/crystal-report-dataset-datatable.html
ได้กล่าวไว้ คือว่าแถบจะcopyกันมาทั้งหมด ยกเว้น ฐานข้อมูลSQL ที่ผมมีอยู่แล้ว แต่กลับเจอปัญหา error " login fail for use sa" ตามภาพด้านล่างครับ รบกวนช่วยดูให้หน่อยครับ ว่าผมผิดพลาดอะไรไปรึเปล่า
error3

อัน table Data set ครับ
error4

นี้ Code VB ครับ
Code (VB.NET)
Imports CrystalDecisions.CrystalReports.Engine
Imports System.Data.SqlClient
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim objConn As New SqlConnection
        Dim objCmd As New SqlCommand
        Dim dtAdapter As New SqlDataAdapter

        Dim ds As New DataSet
        Dim dt As DataTable
        Dim strConnString, strSQL As String

        strConnString = "Server=localhost;UID=sa;PASSWORD=123456;database=VAT;Max Pool Size=400;Connect Timeout=600;"
        strSQL = "SELECT * FROM withdraw_result WHERE หมายเลขสั่งซื้อ = '" & Me.TextBox1.Text & "' "

        objConn.ConnectionString = strConnString
        With objCmd
            .Connection = objConn
            .CommandText = strSQL
            .CommandType = CommandType.Text
        End With
        dtAdapter.SelectCommand = objCmd

        dtAdapter.Fill(ds, "DataTable1")
        dt = ds.Tables(0)

        dtAdapter = Nothing
        objConn.Close()
        objConn = Nothing

        Dim rpt As New ReportDocument()
        Dim directory As String = My.Application.Info.DirectoryPath
        'rpt.Load(directory & "\myCrystalReport1.rpt")
        rpt.Load("D:\VB project\งานสต็อกสินค้า\test report\test report\CrystalReport1.rpt")
        rpt.SetDataSource(dt)
        Me.CrystalReportViewer1.ReportSource = rpt
        Me.CrystalReportViewer1.Refresh()

    End Sub
End Class




แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-08 23:49:20 By : Parinya N
 


 

No. 10



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 9 เขียนโดย : Parinya N เมื่อวันที่ 2018-05-08 23:49:20
รายละเอียดของการตอบ ::
strConnString = ".\SQLEXPRESSS;UID=sa;PASSWORD=123456;database=VAT;Max Pool Size=400;Connect Timeout=600;"
ลองดูครับ ว่าแต่เครื่องตัวเองหรือเครื่องอืนที่เข้าไม่ได้ครับ และขอแนะนำด้วยเลยนะครับ อย่าพยายามใช้ภาษาไทยในการตั้งชื่อ column
ครับ อันนี้น่าเป็นห่วง และอีกอย่างนะส่วนมากเขาจะไม่ใช้ user sa กันนะคือให้เพิ่ม user เข้าไปใหม่แล้วกำหนดสิทธิ์เหมือน sa ครับผม
(ส่วนมากอาจเป็นผมคนเดียวก็ได้นะครับ 555)

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-09 08:28:05 By : บัญดิษฐ
 


 

No. 11



โพสกระทู้ ( 9 )
บทความ ( 0 )



สถานะออฟไลน์


ตาม คห.10 ครับ ลองเปลี่ยนชื่อsever และ user และ password ให้เป็นอีกอย่างนึง และแก้ชื่อcolumn ใหม่ให้เป็นภาษาอังกฤษ

ติดerror ตรงนี้ครับ
com

เหมือนหาไฟล์บางอย่างไม่เจอ พอไปsearch ที่อากู๋ จึงรู้ว่าต้องแก้ไข ตัวนี้ที่ app.config ครับ

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>

ตอนนี้เชื่อมต่อ dataset กับ crystal report ได้แล้วครับ เดี๋ยวจะลองไปใช้เครื่อง client ดูว่ายังติดปัญหา "ล็อกออน ไม่สำเร็จ user = xx อยู่รึเปล่าครับ ยังไงจะมาอัพเดทให้ดูนะครับ

...ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-09 21:41:39 By : Parinya N
 


 

No. 12

Guest


เชื่อมต่อฐานข้อมูลได้เรียบร้อยครับ ขอบคุณทุกคนที่ให้ความช่วยเหลือครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-05-14 20:05:53 By : Parinya n
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : โหลด Form crystal report จากเครื่องอื่นแล้วถามรหัส รบกวนช่วยทีครับ!!
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2020 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่