Ví dụ SKD 1 giây về cách tạo bố cục. Hướng dẫn đơn giản - cách hiển thị hình ảnh trong báo cáo trên hệ thống kiểm soát truy cập. Hiển thị hình ảnh trong tiêu đề báo cáo

Chúng tôi tạo một báo cáo trong hệ thống kiểm soát truy cập.

Ví dụ, thành phần của các trường như sau:

Trong các dòng báo cáo có nhóm “Đối tác”, trong các cột – nhóm “Dự án”. Dữ liệu báo cáo bao gồm tài nguyên "Thỏa thuận chung".

Kết quả là chúng ta nhận được kết quả như thế này:

Chúng tôi thấy rằng tiêu đề của báo cáo bao gồm tiêu đề của tài nguyên “Thỏa thuận chung”. Chúng ta không cần tiêu đề này ở đây nên chúng ta sẽ loại bỏ nó.

Có một số lựa chọn.

Lựa chọn 1.

Bằng cách tùy chỉnh bố cục.

Mở tab tương ứng trong trình thiết kế hệ thống cấu thành dữ liệu. Chọn "Thêm bố cục nhóm". Trong biểu mẫu "Bố cục nhóm", thêm trường "Dự án". Kiểu bố cục - "Tiêu đề".

Chúng tôi thiết lập khu vực. Ví dụ: ô R1C1. Đối với ô, đặt thuộc tính Điền thành “Tùy chọn”. Hãy đặt tên cho tham số, ví dụ: "Dự án".

Đặt biểu thức cho tham số: View(Project). Điều này có nghĩa là sự thể hiện của trường "Dự án".

Kết quả sẽ giống như thế này:

Do đó, báo cáo sẽ có dạng chúng tôi cần mà không có tiêu đề tài nguyên.

Lựa chọn 2.

1. Trong các trường đã chọn của toàn bộ báo cáo, chỉ để lại tài nguyên
2. Trong các trường nhóm cột đã chọn, hãy xóa trường tự động và thêm trường cho cột này (ví dụ: nếu các cột được nhóm theo dấu chấm, hãy chọn dấu chấm ở đây)
3. Trên tab “Cài đặt khác” của thư mục gốc báo cáo, chọn “vị trí tài nguyên” - “dọc”.

Tùy chọn này không yêu cầu bố cục.

Hôm nay chúng ta sẽ xem xét việc giải quyết một vấn đề thú vị - hiển thị hình ảnh trong báo cáo.

Điều này có thể hữu ích cho việc gì?

Đây một vài ví dụ:

  • Bảng giá kèm hình ảnh sản phẩm và logo ở tiêu đề
  • Hồ sơ nhân viên có ảnh
  • Đối chiếu tính toán có đóng dấu và chữ ký tại tầng hầm
  • Báo cáo/biểu mẫu in có bản in được quét

Trong video chúng ta cũng thảo luận hình thành chương trình báo cáo cho SKD. Phương pháp tạo báo cáo này được sử dụng trong cấu hình tiêu chuẩn- đây là một lý do khác để xem nó cẩn thận :)

Bố cục được xác định trước trong ACS

Bằng cách sử dụng bố cục được xác định trước, bạn có thể ghi đè bố cục báo cáo tiêu chuẩn.

Trong bài học này, ngoài việc đặt vấn đề, chúng ta sẽ xem xét:

  • Lưu trữ dữ liệu nhị phân trong cấu hình mô hình
  • Khả năng sử dụng bố cục ACS để hiển thị hình ảnh

Lập trình tạo báo cáo về hệ thống kiểm soát truy cập

Để giải quyết vấn đề hiển thị hình ảnh trong báo cáo trên hệ thống kiểm soát truy cập, cần phải tạo nó theo chương trình.

Khi tạo báo cáo theo chương trình, có thể truy cập dữ liệu nhị phân.

