YOMEDIA
ADSENSE
Cách đọc số tiền trên CrystalReport với lập trình C#
422
lượt xem 30
download
lượt xem 30
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
E có 1 cái hóa đơn thu học phí sinh viên trong đó hiển thị 1 trường là số tiền. Việc load dữ liệu lên crystal e dùng dataset, vậy làm thế nào để báo cáo có thể hiển thị số tiền bằng chữ đc ạ? Ví dụ: 1.200.000 VND thì nó sẽ hiển thị là Một triệu hai trăm ngàn đồng. Em đang mò mẫm chỗ này mãi mà ko đc.Mong các bác chỉ bảo tận tình ạ. E cảm ơn nhiều
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Cách đọc số tiền trên CrystalReport với lập trình C#
- Cách đọc số tiền trên CrystalReport với lập trình C# Chào các bác! E có 1 cái hóa đơn thu học phí sinh viên trong đó hiển thị 1 trường là số tiền. Việc load dữ liệu lên crystal e dùng dataset, vậy làm thế nào để báo cáo có thể hiển thị số tiền bằng chữ đc ạ? Ví dụ: 1.200.000 VND thì nó sẽ hiển thị là Một triệu hai trăm ngàn đồng. Em đang mò mẫm chỗ này mãi mà ko đc.Mong các bác chỉ bảo tận tình ạ. E cảm ơn nhiều __________________ KHÔNG CÓ CHỮ KÝ..... #2 19012011, 11:13 PM Ngày gia nhập: 05 2010 timkiemviet.vn Bài viết: 21 Thành viên mới đây là cái bạn cần Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Ham_doi_so_thanh_chu { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public static string str = " "; public static string ToString(decimal number) { string s = number.ToString("#"); string[] so = new string[] { "không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín" }; string[] hang = new string[] { "", "nghìn", "triệu", "tỷ" }; int i, j, donvi, chuc, tram; bool booAm = false;
- decimal decS = 0; //Tung addnew try { decS = Convert.ToDecimal(s.ToString()); } catch { } if (decS < 0) { decS = -decS; s = decS.ToString(); booAm = true; } i = s.Length; if (i == 0) str = so[0] + str; else { j = 0; while (i > 0) { donvi = Convert.ToInt32(s.Substring(i - 1, 1)); i--; if (i > 0) chuc = Convert.ToInt32(s.Substring(i - 1, 1)); else chuc = -1; i--; if (i > 0) tram = Convert.ToInt32(s.Substring(i - 1, 1)); else tram = -1; i--; if ((donvi > 0) || (chuc > 0) || (tram > 0) || (j == 3)) str = hang[j] + str; j++; if (j > 3) j = 1; if ((donvi == 1) && (chuc > 1)) str = "một " + str; else { if ((donvi == 5) && (chuc > 0)) str = "lăm " + str; else if (donvi > 0) str = so[donvi] + " " + str; } if (chuc < 0) break; else
- { if ((chuc == 0) && (donvi > 0)) str = "lẻ " + str; if (chuc == 1) str = "mười " + str; if (chuc > 1) str = so[chuc] + " mươi " + str; } if (tram < 0) break; else { if ((tram > 0) || (chuc > 0) || (donvi > 0)) str = so[tram] + " trăm " + str; } str = " " + str; } } if (booAm) str = "Âm " + str; return str;// = str+ "đồng chẵn"; } private void button1_Click(object sender, EventArgs e) { //textBox2.Text = ToString(decimal.Parse(textBox1.Text)); textBox2.Text = DocTienBangChu(long.Parse(textBox1.Text)," Đồng"); } private string[] ChuSo = new string[10] { " không", " một", " hai", " ba", " bốn", " năm", " sáu", " bẩy", " tám", " chín" }; private string[] Tien = new string[6] { "", " nghìn", " triệu", " tỷ", " nghìn tỷ", " triệu tỷ" }; // Hàm đọc số thành chữ public string DocTienBangChu(long SoTien, string strTail) { int lan, i; long so; string KetQua = "", tmp = ""; int[] ViTri = new int[6]; if (SoTien < 0) return "Số tiền âm !"; if (SoTien == 0) return "Không đồng !"; if (SoTien > 0) { so = SoTien; } else { so = -SoTien; } //Kiểm tra số quá lớn if (SoTien > 8999999999999999) { SoTien = 0;
- return ""; } ViTri[5] = (int)(so / 1000000000000000); so = so - long.Parse(ViTri[5].ToString()) * 1000000000000000; ViTri[4] = (int)(so / 1000000000000); so = so - long.Parse(ViTri[4].ToString()) * +1000000000000; ViTri[3] = (int)(so / 1000000000); so = so - long.Parse(ViTri[3].ToString()) * 1000000000; ViTri[2] = (int)(so / 1000000); ViTri[1] = (int)((so % 1000000) / 1000); ViTri[0] = (int)(so % 1000); if (ViTri[5] > 0) { lan = 5; } else if (ViTri[4] > 0) { lan = 4; } else if (ViTri[3] > 0) { lan = 3; } else if (ViTri[2] > 0) { lan = 2; } else if (ViTri[1] > 0) { lan = 1; } else { lan = 0; } for (i = lan; i >= 0; i--) { tmp = DocSo3ChuSo(ViTri[i]); KetQua += tmp; if (ViTri[i] != 0) KetQua += Tien[i]; if ((i > 0) && (!string.IsNullOrEmpty(tmp))) KetQua += ",";//&& (!string.IsNullOrEmpty(tmp)) } if (KetQua.Substring(KetQua.Length - 1, 1) == ",") KetQua = KetQua.Substring(0, KetQua.Length - 1); KetQua = KetQua.Trim() + strTail; return KetQua.Substring(0, 1).ToUpper() + KetQua.Substring(1); } // Hàm đọc số có 3 chữ số private string DocSo3ChuSo(int baso) {
- int tram, chuc, donvi; string KetQua = ""; tram = (int)(baso / 100); chuc = (int)((baso % 100) / 10); donvi = baso % 10; if ((tram == 0) && (chuc == 0) && (donvi == 0)) return ""; if (tram != 0) { KetQua += ChuSo[tram] + " trăm"; if ((chuc == 0) && (donvi != 0)) KetQua += " linh"; } if ((chuc != 0) && (chuc != 1)) { KetQua += ChuSo[chuc] + " mươi"; if ((chuc == 0) && (donvi != 0)) KetQua = KetQua + " linh"; } if (chuc == 1) KetQua += " mười"; switch (donvi) { case 1: if ((chuc != 0) && (chuc != 1)) { KetQua += " mốt"; } else { KetQua += ChuSo[donvi]; } break; case 5: if (chuc == 0) { KetQua += ChuSo[donvi]; } else { KetQua += " lăm"; } break; default: if (donvi != 0) { KetQua += ChuSo[donvi]; } break; } return KetQua; } } }
- #3 19012011, 11:19 PM Ngày gia nhập: 11 2010 Bài viết: 57 vgc0001 Thành viên chính thức Cho mình hỏi câu này hơi gà mờ chút là đây là viết cho form, vậy để dùng đc cho CrystalReport sử dụng dataset thì m phải làm thế nào?Rất cám ơn bạn đã quan tâm đến câu hỏi của m __________________ KHÔNG CÓ CHỮ KÝ..... #4 19012011, 11:23 PM Ngày gia nhập: 05 2010 timkiemviet.vn Bài viết: 21 Thành viên mới uh trên form đó bạn , bạn chuyền được giá trị quá crystalreport thì bạn chuyền chữ qua i vậy #5 19012011, 11:37 PM Ngày gia nhập: 11 2010 Bài viết: 57 vgc0001 Thành viên chính thức M đã xem lại cái form load lên report của m. M nhầm với form khác.form này ko sử dụng dataset mà sử dụng theo kiểu click vào 1 dòng dữ liệu, các dữ liệu trên datagridview sẽ load lên các combo và textbox sau đó truyền qua CrystalReport như thế này using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq;
- using System.Text; using System.Windows.Forms; using System.Collections; namespace WindowsFormsApplication3 { public partial class frmHoaDonHP : Form { public frmQLHocPhi fParent; public ArrayList data = new ArrayList(); public frmHoaDonHP() { InitializeComponent(); } private void LoadReport()//object sender, EventArgs e { CrystalDecisions.CrystalReports.Engine.TextObject T = (CrystalDecisions.CrystalReports.Engine.TextObject ) this.PhieuThu.ReportDefinition.Sections[0].ReportObjects["MaHoaDon"]; T.Text = data.ToArray()[0].ToString() ; T = (CrystalDecisions.CrystalReports.Engine.TextObject ) this.PhieuThu.ReportDefinition.Sections[0].ReportObjects["MaKhoaHoc"]; T.Text = data.ToArray()[1].ToString(); T = (CrystalDecisions.CrystalReports.Engine.TextObject ) this.PhieuThu.ReportDefinition.Sections[0].ReportObjects["MaLop"]; T.Text = data.ToArray()[2].ToString(); T = (CrystalDecisions.CrystalReports.Engine.TextObject ) this.PhieuThu.ReportDefinition.Sections[0].ReportObjects["MaSv"]; T.Text = data.ToArray()[3].ToString(); T = (CrystalDecisions.CrystalReports.Engine.TextObject ) this.PhieuThu.ReportDefinition.Sections[0].ReportObjects["HoTenSv"]; T.Text = data.ToArray()[4].ToString(); T = (CrystalDecisions.CrystalReports.Engine.TextObject ) this.PhieuThu.ReportDefinition.Sections[0].ReportObjects["MaHP"]; T.Text = data.ToArray()[5].ToString(); T = (CrystalDecisions.CrystalReports.Engine.TextObject )
- this.PhieuThu.ReportDefinition.Sections[0].ReportObjects["TongHocPhi"]; T.Text = data.ToArray()[6].ToString(); } private void frmHoaDonHP_Load(object sender, EventArgs e) { LoadReport(); } } } đây là sự kiện dataGridview_CellClick private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { if (dataGridView1.SelectedRows.Count > 0) { list.Clear(); txtMaHoaDon.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString(); list.Add(txtMaHoaDon.Text); cbbMaKhoa.Text = dataGridView1.SelectedRows[0].Cells[1].Value.ToString(); list.Add(cbbMaKhoa.Text); cbbMaLop.Text = dataGridView1.SelectedRows[0].Cells[2].Value.ToString(); list.Add(cbbMaLop.Text); cbbMaSv.Text = dataGridView1.SelectedRows[0].Cells[3].Value.ToString(); list.Add(cbbMaSv.Text); txtTenSv.Text = dataGridView1.SelectedRows[0].Cells[4].Value.ToString(); list.Add(txtTenSv.Text); cbbMaHocPhan.Text = dataGridView1.SelectedRows[0].Cells[5].Value.ToString(); list.Add(cbbMaHocPhan.Text); txtTongtien.Text = dataGridView1.SelectedRows[0].Cells[6].Value.ToString(); list.Add(txtTongtien.Text); } } __________________ KHÔNG CÓ CHỮ KÝ..... #6 20012011, 07:41 AM
- Ngày gia nhập: 06 2010 Bài viết: 256 hoanghuynh2409 Thành viên nhiệt tình Trích dẫn: Nguyên bản được gửi bởi timkiemviet.vn đây là cái bạn cần Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Ham_doi_so_thanh_chu { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public static string str = " "; public static string ToString(decimal number) { string s = number.ToString("#"); string[] so = new string[] { "không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín" }; string[] hang = new string[] { "", "nghìn", "triệu", "tỷ" }; int i, j, donvi, chuc, tram; bool booAm = false; decimal decS = 0; //Tung addnew try { decS = Convert.ToDecimal(s.ToString()); } catch { } if (decS < 0)
- { decS = -decS; s = decS.ToString(); booAm = true; } i = s.Length; if (i == 0) str = so[0] + str; else { j = 0; while (i > 0) { donvi = Convert.ToInt32(s.Substring(i - 1, 1)); i--; if (i > 0) chuc = Convert.ToInt32(s.Substring(i - 1, 1)); else chuc = -1; i--; if (i > 0) tram = Convert.ToInt32(s.Substring(i - 1, 1)); else tram = -1; i--; if ((donvi > 0) || (chuc > 0) || (tram > 0) || (j == 3)) str = hang[j] + str; j++; if (j > 3) j = 1; if ((donvi == 1) && (chuc > 1)) str = "một " + str; else { if ((donvi == 5) && (chuc > 0)) str = "lăm " + str; else if (donvi > 0) str = so[donvi] + " " + str; } if (chuc < 0) break; else { if ((chuc == 0) && (donvi > 0)) str = "lẻ " + str; if (chuc == 1) str = "mười " + str; if (chuc > 1) str = so[chuc] + " mươi " + str; } if (tram < 0) break; else
- { if ((tram > 0) || (chuc > 0) || (donvi > 0)) str = so[tram] + " trăm " + str; } str = " " + str; } } if (booAm) str = "Âm " + str; return str;// = str+ "đồng chẵn"; } private void button1_Click(object sender, EventArgs e) { //textBox2.Text = ToString(decimal.Parse(textBox1.Text)); textBox2.Text = DocTienBangChu(long.Parse(textBox1.Text)," Đồng"); } private string[] ChuSo = new string[10] { " không", " một", " hai", " ba", " bốn", " năm", " sáu", " bẩy", " tám", " chín" }; private string[] Tien = new string[6] { "", " nghìn", " triệu", " tỷ", " nghìn tỷ", " triệu tỷ" }; // Hàm đọc số thành chữ public string DocTienBangChu(long SoTien, string strTail) { int lan, i; long so; string KetQua = "", tmp = ""; int[] ViTri = new int[6]; if (SoTien < 0) return "Số tiền âm !"; if (SoTien == 0) return "Không đồng !"; if (SoTien > 0) { so = SoTien; } else { so = -SoTien; } //Kiểm tra số quá lớn if (SoTien > 8999999999999999) { SoTien = 0; return ""; } ViTri[5] = (int)(so / 1000000000000000); so = so - long.Parse(ViTri[5].ToString()) * 1000000000000000; ViTri[4] = (int)(so / 1000000000000); so = so - long.Parse(ViTri[4].ToString()) *
- +1000000000000; ViTri[3] = (int)(so / 1000000000); so = so - long.Parse(ViTri[3].ToString()) * 1000000000; ViTri[2] = (int)(so / 1000000); ViTri[1] = (int)((so % 1000000) / 1000); ViTri[0] = (int)(so % 1000); if (ViTri[5] > 0) { lan = 5; } else if (ViTri[4] > 0) { lan = 4; } else if (ViTri[3] > 0) { lan = 3; } else if (ViTri[2] > 0) { lan = 2; } else if (ViTri[1] > 0) { lan = 1; } else { lan = 0; } for (i = lan; i >= 0; i--) { tmp = DocSo3ChuSo(ViTri[i]); KetQua += tmp; if (ViTri[i] != 0) KetQua += Tien[i]; if ((i > 0) && (!string.IsNullOrEmpty(tmp))) KetQua += ",";//&& (!string.IsNullOrEmpty(tmp)) } if (KetQua.Substring(KetQua.Length - 1, 1) == ",") KetQua = KetQua.Substring(0, KetQua.Length - 1); KetQua = KetQua.Trim() + strTail; return KetQua.Substring(0, 1).ToUpper() + KetQua.Substring(1); } // Hàm đọc số có 3 chữ số private string DocSo3ChuSo(int baso) { int tram, chuc, donvi; string KetQua = ""; tram = (int)(baso / 100); chuc = (int)((baso % 100) / 10); donvi = baso % 10; if ((tram == 0) && (chuc == 0) && (donvi == 0)) return
- ""; if (tram != 0) { KetQua += ChuSo[tram] + " trăm"; if ((chuc == 0) && (donvi != 0)) KetQua += " linh"; } if ((chuc != 0) && (chuc != 1)) { KetQua += ChuSo[chuc] + " mươi"; if ((chuc == 0) && (donvi != 0)) KetQua = KetQua + " linh"; } if (chuc == 1) KetQua += " mười"; switch (donvi) { case 1: if ((chuc != 0) && (chuc != 1)) { KetQua += " mốt"; } else { KetQua += ChuSo[donvi]; } break; case 5: if (chuc == 0) { KetQua += ChuSo[donvi]; } else { KetQua += " lăm"; } break; default: if (donvi != 0) { KetQua += ChuSo[donvi]; } break; } return KetQua; } } } quá công phu, nhìn điều kiện vòng lập chóng mặt luôn, cám ơn bạn mình cũng đang cần cái này.
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn