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

Registered : 109,027

HOME > .NET Framework > Forum > สอบถามการนำ database ของ Access บางเรคคอร์ด มาใช้ทำใบเสร็จใน Crytal Report ในVC# 2010คะ



 

สอบถามการนำ database ของ Access บางเรคคอร์ด มาใช้ทำใบเสร็จใน Crytal Report ในVC# 2010คะ

 



Topic : 075411



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



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




คือตอนนี้ติดปัญหาในการนำข้อมูลใน ดาต้าเบสบางเรคคอร์ดมาใช้ใน Crystal Report คะ
ตัวดาต้าเบสที่ใช้คือ Access ส่วนโปรแกรมก็ VC# 2010 คะ มือใหม่จริงๆคะ รบกวนชี้แนะด้วยนะคะ



Tag : .NET, Ms Access, C#, VS 2010 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-03-12 17:36:08 By : hitsuki23 View : 2543 Reply : 6
 

 

No. 1



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



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


ติดปัญหาอะไรครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-12 23:05:35 By : sodamax
 


 

No. 2



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



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


ไม่รู้ Code ในการเอาข้อมูลบางเรคคอร์ดจาก Database มาจัดทำใบเสร็จใน Crytal Report อ่าคะ ลองมาหลายทีแล้วได้แต่ข้อมูลทั้งหมดจากตารางใน Access อ่าคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-12 23:43:41 By : hitsuki23
 

 

No. 3



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



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


ขอดู code หน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-12 23:54:51 By : sodamax
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

เขียน DataSource ก็ทำได้แล้วครับ

อ้างถึง

Code (VB.NET)
Dim Conn As New OleDbConnection
Dim StrConn As String="Connection String"
With Conn
     .ConnectionString=StrConn
     .Open
End With

Dim DA As New OleDbDataAdapter
Dim DS As New DataSet
Dim SQL As String="SELECT * FROM tbInvoices WHERE InvNo=" & Val(txtInvoice.text)
DA=New OleDbDataAdapter(SQL,Conn)
DA.Fill(DS,"tbInvoices")

        Dim rpt As New ReportDocument()
        If DS.Tables(0).Rows.Count <> 0 Then
            rpt.Load("CrystalReport1.rpt")
            rpt.SetDataSource(DS)
            CrystalReportViewer1.ReportSource = rpt
       End If


Error ตอนเปิดหน้า Crystal report ครับ "Failed to load database information."
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-13 05:57:21 By : webmaster
 


 

No. 5



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

เขียนให้ดูครับ Connection String ของ VB.NET + Access

Code
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & directory & "\database.mdb;Jet OLEDB:Database Password=;


Code (VB.NET)
Dim Conn As New OleDbConnection
Dim directory As String = My.Application.Info.DirectoryPath
Dim StrConn As String="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & directory & "\database.mdb;Jet OLEDB:Database Password=;"
With Conn
     .ConnectionString=StrConn
     .Open
End With

Dim DA As New OleDbDataAdapter
Dim DS As New DataSet
Dim SQL As String="SELECT * FROM tbInvoices WHERE InvNo=" & Val(txtInvoice.text)
DA=New OleDbDataAdapter(SQL,Conn)
DA.Fill(DS,"tbInvoices")

Dim rpt As New ReportDocument()
If DS.Tables(0).Rows.Count <> 0 Then
    rpt.Load("CrystalReport1.rpt")
    rpt.SetDataSource(DS)
    CrystalReportViewer1.ReportSource = rpt
End If

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-13 06:16:47 By : webmaster
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : webmaster เมื่อวันที่ 2012-03-13 06:16:47
รายละเอียดของการตอบ ::
ลองทำตามที่แนะนำมาพอกดรันมันจะขึ้นว่า โหลดรายงานไม่สำเร็จ อ่าคะตรงคำสั่ง rpt.Load("CrystalReport1.rpt")