Trong bài học này chúng ta sẽ làm:

  • Xuất kết quả bố cục vào tài liệu bảng tính
  • Sử dụng đối tượng Dữ liệu giải mã
  • Lấy dữ liệu nhị phân từ cơ sở dữ liệu
  • Lập trình tạo bản vẽ trong tài liệu bảng tính

Hiển thị hình ảnh trong báo cáo ACS

Trong bài học này, chúng tôi thực hiện các bước cuối cùng: chúng tôi hiển thị dữ liệu nhị phân thu được trước đó trong báo cáo.

Để thực hiện việc này, bản vẽ sẽ được thêm vào tài liệu bảng tính, sau đó bản vẽ sẽ được hiển thị trong báo cáo.

Tính linh hoạt của thuật toán đầu ra hình ảnh

Thuật toán đầu ra hình ảnh được phát triển có tính phổ biến - thuật toán tiếp tục hoạt động bất kể có bất kỳ thay đổi nào trong cấu trúc báo cáo.

Thực ra đây chính là điều chúng ta sẽ chứng minh trong bài học này.

Ngoài ra, chúng tôi sẽ xem xét tính năng tạo báo cáo nền trên hệ thống kiểm soát truy cập (tạo báo cáo bằng các tác vụ thông thường).

Hiển thị hình ảnh trong tiêu đề báo cáo

Thông thường, bạn cần hiển thị hình ảnh tĩnh ở đầu trang hoặc chân trang của báo cáo.

Đây có vẻ là một nhiệm vụ đơn giản, nhưng trong trường hợp ACS, bạn cần biết cách giải quyết nó:

  • Bước 1. Tạo báo cáo theo chương trình
  • Bước 2. Tạo bố cục riêng với đầu trang hoặc chân trang mong muốn
  • Bước 3. Trước khi điền vào báo cáo ACS, hãy hiển thị một phần có dữ liệu cần thiết.

Video này cho thấy rõ ràng giải pháp cho vấn đề.

Thích xem! :)

Trong vài ngày qua, chúng tôi đã xuất bản các tài liệu về ACS.

Điều gì sẽ xảy ra nếu lập trình viên/người triển khai 1C không biết hệ thống kiểm soát truy cập? Có lẽ nó thực sự không quan trọng?

Được rồi, hãy xem điều gì đang chờ đợi một chuyên gia viết báo cáo “trên đầu gối” (ví dụ: sử dụng đầu ra thủ công cho tài liệu bảng tính).

Đừng bắn nghệ sĩ piano, anh ấy chơi tốt nhất có thể.

Các báo cáo thực tế trong tất cả các cấu hình tiêu chuẩn dựa trên SKD.

Đối với một chuyên gia không có kiến ​​thức về CDS, việc hoàn thiện các báo cáo tiêu chuẩn sẽ trở thành một cuộc xổ số - tại sao và làm thế nào con số này hoặc con số đó được hiển thị trong báo cáo, cách thêm nguồn mới, nơi chỉnh sửa các số liệu được tính toán trong mã...

SKD – tiêu chuẩn báo cáoở cấu hình tiêu chuẩn và 1C không viết bình luận dựa trên những người chưa nghiên cứu tiêu chuẩn :)

Chết tiệt, thời gian...

Nếu không có hệ thống kiểm soát truy cập, việc phát triển báo cáo phần lớn được thực hiện thủ công.

Tất nhiên, thật tuyệt khi đi ra ngoài như Rambaud với chiếc tuốc nơ vít trên răng và mọi người cũng vậy :)

Kết quả là - chi phí lao động lớn để phát triển và gỡ lỗi báo cáo. Và điều này ít nhất sẽ cảnh báo bất kỳ người quản lý/khách hàng nào: “lạ thật, nhưng liệu anh ấy có thực sự hiểu điều này không??”

Và khi nói đến việc sửa đổi báo cáo tiếp theo, điều này thường trở thành vấn đề đau đầu (đặc biệt nếu đó là báo cáo của người khác)…

Các chuyến đi phát triển tới khách hàng để thay đổi cách phân nhóm trong báo cáo

