7
votes

Comment créer des rapports utilisant des rapports Crystal dans Visual Studio 2010

Je suis nouveau à Visual Studio 2010 C #. Je crée une application qui crée un rapport. Les informations qui seront affichées dans le rapport proviennent du serveur MySQL. J'ai déjà installé les rapports de cristal. Cependant, j'ai des problèmes d'obtenir des données de MySQL car je ne trouve pas les données de MySQL. Les données présentées dans l'assistant de création de rapports ne sont pas les fichiers de base de données dans MySQL mais les formulaires que j'ai créés dans C #. S'il vous plaît aider.

Captures d'écran:

Entrez la description de l'image ici

Entrez la description de l'image ici


2 commentaires

Le tag 'Reporting-Services' est invalide pour votre question


Vous devriez créer une nouvelle connexion pour voir votre DB MySQL.


5 Réponses :


0
votes
DataAccess.Connection.Close();
DataAccess.Connection.Open();
DataAccess.dataAdapter = new SqlDataAdapter(" SELECT sales.qty, sales.ord_date, sales.payterms, stores.stor_name, stores.stor_id, titles.title_id, titles.title, titles.price, (sales.qty * titles.price) AS Total FROM sales INNER JOIN stores ON sales.stor_id = stores.stor_id INNER JOIN  titles ON sales.title_id = titles.title_id", DataAccess.Connection);

DataAccess.dataTable = new DataTable();
DataAccess.dataAdapter.Fill(DataAccess.dataTable);
Bind.DataSource = DataAccess.dataTable;
string temp = DataAccess.dataTable.Rows[0][3].ToString();

Excel.Application xlApp2 = new Excel.Application();
xlApp2.Visible = true;
Excel.Workbook Workbook2 = xlApp2.Workbooks.Add(1);
Excel.Worksheet Worksheet2 = (Excel.Worksheet)Workbook2.Sheets[1];

Worksheet2.Cells[1, 1] = "Sales Report";
Worksheet2.Cells[3, 1] = temp.ToUpper();
Worksheet2.Cells[4, 2] = "Order Date";
Worksheet2.Cells[4, 3] = "Payment Terms";
Worksheet2.Cells[4, 4] = "Store Name";
Worksheet2.Cells[4, 5] = "Store ID";
Worksheet2.Cells[4, 6] = "Title ID";
Worksheet2.Cells[4, 7] = "Book Title";
Worksheet2.Cells[4, 8] = "Unit Price";
Worksheet2.Cells[4, 9] = "Total Price";

int intCount2 = 5;
int TotalRec = 0;
int finecort = 0;
decimal cost = 0;
decimal cost1 = 0;

for (int n = 0; n < DataAccess.dataTable.Rows.Count; n++)
{
    if (DataAccess.dataTable.Rows[n][3].ToString().Equals(temp))
    {
        Worksheet2.Cells[intCount2, "C"] = DataAccess.dataTable.Rows[n][0];
        Worksheet2.Cells[intCount2, "B"] = DataAccess.dataTable.Rows[n][1];
        Worksheet2.Cells[intCount2, "D"] = DataAccess.dataTable.Rows[n][3];
        Worksheet2.Cells[intCount2, "E"] = DataAccess.dataTable.Rows[n][4];
        Worksheet2.Cells[intCount2, "F"] = DataAccess.dataTable.Rows[n][5];
        Worksheet2.Cells[intCount2, "G"] = DataAccess.dataTable.Rows[n][6];
        Worksheet2.Cells[intCount2, "H"] = DataAccess.dataTable.Rows[n][7];
        Worksheet2.Cells[intCount2, "I"] = DataAccess.dataTable.Rows[n][8];

        intCount2++;
        TotalRec++;
        finecort++;
        cost += Convert.ToDecimal(DataAccess.dataTable.Rows[n][8]);
        cost1 += Convert.ToDecimal(DataAccess.dataTable.Rows[n][8]);
    }
    else
    {
        Worksheet2.Cells[intCount2, "B"] = ("Number of records in " + temp + " group are" + TotalRec + " and the cost is R" + cost1);
        TotalRec = 0;
        cost1 = 0;
        temp = DataAccess.dataTable.Rows[n][3].ToString();
        Worksheet2.Cells[intCount2 + 2, "A"] = temp.ToUpper();

        Worksheet2.Cells[intCount2 + 3, "B"] = "Order Date";
        Worksheet2.Cells[intCount2 + 3, "C"] = "Quantity";
        Worksheet2.Cells[intCount2 + 3, "D"] = "Store Name";
        Worksheet2.Cells[intCount2 + 3, "E"] = "Store ID";
        Worksheet2.Cells[intCount2 + 3, "F"] = "Title ID";
        Worksheet2.Cells[intCount2 + 3, "G"] = "Book Title";
        Worksheet2.Cells[intCount2 + 3, "H"] = "Unit Price";
        Worksheet2.Cells[intCount2 + 3, "I"] = "Total Price";

        intCount2 += 4;
    }
    Worksheet2.Cells.Columns.AutoFit();

}

Worksheet2.Cells[intCount2, "B"] = ("Number of records in " + temp + " group=" + TotalRec);
Worksheet2.Cells[intCount2 + 2 ,"A"] = "2013 Sales Report records added upto ";
Worksheet2.Cells[intCount2 + 2, "B"] = finecort;
Worksheet2.Cells[intCount2 + 3, "A"] = "Grrand Total of all records ";
Worksheet2.Cells[intCount2 + 3, "B"] = "R"+cost;
Worksheet2.Range[Worksheet2.Cells[1, "A"], Worksheet2.Cells[1, "I"]].Merge();
Worksheet2.Cells.Columns.AutoFit();
DataAccess.Connection.Close();

