Trong quá trình sử dụng 1C, việc đếm số lượng dòng trong một bảng biểu sau khi đã áp dụng bộ lọc là một yêu cầu nghiệp vụ phổ biến. Bài viết này sẽ cung cấp cho bạn các phương pháp, thủ thuật, và đoạn code mẫu để thực hiện công việc này một cách hiệu quả và chính xác. Bạn sẽ tìm thấy các giải pháp từ đơn giản đến phức tạp, phù hợp với nhiều tình huống khác nhau. Chúng ta sẽ đi sâu vào từng phương pháp, phân tích ưu nhược điểm, và cung cấp ví dụ minh họa cụ thể để bạn có thể áp dụng ngay vào công việc của mình. Hãy cùng khám phá các cách thức để đếm số dòng sau lọc trong 1C một cách dễ dàng và hiệu quả nhất!
Có nhiều cách để đếm số lượng dòng trong bảng biểu 1C sau khi áp dụng bộ lọc, mỗi cách có ưu và nhược điểm riêng. Dưới đây là một số phương pháp phổ biến:
Количество()
(Quantity())Phương thức Количество()
(Quantity()) là cách đơn giản nhất để đếm số lượng dòng trong một bảng biểu. Tuy nhiên, cần lưu ý rằng phương thức này trả về tổng số dòng trong bảng, **không phụ thuộc vào bộ lọc đã áp dụng**. Do đó, nếu bạn muốn đếm số dòng sau khi lọc, phương pháp này không phù hợp. Hãy cẩn trọng khi sử dụng phương pháp này, vì nó có thể dẫn đến kết quả không chính xác nếu bạn không hiểu rõ cách thức hoạt động của nó. Điều quan trọng là phải nhận thức được những hạn chế của nó trước khi đưa ra quyết định sử dụng.
ПроверитьСтроку()
(CheckRow()) của Bảng BiểuPhương pháp này sử dụng phương thức ПроверитьСтроку()
(CheckRow()) của **bảng biểu** để kiểm tra từng dòng sau khi đã áp dụng bộ lọc. Để thực hiện, bạn cần duyệt qua từng dòng trong bảng biểu và sử dụng phương thức này để xác định xem dòng đó có thỏa mãn điều kiện lọc hay không. Nếu thỏa mãn, bạn tăng biến đếm lên 1. Phương pháp này cho kết quả chính xác, tuy nhiên có thể chậm hơn so với các phương pháp khác nếu bảng biểu có số lượng dòng lớn. Việc tối ưu hóa vòng lặp và điều kiện kiểm tra có thể giúp cải thiện hiệu suất.
**Ví dụ:**
КолСтр = 0;
Для каждого строкаТ из ТвояТабЧасть цикл
КолСтр = КолСтр + ТаблПоле.ПроверитьСтроку(строкаТ);
КонецЦикла;
Trong đó:
ТвояТабЧасть
là **bảng biểu** cần đếm.ТаблПоле
là **phần tử form** liên kết với **bảng biểu**.**Lưu ý:** Theo một cập nhật, có thể cần sử dụng строкаТ.ПолучитьИдентификатор()
(rowT.GetIdentifier()) thay vì строкаТ
(rowT) trong phương thức ПроверитьСтроку()
(CheckRow()).
ПостроительОтчета
(ReportBuilder)Sử dụng ПостроительОтчета
(ReportBuilder) là một cách khác để đếm số lượng dòng sau khi lọc. Bạn cần tạo một ПостроительОтчета
(ReportBuilder), thiết lập nguồn dữ liệu là **bảng biểu**, và sau đó sử dụng phương thức Выбрать().Количество()
(Select().Quantity()) để đếm số lượng dòng trong kết quả. Phương pháp này có thể chậm hơn so với các phương pháp khác, đặc biệt là với các **bảng biểu** lớn. Tuy nhiên, nó có thể hữu ích nếu bạn cần thực hiện các thao tác phức tạp hơn trên dữ liệu, chẳng hạn như tính tổng hoặc trung bình cộng.
**Ví dụ:**
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ЭлементыФормы.Список.Значение);
Сообщить(ПостроительОтчета.Результат.Выбрать().Количество());
Một cách tiếp cận khác là thêm một cột ẩn vào **bảng biểu**, luôn gán giá trị "1" cho cột này. Sau khi áp dụng bộ lọc, bạn có thể tính tổng của cột này để có được số lượng dòng sau khi lọc. Phương pháp này có thể hiệu quả với các **bảng biểu** lớn, vì việc tính tổng thường nhanh hơn so với việc duyệt qua từng dòng. Tuy nhiên, nó yêu cầu sửa đổi cấu trúc của **bảng biểu**, điều này có thể không phù hợp trong một số trường hợp.
**Ví dụ:**
Процедура ТекРезультатПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.КолСтрок.Видимость = Ложь;
КонецПроцедуры
Việc lựa chọn phương pháp phù hợp phụ thuộc vào nhiều yếu tố, bao gồm kích thước của **bảng biểu**, tần suất thực hiện đếm, và yêu cầu về độ chính xác. Nếu bạn cần độ chính xác cao và không quan tâm đến hiệu suất, phương pháp sử dụng ПроверитьСтроку()
(CheckRow()) là một lựa chọn tốt. Nếu bạn cần hiệu suất cao và sẵn sàng chấp nhận một số sai số nhỏ, phương pháp thêm cột ẩn và tính tổng có thể phù hợp hơn. Hãy thử nghiệm với các phương pháp khác nhau để tìm ra phương pháp tốt nhất cho trường hợp cụ thể của bạn. Điều quan trọng là hiểu rõ các ưu điểm và nhược điểm của từng phương pháp để đưa ra quyết định sáng suốt.
Hy vọng bài viết này đã cung cấp cho bạn những kiến thức hữu ích để đếm số dòng trong bảng biểu 1C sau khi lọc. Chúc bạn thành công!
Bài viết liên quan