SKD cho phép bạn nhận báo cáo chất lượng không cần lập trình. Bộ xương đang được thực hiện trong vài phút, sau đó – cúi đầu.

Và người dùng có thể tùy chỉnh các báo cáo đó không cần đến lập trình viên, tạo ra một số tùy chọn trình bày - biểu đồ, đồ thị, danh sách, bảng.

Để đạt được tính linh hoạt như vậy trong các báo cáo được xây dựng theo chương trình, không thể trong một khung thời gian hợp lý.

Vì vậy - gọi, xe điện, đi thôi... Đây quả là sự phát triển chuyên nghiệp đối với biệt danh 1C...

“Không phải bạn cũng có chiếc tương tự nhưng có cúc khảm xà cừ sao? “Thật không may, không…” (c)

Điều gì sẽ xảy ra nếu một số dữ liệu cần được lấy từ hệ thống khác - từ cơ sở dữ liệu 1C khác hoặc hoàn toàn không phải từ 1C?

Bằng cách sử dụng hệ thống kiểm soát truy cập, bạn có thể tạo báo cáo hoạt động với dữ liệu bảo mật thông tin hiện tại và nhận dữ liệu từ một nguồn khác - không cần lập trình.

Nếu không có hệ thống kiểm soát truy cập, dữ liệu bên ngoài sẽ được lấy theo chương trình chứ không phải theo cách tầm thường nhất.

Nếu bạn muốn làm chủ ACS một cách chuyên nghiệp và hàng ngày áp dụng vào công việc của bạn, đăng ký khóa học:

Ủng hộ - 2 tháng. Phạm vi khóa học – 34 giờ giảng dạy.

Đừng trì hoãn việc học của bạn!

Điều khó khăn nhất khi sử dụng bố cục là điền vào cột “Bố cục” trên tab “Bố cục” trong trình thiết kế ACS.

Có thông tin tốt về bản chất về vấn đề này. Nó giúp bạn hiểu các nguyên tắc cơ bản. Tuy nhiên, mỗi khi bạn phải thử nghiệm các loại bố cục khác nhau để hiểu liệu một vấn đề cụ thể có thể được giải quyết bằng công cụ này hay không. Vì vậy, tôi nảy ra ý tưởng đăng kết quả thí nghiệm dưới dạng một bài viết để sau này có thể tham khảo và tiết kiệm thời gian sau này. Bạn không cần phải đọc văn bản, chỉ cần lướt nhanh qua ảnh chụp màn hình để chọn kiểu bố cục phù hợp nhất với nhiệm vụ trước mắt
Trong bài viết tôi sẽ lặp lại một chút tài liệu tham khảo đã đề cập để trình bày một số chi tiết quan trọng bằng ngôn ngữ cụ thể và dễ hiểu hơn.

Tôi đã tiến hành thử nghiệm trên loại báo cáo sau đây.

Bố cục trường

Bố cục này áp dụng cho một ô cụ thể, không giống như bố cục tiêu đề nhóm và nhóm áp dụng cho toàn bộ hàng.
Nó có thể được áp dụng để nhóm các trường và trường tài nguyên


Bố cục tiêu đề nhóm

Kiểu bố cục này, như đã đề cập ở trên, được áp dụng cho toàn bộ hàng tiêu đề.

Cài đặt

Nếu bạn gán nó vào nhóm trên cùng, nó sẽ được áp dụng cho toàn bộ tiêu đề của bảng báo cáo. Như bạn có thể thấy trong hình, tiêu đề của các nhóm còn lại cũng như tiêu đề tài nguyên đều bị ẩn. Vì vậy, những tiêu đề này phải được hoàn thành bằng tay. Đôi khi điều này là bắt buộc, chẳng hạn như để kết hợp các ô trong tiêu đề

Cài đặt

Thông thường sẽ vô nghĩa khi sử dụng cách bố trí này cho các nhóm ở cấp độ thứ hai và thấp hơn, bởi vì kết quả thu được có thể được áp dụng ở một số nơi

