Listview

Liên hệ QC

Duong gia

Thành viên thường trực
Tham gia
15/1/07
Bài viết
352
Được thích
118
Chào các bác, Trong Listview ta thêm đoạn code nào để nó có dấu phân cách ("#.###") trong các cột số để cho dễ đọc. Khi ta click chọn sản phẩm nào thì có sẽ hiện đơn giá của sản phẩm đó trong TextBox Đơn giá đó. Mong các bác giúp đỡ, Cám ơn rất nhiều. Pls mở file đính kèm.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn đưa file hỏi mà sao khóa pass sao đọc được
 
Upvote 0
bạn bổ xung như sau:
Mã:
[COLOR=blue]Function TableToArray(ByVal TableName As String)[/COLOR]
[COLOR=blue]Dim arr[/COLOR]
[COLOR=blue]Dim vRange As Range[/COLOR]
[COLOR=blue]Dim i As Long, j As Long, m As Long, n As Long[/COLOR]
[COLOR=blue]If Not RangeNameExists(TableName) Then Exit Function 'Neu khong ton tai thi thoat[/COLOR]
[COLOR=blue]On Error Resume Next[/COLOR]
[COLOR=blue]Set vRange = Range(TableName)[/COLOR]
[COLOR=blue]i = vRange.Rows.Count[/COLOR]
[COLOR=blue]j = vRange.Columns.Count[/COLOR]
[COLOR=blue]ReDim arr(1 To i, 1 To j)[/COLOR]
[COLOR=blue]For m = 1 To i[/COLOR]
[COLOR=blue]For n = 1 To j[/COLOR]
[COLOR=red]If IsNumeric(vRange(m, n).Value) Then[/COLOR]
[COLOR=red]arr(m, n) = Format(vRange(m, n).Value, "#,##0")[/COLOR]
[COLOR=red]Else[/COLOR]
[COLOR=red]arr(m, n) = vRange(m, n).Value[/COLOR]
[COLOR=red]End If[/COLOR]
[COLOR=blue]Next n[/COLOR]
[COLOR=blue]Next m[/COLOR]
[COLOR=blue]TableToArray = arr[/COLOR]
[COLOR=blue]Set vRange = Nothing[/COLOR]
[COLOR=blue]End Function[/COLOR]
Bạn bổ xung thuộc tính canh phải cho cột số là đwợc. Để lấy giá trị của ListVieu ta gán textbox=listview.value (cột 1) hoặc Listview.subitems(i) cho cột i
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Theo mình thì bạn nên thêm điều kiện format là "###,###,##0" để có thể format với số với giá trị lớn.
 
Upvote 0
bạn bổ xung như sau: Function TableToArray(ByVal TableName As String) Dim arr Dim vRange As Range Dim i As Long, j As Long, m As Long, n As Long If Not RangeNameExists(TableName) Then Exit Function 'Neu khong ton tai thi thoat On Error Resume Next Set vRange = Range(TableName) i = vRange.Rows.Count j = vRange.Columns.Count ReDim arr(1 To i, 1 To j) For m = 1 To i For n = 1 To j If IsNumeric(vRange(m, n).Value) Then arr(m, n) = Format(vRange(m, n).Value, "#,##0") Else arr(m, n) = vRange(m, n).Value End If Next n Next m TableToArray = arr Set vRange = Nothing End Function Bạn bổ xung thuộc tính canh phải cho cột số là đwợc. Để lấy giá trị của ListVieu ta gán textbox=listview.value (cột 1) hoặc Listview.subitems(i) cho cột i
Cám ơn bác nhiều. Nhưng để cột số nằm canh phải (Right Alignment) thì sao hả bác. Còn khi click chọn một sản phẩm nào đó thì nó sẽ hiện đơn giá của sản phẩm đó trên Texbox bên cạnh. Cám ơn bác nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn chọn Liv.. nhấn F4 được bảng Properties chọn Custom chọn thẻ Column Header
nhấn Insert tuong ứng với số cột (4), chọn cột số (3) và (4) chọn canh phải ở dưới.
Bạn có thể đặt thuộc tính này bằng mã khi Form load.
Lấy đơn giá bạn viết:
Private Sub LVDataSelector_ItemClick(ByVal Item As MSComctlLib.ListItem)
Me.TextBox1 = Me.LVDataSelector.SelectedItem.ListSubItems(3)
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn chọn Liv.. nhấn F4 được bảng Properties chọn Custom chọn thẻ Column Header nhấn Insert tuong ứng với số cột (4), chọn cột số (3) và (4) chọn canh phải ở dưới. Bạn có thể đặt thuộc tính này bằng mã khi Form load. Lấy đơn giá bạn viết: Private Sub LVDataSelector_ItemClick(ByVal Item As MSComctlLib.ListItem) Me.TextBox1 = Me.LVDataSelector.SelectedItem.ListSubItems(3) End Sub
Được rồi, Cám ơn Bác rất nhiều. Tuyệt quá. Ngồi cả đêm mà chẳng nghĩ được gì do trình độ của mình còn non kém quá. Bác nháy mắt một cái là xong, đúng là cao thủ. Thanks rất nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom