• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Các câu hỏi về bộ công cụ Devexpress

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Moderators: tungblt, vuathongtin

DoremonA
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 441
Joined: Fri 29/07/2011 1:00 pm
Has thanked: 11 times
Been thanked: 145 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby DoremonA » Tue 29/01/2013 12:53 pm

Theo hình ở trên thì bảng Danh sách khách hàng và bảng Báo cáo là 2 bảng độc lập. Nếu đưa chung vào 1 Form như thế Người sử dụng (User) rất dễ rối và code lại cực
Tai sao lại không Show form Danh sách khách hàng riêng để User chọn khách hàng rồi set khách hàng đó vào Form báo cáo. Cái tiện ở đây là vấn đề chỉnh sửa, thêm mới, xóa 1 khách hàng ngoài vấn đề chọn khách hàng để nạp nữa.
Chưa kể 1 chức năng rất cần thiết mà User thường sử dụng đó là tìm kiếm, và điều này Cái Gridcontrol chỉ tìm kiếm ở mức độ đơn giản hơn là mình tự code.
Một đống chức năng đó mà nhét vào cái form báo cáo nữa bạn nghĩ User có rối không :)
Vài điều gửi đến bạn, có gì hem đúng bỏ qua cho nhen :)



anhhieutkf
Thành viên năng nổ
Thành viên năng nổ
Posts: 56
Joined: Sat 12/01/2013 10:59 am
Has thanked: 5 times
Been thanked: 3 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby anhhieutkf » Wed 30/01/2013 10:08 am

Ừ. Mình hiểu ý bạn. Nhưng nếu thế sao mà làm đk from chỉ hiện thị thông tin sinh viên mà mình click vào ở girdcontrol sang form khác mà bạn nói được :) Giúp mình rõ hơn một chút được k?

DoremonA
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 441
Joined: Fri 29/07/2011 1:00 pm
Has thanked: 11 times
Been thanked: 145 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby DoremonA » Wed 30/01/2013 1:23 pm

Thường thì lập trình CSDL nó đều có nhiều bảng danh sách. Ví dụ 1 trường học có: DSNhanSu,DSLop,DSSinhVien v.v... nên thông thường bạn đều có những control để mở ra các Form chứa danh sách đó ( ví dụ click btnDSsinhvien mở ra Form chứa bảng DSsinhvien ) để User nhìn vào là biết liền, đơn giản vậy thôi.
Ngoài các button ở trên để chuyên nghiệp hơn bạn có thể Sử dụng phím tắt . Ví dụ: khi control MaSV focus nếu User nhấn F1 thì mở form chứa bảng DSsinhvien ( tương đương với btnDSsinhvien.performclick như tôi đã nói ở trên)
Và sau khi thao tác xong và tắt form thì thông tin nào cần chuyển sang FormMain thì chuyển qua thôi. Khi chuyển các thông tin qua thì bạn thường sử dụng (tôi đã trả lời bạn ở đây)
http://caulacbovb.com/forum/viewtopic.php?f=8&t=25839&p=136010#p136010

binkute
Thành viên năng nổ
Thành viên năng nổ
Posts: 57
Joined: Tue 15/01/2013 8:01 pm
Has thanked: 10 times
Been thanked: 3 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby binkute » Tue 05/02/2013 10:17 pm

Mọi người cho mình hỏi 2 vấn đề này với:
- Hiển thị thời gian hiện tại: "Hôm nay, thứ 3 ngày 5 tháng 3 năm 2013" dưới thanh status bar
- Hiển thị menu (Xóa, xem chi tiết,....) khi click chuột phải lên 1 dòng ở GirdView
Mình đang dùng devexpress để thiết kế giao diện. Xin cảm ơn!

User avatar
bocapit
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 393
Joined: Thu 02/10/2008 6:34 am
Location: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\
Has thanked: 1 time
Been thanked: 44 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby bocapit » Tue 05/02/2013 11:40 pm

1. Thêm một đối tượng label control vào thanh statusbar sau đó gán thuộc tính caption của nó bằng thời gian hiện tại
2. Dùng sự kiện PopupMenuShowing của gridview
  1. this.gridView1.PopupMenuShowing += (a, e) =>
  2.             {
  3.                 GridView view = a as GridView;
  4.                 GridHitInfo hi = view.CalcHitInfo(e.Point);
  5.                 if (!hi.InRowCell)
  6.                     return;
  7.                 popupMenu1.ShowPopup(gGridControl.PointToScreen(e.Point));
  8.             };

binkute
Thành viên năng nổ
Thành viên năng nổ
Posts: 57
Joined: Tue 15/01/2013 8:01 pm
Has thanked: 10 times
Been thanked: 3 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby binkute » Wed 06/02/2013 8:06 pm

1. Bạn ơi, mình muốn hiển thị tiếng việt như bên trên thì làm thế nào bạn?
2. Cho mình xin bài hướng dẫn chi tiết hơn được chứ?

Xin cảm ơn!

binhminhdem
Posts: 9
Joined: Wed 26/12/2012 10:43 am
Has thanked: 3 times

Lưu và hiện thị ảnh từ CSDL trong DevExpress ?

Postby binhminhdem » Thu 21/02/2013 10:42 pm

Các bạn cho mình hỏi cách lưu và hiện thị ảnh trong DevExpress với?
thanks nhiều nhé ! :)

DoremonA
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 441
Joined: Fri 29/07/2011 1:00 pm
Has thanked: 11 times
Been thanked: 145 times

Re: Lưu và hiện thị ảnh từ CSDL trong DevExpress ?

Postby DoremonA » Fri 22/02/2013 11:49 am

1.Không CSDL của bạn chứa ảnh hay đường dẫn đến file ảnh. Code Demo bên dưới bạn add Gridcontrol1 và copy code dưới chạy thử
  1.     Dim dt As DataTable
  2.     Dim rpPic As New DevExpress.XtraEditors.Repository.RepositoryItemPictureEdit
  3.     Dim Path As String = "C:\Users\pc19\Desktop\co Ha A7.JPG"
  4.  Private Sub Load_CSDL_Gridview()
  5.         dt = New DataTable()
  6.         dt.Columns.Add("Id", GetType(Integer))
  7.         dt.Columns.Add("Ten", GetType(String))
  8.         dt.Columns.Add("Lop", GetType(String))
  9.         dt.Columns.Add("Hinh", GetType(Image))
  10.         Dim pic As New Bitmap(Image.FromFile(Path), 20, 20)
  11.  
  12.         dt.Rows.Add(New Object() {1, "aaa", "1a1", pic})
  13.         dt.Rows.Add(New Object() {2, "aab", "1a2", pic})
  14.         dt.Rows.Add(New Object() {5, "aac", "1a3", pic})
  15.         dt.AcceptChanges()
  16.  
  17.         GridControl1.DataSource = dt
  18.         GridView1.Columns("Hinh").ColumnEdit = rpPic
  19.     End Sub
  20.  

2.Sử dụng 2 code chuyển Binary thành Image và ngược lại bên Topic này
http://caulacbovb.com/forum/viewtopic.php?f=8&t=25688

binhminhdem
Posts: 9
Joined: Wed 26/12/2012 10:43 am
Has thanked: 3 times

Re: Lưu và hiện thị ảnh từ CSDL trong DevExpress ?

Postby binhminhdem » Mon 25/02/2013 3:00 pm

Thanhk bạn nhiều nhé :)

DoremonA
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 441
Joined: Fri 29/07/2011 1:00 pm
Has thanked: 11 times
Been thanked: 145 times

Re: Lưu và hiện thị ảnh từ CSDL trong DevExpress ?

Postby DoremonA » Wed 27/02/2013 9:21 am