Cài đặt

Tuy nhiên, nếu bạn chỉ định chiều cao là 1 cho hàng bố cục, bạn có thể ẩn tiêu đề nhóm của cấp hiện tại và cấp tiếp theo. Trong hình bên dưới, tiêu đề Chức vụ và Nhân viên bị ẩn.

Cũng đáng chú ý là việc sử dụng kiểu bố cục Footer, ví dụ như để hiển thị người ký.

Cài đặt

Sử dụng các loại Tổng cộng, theo như tôi hiểu thì chúng không ảnh hưởng gì cả. Tôi không thể tạo cài đặt với các loại này để áp dụng


Bố cục nhóm

Bố cục này áp dụng cho toàn bộ hàng nhóm. Nó có thể được sử dụng cho một số nhiệm vụ điển hình, mặc dù không dễ để tìm ra cách sử dụng nó

Nếu bạn áp dụng bố cục này cho nhóm trên cùng có loại Tiêu đề thì tiêu đề bảng sẽ được lặp lại trong mỗi nhóm. Bố cục này có ý nghĩa trong trường hợp, ví dụ: bạn cần chèn ngắt trang trước mỗi nhóm

Cài đặt

Nếu chúng ta áp dụng sơ đồ này để nhóm cấp thấp hơn, chúng ta sẽ nhận được điều này:

Hoặc nếu bạn điền đầy đủ các cột thì nó sẽ như thế này

Nếu phát sinh nhiệm vụ thay đổi footer bằng tổng thì các bạn cần sử dụng bố cục này với kiểu Tổng tầng hầm hoặc Tổng tiêu đề. Theo tôi hiểu thì 2 kiểu bố cục này đều làm điều tương tự

Cài đặt

Bố cục tài nguyên

Bố cục chỉ được sử dụng cho BẢNG. Nó được áp dụng tại giao điểm của các nhóm được chỉ định trong cài đặt

Cài đặt


Hạn chế về bố cục

  1. Trong nhiều trường hợp, khi sử dụng bố cục, khả năng tùy chỉnh báo cáo của người dùng sẽ bị mất. Anh ta sẽ không thể thay đổi thứ tự các tài nguyên và nhóm, hoặc vô hiệu hóa các tài nguyên và nhóm, bởi vì trong trường hợp này, báo cáo có một hình thức khó hiểu. Lỗ hổng này không chỉ áp dụng cho bố cục trường.
  2. Không có cách nào CHỈ thiết kế tiêu đề của tài nguyên (hoặc nhóm tài nguyên) mong muốn bằng cách sử dụng bố cục. Ví dụ: nếu bạn cần căn giữa các tiêu đề tài nguyên. Bạn sẽ phải điền đầy đủ toàn bộ tiêu đề bảng và nhận ràng buộc từ bước 1
  3. Không thể CHỈ thiết kế tiêu đề của kết quả. Ví dụ, nhiều lần cần phải thay từ “Tổng” bằng từ “Tổng”. Trong trường hợp này, bạn sẽ phải vẽ toàn bộ hàng tổng và lấy ràng buộc từ bước 1 hoặc nghĩ ra cách khác.

Các tập tin

Tất cả các ví dụ được mô tả ở trên đều được đính kèm vào bài viết dưới dạng tệp có thể tải xuống. Nó chứa một bảng điều khiển ACS với một bộ mạch (được tích hợp trong đó). Các truy vấn trong ví dụ không truy cập vào bảng cơ sở dữ liệu, vì vậy các ví dụ này chạy trên bất kỳ cấu hình nào ở chế độ ứng dụng được quản lý.


TRONG

Hãy tạo một báo cáo bên ngoài hiển thị thông tin báo cáo về số dư mặt hàng và doanh thu của nó. Thông tin cần thiết được yêu cầu yêu cầu bằng cách sử dụng tập dữ liệu thuộc loại "Yêu cầu", chứa văn bản yêu cầu:
CHỌN
_DemoNomenclature.Link HOW Danh pháp
PLACE Danh pháp hiện tại
TỪ
Directory._DemoNomenclature CÁCH _DemoNomenclature
Ở ĐÂU
KHÔNG _DemoNomenclature.Deletion Mark
VÀ KHÔNG _DemoNomenclature. Đây là một Nhóm
;