1 commentaires

Qu'est-ce que cette réponse signifie sur la création de rapports de cristal sur MySQL?




0
votes
    DataTable dataTable = new DataTable();

     int count1,count2;
        clsInfor.northCON.Open();
        clsInfor.dataAdapter = new SqlDataAdapter("SELECT Discontinued, QuantityPerUnit FROM Products", clsInfor.northCON);
        dataTable = new DataTable();
        clsInfor.dataAdapter.Fill(dataTable);
        Excel.Application app = new Excel.Application(); //creating a new application
        app.Visible = true;

        Excel.Workbook book = app.Workbooks.Add(1); // creating an instance of the workbook 
        Excel.Worksheet sheet = (Excel.Worksheet)book.Worksheets[1]; // creating an instance of the worksheet

        ((Excel.Range)sheet.Cells[1, "A"]).Value2 = "Report"; // creating the header of the report
        ((Excel.Range)sheet.Cells[2, "B"]).Value2 = "Number of products per Cat";//creating the names of the colomns in the excell spreedsheet
        ((Excel.Range)sheet.Cells[2, "C"]).Value2 = "Number of products that have been discontinued";

        ((Excel.Range)sheet.Cells[4, "D"]).Value2 = "Tot number of Prod";

        for (count1 = 0; count1 < dataTable.Rows.Count; count1++)
        {
            for (count2 = 0; count2 < dataTable.Columns.Count; count2++)
            {
                sheet.Cells[count1 + 3, count2 + 2] = dataTable.Rows[count1][count2];
            }
            sheet.Cells.Columns.AutoFit();
        }

0 commentaires

0
votes
        XmlDocument xmlDocument = new XmlDocument();
        string xmlFileName = (@"C:");
        xmlDocument.Load(xmlFileName);

        XmlElement xItem = xmlDocument.CreateElement("item");


        XmlElement xmlSubElement1 = xmlDocument.CreateElement("todoID");
        xmlSubElement1.InnerText = todoID;
        xItem.AppendChild(xmlSubElement1);

        XmlElement xmlSubElement2 = xmlDocument.CreateElement("todoDate");
        xmlSubElement2.InnerText = todoDate;
        xItem.AppendChild(xmlSubElement2);

        XmlElement xmlSubElement3 = xmlDocument.CreateElement("todoTime");
        xmlSubElement3.InnerText = todoTime;
        xItem.AppendChild(xmlSubElement3);

        XmlElement xmlSubElement4 = xmlDocument.CreateElement("todoItem");
        xmlSubElement4.InnerText = todoItem;
        xItem.AppendChild(xmlSubElement4);

        XmlElement xmlSubElement5 = xmlDocument.CreateElement("todoStatus");
        xmlSubElement5.InnerText = todoStatus;
        xItem.AppendChild(xmlSubElement5);

        XmlElement xmlSubElement6 = xmlDocument.CreateElement("UserID");
        xmlSubElement6.InnerText = UserID;
        xItem.AppendChild(xmlSubElement6);


        //xmlDocument.AppendChild(xItem);
        xmlDocument.DocumentElement.LastChild.AppendChild(xItem);
        // then finally save
        xmlDocument.Save(@"C:");
        xmlmsg ="A new item has been added to the to do list";

0 commentaires

0
votes
    private void btndlt_Click(object sender, EventArgs e)
    {

        DataGridViewRow row = dataGridView1.Rows[0];
        string id = row.Cells[0].Value.ToString();
        string path = @"";
        XmlDocument doc = new XmlDocument();
        doc.Load(path);
        XmlNode node = doc.SelectSingleNode("/TheToDoList/item[todoID='" + id + "']");
        node.ParentNode.RemoveChild(node);
        doc.Save(path);
        MessageBox.Show("Selected Record Deleted Successfully");
    }

    private void btnUpdate_Click(object sender, EventArgs e)
    {
        DataGridViewRow row = dataGridView1.Rows[0];
        int id1 = Convert.ToInt32(row.Cells[0].Value);
        string path = @"";
        XmlDocument doc = new XmlDocument();
        doc.Load(path);
        XmlNode node = doc.SelectSingleNode("/TheToDoList/item[todoID='" + id1 + "']");
        node.ParentNode.RemoveChild(node);
        doc.Save(path);

                //    //Load the XML File
                    doc.Load(path);


                    XmlElement root = doc.CreateElement("TheToDoList");
                    XmlElement Subroot = doc.CreateElement("item");
                    XmlElement todoID = doc.CreateElement("todoID");
                    XmlElement todoDate = doc.CreateElement("todoDate");
                    XmlElement todoTime = doc.CreateElement("todoTime");
                    XmlElement todoItem = doc.CreateElement("todoItem");
                    XmlElement todoStatus = doc.CreateElement("todoStatus");
                    XmlElement UserID = doc.CreateElement("UserID");
                    //Add the values for each nodes
                    todoID.InnerText = row.Cells[0].ToString();
                    todoDate.InnerText = row.Cells[1].ToString();
                    todoTime.InnerText = row.Cells[2].ToString();
                    todoItem.InnerText = row.Cells[3].ToString();
                    todoStatus.InnerText = row.Cells[4].ToString();
                    UserID.InnerText = row.Cells[5].ToString();
                    //Construct the document
                    doc.AppendChild(root);
                    root.AppendChild(Subroot);
                    Subroot.AppendChild(todoID);
                    Subroot.AppendChild(todoDate);
                    Subroot.AppendChild(todoTime);
                    Subroot.AppendChild(todoItem);
                    Subroot.AppendChild(todoStatus);
                    Subroot.AppendChild(UserID);
                    doc.Save(path);
                    MessageBox.Show("Selected Record Edited Successfully");

0 commentaires