Có 2 dạng hiển thị hình ảnh vào Grid từ CSDL
1.CSDL lưu đường dẫn
2.CSDL lưu hình ảnh dạng nhị phân (Binary)
=> Bạn lưu vào CSDL kiểu nào ???
Bạn sử dụng Events FocusedRowChanged cho Gridview của Gridcontrol
  1. Private Sub GridView1_FocusedRowChanged(ByVal sender As Object, ByVal e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles GridView1.FocusedRowChanged
  2.         TextBox1.Text = GridView1.GetFocusedRowCellValue("Id")
  3.         TextBox2.Text = GridView1.GetFocusedRowCellValue("Ten")
  4.         TextBox3.Text = GridView1.GetFocusedRowCellValue("Lop")
  5.         PictureBox1.Image = GridView1.GetFocusedRowCellValue("Hinh") 'Khi CSDL chứa đường dẫn như Code ở đầu Topic
  6.         'PictureBox1.Image = GetHinh(TryCast(GridView1.GetFocusedRowCellValue("Hinh"), Byte())) 'Khi CSDL chứa hình ảnh dạng Binary thì sử dụng 2 Code bên dưới để lấy hình và lưu hình dạng Binary
  7.     End Sub
  8.   Function GetHinh(ByVal _Source As Byte())
  9.         If _Source Is Nothing OrElse _Source Is DBNull.Value Then
  10.             Return Nothing
  11.         Else
  12.             Dim ms As New MemoryStream(_Source)
  13.             Return Image.FromStream(ms)
  14.         End If
  15.     End Function
  16.     Function SaveHinh(ByVal _photo As Image)
  17.         Dim _bm As New Bitmap(_photo, 90, 90)
  18.         Dim ms As New MemoryStream()
  19.         _bm.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
  20.         Return ms.ToArray()
  21.     End Function
  22.  

binhminhdem
Posts: 9
Joined: Wed 26/12/2012 10:43 am
Has thanked: 3 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby binhminhdem » Thu 28/02/2013 2:10 pm

Bạn ơi tớ thử làm như bạn nói nhưng có một lỗi 'Đối số truyền vào không hợp lệ',bạn xem giúp tớ với :
//Lưu ảnh vảo cơ sở dữ liệu
Dim hinhAnh As Byte() = SaveHinh(pictureThuoc.Image)
Dim thuocDTO = New ThuocDTO(hinhAnh)
thuocBLL.UpDateInsertData(thuocDTO)
-File ảnh tớ lưu vào CSDL file nào cũng là :0x53797374656D2E427974655B5D ko hiểu tại sao? :D

pictureThuoc.Image = GetHinh(TryCast(GridView1.GetFocusedRowCellValue("hinhAnh"), Byte()))
nói báo lỗi:
Image
Last edited by binhminhdem on Mon 25/03/2013 11:36 am, edited 1 time in total.

DoremonA
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 441
Joined: Fri 29/07/2011 1:00 pm
Has thanked: 11 times
Been thanked: 145 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby DoremonA » Thu 28/02/2013 5:53 pm

Bạn chỉnh Field Type của cột chứa hình ảnh chưa ? ( CSDL SQL = Image ; Access = OLE Object )
Nếu chỉnh rồi thì post Project lên xem thử

binhminhdem
Posts: 9
Joined: Wed 26/12/2012 10:43 am
Has thanked: 3 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby binhminhdem » Fri 01/03/2013 8:49 am

Bạn DoremonA đây là Project của mình :http://www.mediafire.com/?v8p81jxw0f5dlyy
Đây là các trường trong CSDL :
Bạn xem giúp mình nhé, nó ở phần Nghiệp vụ->Nhập thuốc :)!

Image
Image

dangnhapnee
Thành viên chính thức
Thành viên chính thức
Posts: 33
Joined: Fri 01/03/2013 11:32 am
Has thanked: 7 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby dangnhapnee » Fri 01/03/2013 11:37 am

Image


anh chị ơi giúp em với.
trong database em sét cái Xem, sửa, xóa, cập nhật kìa dạng Bit
trong gridcontrol em để Edittable bằng True, xem trước thì vẫn tích sửa được các checkbox.