////////////////////////////////////////////////////////////////////////////////
CHỌN
Danh pháp hiện tại. Danh pháp,
_Bản demo Hàng tồn kho tại nơi lưu trữ Hàng tồn kho và doanh thu. Nơi lưu trữ,
_DemoHàng còn lại tại vị trí lưu trữRemainingsAndTurnover.QuantityInitialRemaining,
_DemoHàng hóa còn lại tại các vị trí lưu trữRemainingsAndTurnover.QuantityFinalRemaining,
_DemoHàng còn lại tại vị trí lưu trữRemainingsAndTurnover.QuantityIncoming,
_DemoHàng còn lại tại nơi lưu trữRemainingsAndTurnover.QuantityConsumption,
_DemoHàng hóa còn lại tại địa điểm lưu trữRemainingsAndTurnover.QuantityTurnover
TỪ
Danh pháp hiện tại NHƯ Danh pháp hiện tại
KẾT NỐI TRÁI Đăng ký Tích lũy._Demo Hàng hóa còn lại trongStorageLocations.RemainingsAndTurnover AS _DemoRemainingGoodsInStorageLocationsRemainingAndTurnover
Phần mềm CurrentNomenclature.Nomenclature = _DemoHàng hóa còn lại tại các vị trí lưu trữRemainingsAndTurnover.Nomenclature

Kết quả là báo cáo chứa các trường sau (xem Hình 1):

Vì thông tin được lấy từ bảng ảo "Số dư và Doanh thu", nên ACS sẽ tự động tạo hai tham số dữ liệu, Đầu kỳ và Cuối kỳ, cần thiết để đặt giới hạn cho khoảng thời gian lấy mẫu dữ liệu. Tôi không muốn làm việc trực tiếp với các tham số như vậy mà đặt giá trị của chúng thông qua một tham số khác sẽ có sẵn cho người dùng chỉnh sửa (xem Hình 2).
Báo cáo hoàn thành tốt nhiệm vụ của mình nhưng tiêu đề của báo cáo khá khô khan. Trong quá trình làm việc, tôi đã tìm ra một số cách để thiết kế tiêu đề báo cáo:

  1. Thiết lập tiêu đề trường trên tab "Tập dữ liệu" ACS;
  2. Thiết lập tiêu đề trường trên tab "Cài đặt" ACS;
  3. Cài đặt theo chương trình của tiêu đề trường;
  4. Đặt tiêu đề báo cáo bằng cách sử dụng bố cục;
  5. Hoàn thiện kết quả (tài liệu dạng bảng);
Chúng ta hãy xem xét chúng một cách chi tiết.

1. Thiết lập tiêu đề trên tab "Bộ dữ liệu" ACS

Mọi thứ ở đây đều đơn giản, hãy chọn hộp bên cạnh thuộc tính trường “Tiêu đề” (tức là hủy tiêu đề tự động) và nhập văn bản tiêu đề được yêu cầu (xem Hình 4).
Nếu bạn cần đặt thiết kế cho toàn bộ trường chứ không chỉ cho tiêu đề của nó, thì có thuộc tính trường “Thiết kế”, trong đó bạn có thể đặt một số thiết kế cho trường, ví dụ: thay đổi phông chữ hoặc đặt nền màu sắc (xem Hình 5).
Đây là nơi kết thúc kiến ​​thức của tôi về tab “Tập dữ liệu”.

2. Thiết lập tiêu đề trường trên tab "Cài đặt" ACS