อันนี้คือโค๊ดที่ใช้อยู่อ่าคะ
Code (C#)
namespace ChillyTheGuitarShop
{
    public partial class FormSaleOrder : Form
    {
        private DataSet dataset;
        private OleDbCommand command;
        private OleDbConnection connect;
        private OleDbDataAdapter adapter;
        private DataSet ord;

        private void Order_LoadDB()
        {
            string conStr = "Provider = Microsoft.Ace.OleDb.12.0;" +
                            @"Data Source =D:\Project ComApp\ChillyTheGuitarShop\ChillyTheGuitarShop\bin\Debug\ChillyTheGuitarShop1.mdb";
            connect = new OleDbConnection(conStr);
            connect.Open();

            String sql = "SELECT*FROM Customer";

            command = new OleDbCommand(sql, connect);
            OleDbDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                comboCus.Items.Add(reader["CustomerName"]);
            }

            sql = "SELECT*FROM Product";
            command = new OleDbCommand(sql, connect);
            reader = command.ExecuteReader();
            while (reader.Read())
            {
                comboProduct.Items.Add(reader["ProductName"]);
                comboPrice.Items.Add(reader["price2"]);
            }

            dateTimePicker1.Value = DateTime.Today;
            comboCus.SelectedIndex = 0;
            comboProduct.SelectedIndex = 0;
            button2.Enabled = false;
        }
        private void Order_CloseDB(object sender, FormClosingEventArgs e)
        {
            connect.Close();
        }
        private void showOrders()
        {
            string sql = "SELECT OrderID,CustomerName,ProductName,Quantity,Price,Total FROM [Order]";
            command = new OleDbCommand(sql, connect);
            adapter = new OleDbDataAdapter(command);
            dataset = new DataSet();
            adapter.Fill(dataset, "ord");
            dataGridView1.DataSource = dataset.Tables["ord"];
        }
        private void combobox_Customer(object sender, EventArgs e)
        {
            showOrders();
        }


        public FormSaleOrder()
        {
            InitializeComponent();
            Order_LoadDB();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            double quan;
            if (!double.TryParse(textBox2.Text, out quan))
            {
                MessageBox.Show("จำนวนที่ใส่ไม่ถูกต้อง");
                return;
            }

            string sql = "INSERT INTO [Order](" +
                         "CustomerName,ProductName,Quantity,Price,OrderDate,Total)" +
                         "VALUES(@cust, @prod, @quan, @price, @ordDate,@total)";
            command = new OleDbCommand(sql, connect);
            command.Parameters.AddWithValue("cust", comboCus.SelectedItem);
            command.Parameters.AddWithValue("prod", comboProduct.SelectedItem);
            command.Parameters.AddWithValue("quan", quan);
            command.Parameters.AddWithValue("price", comboPrice.SelectedItem);
            command.Parameters.AddWithValue("ordDate", dateTimePicker1.Text);
            String ptemp = comboPrice.SelectedItem.ToString();
            double ptemp2 = double.Parse(ptemp);
            double tprice = quan*ptemp2;
            command.Parameters.AddWithValue("total", tprice);

            int affedtedRow = command.ExecuteNonQuery();
            if (affedtedRow < 1)
            {
                statusStrip1.Text = "เกิดข้อผิดพลาดระหว่างบันทึกข้อมูล";
                return;
            }
            else
            {
                statusStrip1.Text = "ข้อมูลการถูกบันทึกเรียบร้อยแล้ว";
                showOrders();
            }

        }
        private void dataGridView1_RowStatusChange(object sender, DataGridViewRowStateChangedEventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                button2.Enabled = true;
                button3.Enabled = true;
            }
            else
            {
                button2.Enabled = false;
                button3.Enabled = false;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            DialogResult dialog = MessageBox.Show("ลบแถวที่เลือกนี้หรือไม่", "ยืนยันการลบ", MessageBoxButtons.OKCancel);
            if (dialog == DialogResult.Cancel)
            {
                return;
            }
            string ordID = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
            string sql = "DELETE FROM [Order] WHERE OrderID = " + ordID;
            command.CommandText = sql;
            command.ExecuteNonQuery();
            showOrders();
            button2.Enabled = false;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            DialogResult dialog = MessageBox.Show("พิมพ์ใบเสร็จที่เลือกนี้หรือไม่", "พิมพ์ใบเสร็จ", MessageBoxButtons.OKCancel);
            if (dialog == DialogResult.Cancel)
            {
                return;
            }

            string ordId = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
            OleDbDataAdapter da = new OleDbDataAdapter();
            DataSet ds = new DataSet();
            string sql = "SELECT*FROM[Order]WHERE OrderID =" + double.Parse(ordId);
            da = new OleDbDataAdapter(sql, connect);
            da.Fill(ds,"ord");

        /*   ReportDocument rec = new ReportDocument();
           if (ds.Tables[0].Rows.Count != 0)
           {
                rec.Load("CrystalReport1.rpt");
                rec.SetDataSource(ds);
                crystalReportViewer1.ReportSource = rec;
            }
            */
            FormReceipt receipt = new FormReceipt();
            receipt.setParameter(ord);
            receipt.Show();
        }

    }
}


และอันนี้เป็นคลาสสำหรับพิมใบ receipt อ่าคะ
Code (C#)
public partial class FormReceipt : Form
    {
        public FormReceipt()
        {
            InitializeComponent();
        }
        public void setParameter(DataSet ord)
        {
            ParameterDiscreteValue paraVa = new ParameterDiscreteValue();
            paraVa.Value = ord;
            ParameterField paraFi = new ParameterField();
            paraFi.ParameterFieldName = "ord";
            paraFi.CurrentValues.Add(paraVa);

            ParameterFields paraFis = new ParameterFields();
            paraFis.Add(paraFi);

            crystalReportViewer1.ParameterFieldInfo = paraFis;
            crystalReportViewer1.ReportSource = new CrystalReport1();
        }
    }



ผลลัพธ์ที่ออกมาจะพิมพ์ออกมาเป็นเหมือน Report มากกว่าใบเสร็จอ่าคะ
พอกดสั่งพิมพ์ใบเสร็จจะมีแจ้งอันนี้ก่อนอ่าคะ แล้วถ้ากด รีเฟรชอีกที มันก็จะปริ้นออกมาให้อ่าคะ
เหมือนรูปที่2
parameter not correct

แต่ว่า ข้อมูลที่ปริ้นออกมามันจะออกมาทุกเรคคอร์ดใน Datagridview อ่าคะ ซึ่งจริงๆ อยากได้แค่เรคคอร์ดเดียวตามที่เราเลือกอ่าคะ
อย่างในรูปคือเลือกเรคคอร์ดที่สองแต่ตรงส่วนของ header ในใบที่ปริ้นออกมาก็ยังเป็นของเรคคอร์ดแรกอยู่ดีอ่าคะ
printall

รบกวนด้วยนะคะ คือมือใหม่จริงๆ ต้องขออภัยด้วยนะคะที่รบกวนบ่อยๆ ขอบคุณคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-03-13 09:12:39 By : hitsuki23
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการนำ database ของ Access บางเรคคอร์ด มาใช้ทำใบเสร็จใน Crytal Report ในVC# 2010คะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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