nhưng khi chạy thử form thì nó dí mãi không check hoặc uncheck của checkbox. như hình trên thì em dí mãi nó vẫn để Null như kia chứ không chuyển sang đã check gì cả. Cả cột thuộc tính string kia cũng không sửa được, không đánh thêm chữ được :(

liệu em có phải đánh code nào không vì em chưa đánh code gì vì chưa cần lưu, cần nó chạy được bình thường đã.

User avatar
haitu
Guru
Guru
Posts: 206
Joined: Sat 10/09/2005 2:50 pm
Has thanked: 1 time
Been thanked: 19 times
Contact:

Re: Các câu hỏi về bộ công cụ Devexpress

Postby haitu » Fri 01/03/2013 1:38 pm

do bạn load datasource vào gridcontrol bị sai, nên sau khi thay nhập liệu vào cell tương ứng click ra ngoài sẽ bị mất dữ liệu. Bạn kiểm tra lại tên các cột và các trường dữ liệu bạn gán vào có đúng với datasource không nhé

dangnhapnee
Thành viên chính thức
Thành viên chính thức
Posts: 33
Joined: Fri 01/03/2013 11:32 am
Has thanked: 7 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby dangnhapnee » Fri 01/03/2013 2:17 pm

em kiểm tra lại hết rồi, đúng tên cột với database luôn.

trong mục unbound.. gì đấy em cũng thử chọn Bolean rồi cũng không được
mục ColumEdit em chỉnh lại là checkEdit cũng không được luôn

nhưng trong lúc Run Design em review form lên thì vẫn tích chọn được bình thường nhưng nếu chạy thử form thì không thể tích được, cả cột dữ liệu string cũng không sửa hay thêm chữ gì vào

muaphonui_2010
Thành viên ưu tú
Thành viên ưu tú
Posts: 537
Joined: Fri 26/11/2010 1:15 pm
Location: TP.HCM
Has thanked: 187 times
Been thanked: 33 times
Contact:

Re: Các câu hỏi về bộ công cụ Devexpress

Postby muaphonui_2010 » Fri 01/03/2013 3:14 pm

nhưng khi chạy thử form thì nó dí mãi không check hoặc uncheck của checkbox. như hình trên thì em dí mãi nó vẫn để Null như kia chứ không chuyển sang đã check gì cả. Cả cột thuộc tính string kia cũng không sửa được, không đánh thêm chữ được :(

Cái này mình suy đoán chắc bạn chọn thuộc tính : Re...only gi đó ( thuộc tính này ko cho sửa, chỉ cho đọc thôi) bạn xem lại thử thuộc tính đó = true hay False

dangnhapnee
Thành viên chính thức
Thành viên chính thức
Posts: 33
Joined: Fri 01/03/2013 11:32 am
Has thanked: 7 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby dangnhapnee » Fri 01/03/2013 5:18 pm

ReadOnly = false
______
em thử rồi, chỉ load 1 table trong database lên thì edit bình thường
Nhưng cái em muốn là load 1 số cột trong 2 ( hoặc nhiều) table trong database ra thì nó lại không edit được
Như hình ở trên thì column Nhóm ở 1 table khác còn mấy cái column kia ở table khác trong database.

Có cách nào để load nhiều cột ở nhiều table mà vẫn edit được không ạ

123konika
Posts: 1
Joined: Thu 05/05/2011 8:14 am

Re: Các câu hỏi về bộ công cụ Devexpress

Postby 123konika » Mon 04/03/2013 10:21 am

Hì, các bạn giúp mình cái này với. Mình muốn hiển thị lên gridControl 31 cột và đổ dữ liệu vào 31 cột đó như thế nào? Mong được giúp đỡ, mình đã tham khảo trong bài viết này nhưng chưa tìm đc đáp án :D

Code: Select all

gv.Columns.Clear();
            DataTable dt = Class.LoadData("sp_Ngay");

            string str = dt.Rows[0]["Ngay"].ToString();
            for (int i = 0; i < str.Length; i++)
            {
                DevExpress.XtraGrid.Columns.GridColumn col = new DevExpress.XtraGrid.Columns.GridColumn();
                col.FieldName = i.ToString();
                col.Caption = "Thu " + i.ToString();
                col.Width = 300; // dòng này không chạy được
                gv.Columns.Add(col);
                gv.Columns[i].Visible = true;               
            }
            for (int j = 0; j < str.Length; j++)
            {
                DevExpress.XtraGrid.Views.Grid.GridView view = new DevExpress.XtraGrid.Views.Grid.GridView();
                gvChamCongDiLam.SetRowCellValue(j,gv.Columns[j], j);
            }
               
            gv.AddNewRow();
        }

dangnhapnee
Thành viên chính thức
Thành viên chính thức
Posts: 33
Joined: Fri 01/03/2013 11:32 am
Has thanked: 7 times

Re: Các câu hỏi về bộ công cụ Devexpress

Postby dangnhapnee » Mon 04/03/2013 5:13 pm

dangnhapnee wrote:ReadOnly = false
______
em thử rồi, chỉ load 1 table trong database lên thì edit bình thường
Nhưng cái em muốn là load 1 số cột trong 2 ( hoặc nhiều) table trong database ra thì nó lại không edit được
Như hình ở trên thì column Nhóm ở 1 table khác còn mấy cái column kia ở table khác trong database.

Có cách nào để load nhiều cột ở nhiều table mà vẫn edit được không ạ



____________ ai giúp em với ạ


Return to “Visual Basic .NET và C# (VB.NET & C#)”

Who is online

Users browsing this forum: No registered users and 8 guests