Để đặt tiêu đề trường, bạn cần chọn trường mong muốn, nhấp chuột phải để mở menu ngữ cảnh và chọn “Đặt tiêu đề” (xem Hình 6)
Để nhóm các trường (ví dụ: theo loại thông tin), bạn cần thêm một trường nhóm và đặt các trường bắt buộc vào đó (xem Hình 7), việc lồng nhau là không giới hạn.
Bạn cũng có thể thử nghiệm với thuộc tính trường nhóm “Vị trí”, xác định loại nhóm trường.

Những hành động này cũng có thể được thực hiện ở chế độ 1C:Doanh nghiệp bằng cách mở cài đặt báo cáo, NHƯNG, mục “Trường đã chọn” phải được bao gồm trong cài đặt báo cáo (xem Hình 8).
Điều này hoàn thành phần dễ dàng trong việc thiết lập tiêu đề báo cáo. Một trong những ưu điểm của các hành động trên: tất cả thiết lập được thực hiện bằng các công cụ tiêu chuẩn. Trong số các điểm hạn chế: không có khả năng đặt tiêu đề trường nhiều dòng.

3. Đặt tiêu đề trường theo chương trình

Nền tảng này cho phép bạn đặt các tiêu đề trường theo chương trình, hơn nữa, đặt các tiêu đề trường nhiều dòng, từ đó giúp bạn có thể đặt các tiêu đề trường một cách linh hoạt và linh hoạt khi tạo báo cáo.

Để làm điều này, chúng tôi sẽ xác định một quy trình trong mô-đun báo cáo Khi đưa ra kết quả. Trong quy trình này, chúng tôi sẽ viết mã để đặt tiêu đề trường.

// 1. Nhận cài đặt người dùng.
Cài đặtKD = ThisObject.SettingsLitter.GetSettings();

// 2. Chúng ta lấy giá trị của tham số "Period" từ đó chúng ta xác định ngày bắt đầu và ngày kết thúc của khoảng thời gian.
ParameterPeriod = NewDataCompositionParameter("Period");
Khoảng thời gian = Cài đặtCD.DataParameters.FindParameterValue(PeriodParameter).Value;
StartPeriod = Period.StartDate;
EndPeriod = Period.EndDate;

// 3. Chuẩn bị thông tin về việc xác định lại tiêu đề trường. Để làm điều này, hãy tạo
// một mảng sẽ chứa thông tin: FieldName - các giá trị của thuộc tính "Path" trong
// tập dữ liệu (xem Hình 1), Title - văn bản tiêu đề.
FieldList = Mảng mới;
pagePeriodStart = Format(PeriodStart, "DF=dd.MM.yyyy; DP="Ngày trống"");
FieldInitialRemaining = Cấu trúc mới("FieldName, Heading", "QuantityInitialRemaining", "Remaining on " + Symbols.PS + pageBeginningPeriod);
Danh sáchFields.Add(FieldInitialRemaining);
strEndPeriod = Format(EndPeriod, "DF=dd.MM.yyyy; DP="Ngày trống"");
FieldFinalRemaining = Cấu trúc mới("FieldName, Heading", "QuantityFinalRemaining", "Remaining on " + Symbols.PS + strEndPeriod);
FieldList.Add(FieldFinalRemaining);

// 4. Lấy danh sách các trường trong nhóm "Remaining" (xem Hình 7) và
// đặt tiêu đề mới bằng cách duyệt qua các phần tử trong vòng lặp.
SelectedFields = Cài đặtCD.Selection.Items; // Cấp độ đầu tiên của trường.
SelectedFieldsRemains = SelectedFields.Items; // Vẫn giữ nguyên các trường nhóm.
Đối với mỗi SelectedField từ SelectedFieldsRemainders Cycle
Đối với mỗi phần tử của một mảng từ một chu trình danh sách các trường
LayoutField = NewDataCompositionField(ArrayItem.FieldName);
Nếu SelectedField.Field = LayoutField thì
SelectedField.Header = ArrayItem.Header;
endIf;
Chu kỳ cuối;
Chu kỳ cuối;

// 5. Tải lại cài đặt người dùng đã thay đổi.
ThisObject.SettingsLinker.LoadSettings(CDSettings);

