none
itextsharp-problema de decimales

    Pregunta

  • buenas tardes.tengo un problema para generar decimales en mi PDF.

    tengo un query que me hace un select y este tiene dos columnas numericas y me envia la informacion de esta manera.

    ITEM       DESCRIPCION         MONTO      TOTAL

       1              RELOJ                    50.00       50.00

    Pero cuando lo quiero enviar al PDF

    Me los muestra de esta manera.

    ITEM       DESCRIPCION              MONTO        TOTAL

       1              RELOJ                    50.0000       50.0000

    Este es mi codigo.

    iTextSharp.text.Rectangle page = doc.PageSize; 
                PdfPTable tableGW = new PdfPTable(4);
                tableGW.TotalWidth = page.Width - 900;
                float[] widths = new float[] { 10f, 40f, 10f, 10f };
                
                tableGW.SetWidths(widths);
                tableGW.HorizontalAlignment = 1;
                tableGW.SpacingBefore = 0;
                tableGW.SpacingAfter = 0;
                PdfPCell ordernumber = new PdfPCell(new Phrase("QUANTITY", _Bold));
                PdfPCell newnumber = new PdfPCell(new Phrase("WORK DESCRIPTION/BILLABLE ITEMS/PARTS", _Bold));
                PdfPCell description = new PdfPCell(new Phrase("UNIT PRICE", _Bold));
                PdfPCell Quantity = new PdfPCell(new Phrase("TOTAL", _Bold));
    
                ordernumber.BorderWidth = 1;
                newnumber.BorderWidth = 1;
                description.BorderWidth = 1;
                Quantity.BorderWidth = 1;
                //Añadimos las celdas a la tabla
                tableGW.AddCell(ordernumber);
                tableGW.AddCell(newnumber);
                tableGW.AddCell(description);
                tableGW.AddCell(Quantity);
                using (SqlConnection conn = new SqlConnection(connect))
                {
                    
                    string query = "select '1' as ITEM,SE.ServiceDescription,round(SD.TotalAmount,0) [UNIT PRICE], round(sd.TotalAmount,0) as TOTAL from SaleDetail SD inner join Services SE on SE.Service_id=SD.Service_id where SD.Sale_id='" + IdService + "'";
                    SqlCommand cmd = new SqlCommand(query, conn);
                    try
                    {
                        conn.Open();
                        using (SqlDataReader rdr = cmd.ExecuteReader())
                        {   
                            while (rdr.Read())
                            {
                                
                                tableGW.AddCell(new Phrase(rdr[0].ToString(), _standardFont));
                                tableGW.AddCell(new Phrase(rdr[1].ToString(), _standardFont));
                                tableGW.AddCell(new Phrase("$" + rdr[2].ToString(), _standardFont));
                                tableGW.AddCell(new Phrase("$"+rdr[3].ToString(), _standardFont));
                                tableGW.AddCell(" ");
                                tableGW.AddCell(" ");
                                tableGW.AddCell(" ");
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    doc.Add(tableGW);
                }
    
                //--------------------------------------FIN CREACION DE TABLA----------------------------------------
                PdfPTable tables = new PdfPTable(4);
                PdfPCell cells = new PdfPCell(new Phrase("--.---"));
                float[] widthss = new float[] { 10f, 40f, 10f, 10f };
                tables.SetWidths(widthss);
                cells.HorizontalAlignment = 1;
                tables.AddCell(cells);
                tables.AddCell("--.---");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell(" ");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell(new Phrase("Total Due:",_Bold));
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell("");
                tables.AddCell("");
                doc.Add(tables);
               
                //Additional work recommended
                payment.Alignment = iTextSharp.text.Image.MIDDLE_ALIGN;
                payment.ScaleAbsolute(550f, 60f);
                doc.Add(payment);
                additional.Alignment = iTextSharp.text.Image.MIDDLE_ALIGN;
                additional.ScaleAbsolute(550f, 50f);
                doc.Add(additional);
                

    martes, 29 de diciembre de 2015 18:59