Báo cáo kết quả (xem Hình 10):
Phương pháp này khó hơn tất cả các phương pháp trên, nhưng tôi thích nó.

4. Đặt tiêu đề báo cáo bằng bố cục

Để tùy chỉnh linh hoạt hơn giao diện báo cáo, ACS cung cấp tính năng tạo bố cục. Trong cài đặt báo cáo, chúng tôi sẽ tạo một nhóm “bản ghi chi tiết” khác và đặt tên “DZ Line” cho nhóm này (xem Hình 11).
Trên tab Bố cục, thêm bố cục tiêu đề nhóm. Đối với bố cục trong tài liệu bảng tính, chúng tôi sẽ tạo tiêu đề báo cáo (tiêu đề báo cáo phải chứa số tiêu đề trường bằng số lượng trường mà bản ghi chi tiết hiển thị) và chỉ ra khu vực của tài liệu bảng tính cho bố cục (xem Hình 12).
Kết quả là báo cáo có tiêu đề sau (xem Hình 13):

Hình 13. Bố cục ACS làm tiêu đề báo cáo
Theo tôi, bố cục có một nhược điểm lớn: không có khả năng thích ứng với một nhóm người dùng nhất định, vì vậy chúng nên được sử dụng nếu biểu mẫu báo cáo được quy định và không thể thay đổi. Hãy thử thiết lập một nhóm cho nhóm “LineDZ” và bạn sẽ thấy bố cục bị nhầm lẫn.

Trang web hỗ trợ công nghệ thông tin có bài viết Sử dụng bố cục được xác định trước, mô tả chi tiết cách sử dụng bố cục trong hệ thống kiểm soát truy cập.

5. Quyết toán kết quả (tài liệu dạng bảng)

Phương pháp này sử dụng phương pháp tài liệu bảng tính tuyệt vời Tìm văn bản(), nhưng để sử dụng phương pháp này, bạn cần tắt quá trình xử lý tiêu chuẩn để tạo kết quả báo cáo.

Bắt đầu nào. Chúng tôi vô hiệu hóa việc tạo tiêu chuẩn để thực hiện việc này trong mô-đun báo cáo cho sự kiện Khi đưa ra kết quả Hãy đặt biến StandardProcessing thành Sai và viết bố cục kết quả của riêng chúng ta:
Xử lý tiêu chuẩn = Sai;
LayoutLinker = newDataLayoutLayoutLinker;
LayoutLayout = LayoutLocker.Execute(
ThisObject.DataCompositionSchema,
ThisObject.SettingsLinker.Settings,
Dữ liệu giải mã);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout, DecryptionData, True);
OutputProcessor = OutputProcessorDataCompositionResultInTabularDocument mới;
OutputProcessor.SetDocument(DocumentResult);
OutputProcessor.Output(CompositionProcessor);
Bố cục phần mềm báo cáo kết quả được mô tả chi tiết hơn trong bài viết

Kết quả được biên dịch sẽ xuất ra tài liệu bảng tính - đây là biến DocumentResult. Tiếp theo, sau khi tạo kết quả và xuất ra tài liệu bảng tính, chúng ta viết mã để thay thế văn bản ô này bằng văn bản khác. Ví dụ: hãy thay đổi tên của nhóm “Remainings” thành “Remaining items” trong tiêu đề báo cáo (xem Hình 14):
Ô = DocumentResult.FindText("Phần còn lại");
Nếu ô<>Không xác định
Cell.Text = "Các mục còn lại";
endIf;

Bạn cũng có thể đặt định dạng cho ô tìm thấy; xem thuộc tính ô của tài liệu bảng tính trong trợ lý cú pháp.

Tôi mới phát hiện ra phương pháp này gần đây; nó đơn giản và cho phép bạn làm việc rất linh hoạt với tiêu đề báo cáo, điều chính là văn bản trong ô có văn bản duy nhất.

tái bút Có thể bạn có cách khác để thiết kế tiêu đề trường?

Trong bài viết này, tôi muốn nói về những sắc thái mà tôi gặp phải khi phát triển một báo cáo về hệ thống kiểm soát truy cập, chính xác hơn là quản lý giao diện của bố cục báo cáo và các giải pháp mà tôi đã áp dụng cho chúng.

Tôi biết rằng bố cục trong ACS có thể được thay thế (thay đổi) bằng cách sử dụng mã hóa trực tiếp trong biểu mẫu báo cáo, nhưng đối với tôi, điều quan trọng về cơ bản là thực hiện các thay đổi trong ACS mà không cần dùng đến mã hóa.

Nội dung truy vấn trong báo cáo như sau:

CHỌN mục. Tên gọi, danh pháp. Mã, Danh pháp. Đơn vị đo lường cơ bản, Danh pháp. Đơn vị đo Vị trí, Danh pháp. Đơn vị lưu trữ cặn, danh pháp. UnitForReports, Danh pháp. Bình luận, Danh pháp. Điều, Danh pháp. Liên kết CÁCH Danh pháp TỪ Thư mục. Danh pháp NHƯ Danh pháp KHÔNG CÓ Danh pháp. Nhóm này

Điểm 1. Báo cáo tùy tiện và tiêu đề cột.


Theo mặc định, ACS có khả năng hiển thị văn bản tiêu đề tùy ý. Điều này được thực hiện trong cài đặt ACS:

ở đầu ra chúng tôi nhận được:

Nhưng nếu tiêu đề báo cáo và cột phải tùy ý thì tùy chọn này không phù hợp. Vì vậy tôi đã làm như sau:

Chỉ định tên cho hồ sơ chi tiết:


Tôi đã vẽ bố cục tôi cần trong SKD

Ở đó, trên tab “Bố cục”, tôi đã vạch ra ranh giới của bố cục tiêu đề nhóm:

và chỉ ra tên nhóm:

sau đó tôi chỉ định vùng bố cục cần hiển thị trong tiêu đề báo cáo:

Nếu bạn tạo một báo cáo thì:

không chính xác những gì tôi muốn nhận được Đối với bản thân tôi, tôi đã tìm ra cách giải quyết vấn đề này - tôi đã tạo màu nền và khung của vùng bố cục, đó là tiêu đề báo cáo, màu trắng:

và đầu ra là loại báo cáo mong muốn:

Điểm 2. Giải mã miễn phí các trường báo cáo.

Nhiệm vụ như sau: khi bạn nhấp đúp vào trường “Bài viết”, bạn có thể mở thẻ vật phẩm đã tạo ra dòng này.

Trong báo cáo trên, nếu click đúp vào trường bất kỳ sẽ không mở được thẻ vật phẩm:

Ví dụ: nếu bạn nhấp vào trường “Bài viết”, chúng tôi sẽ nhận được thông tin sau:

Giải pháp là:

Thêm bố cục trường:

cho biết trường (Bài viết), khi nhấp vào, thẻ mục sẽ mở ra:

trong bố cục, điền vào bất kỳ trường trống nào bằng văn bản “Bài viết”, trong các thuộc tính chỉ ra - Điền = “Tham số”, Tham số giải mã = ​​“Giải mã danh pháp”:

và chỉ định bố cục trường khu vực trường này:

Sau này, các tùy chọn bố cục sẽ xuất hiện:

Trong các tham số này, chúng tôi chỉ định biểu thức cho “Danh pháp giải mã”, trong trường hợp của tôi đây là liên kết đến danh pháp:


Chúng tôi có cơ hội mở thẻ sản phẩm bằng cách nhấp vào trường “Bài viết”:

Tôi nghĩ sẽ có những nhà phát triển gặp phải những vấn đề tương tự và giải quyết chúng theo những cách khác, nhưng đó là một bài viết khác...

Báo cáo dựa trên các sự kiện có thật; hình thức, văn bản truy vấn và tên cột đã được thay đổi vì lợi ích của bài viết.