Chia sẻ qua


Tìm hiểu các tham chiếu bản ghi và bảng tra cứu đa hình trong ứng dụng canvas

Khi viết một bài nghiên cứu ở trường, bạn có thể cung cấp danh sách các tham chiếu ở phần cuối. Bạn không bao gồm bản sao tài liệu nền thực tế mà mình đã sử dụng, ngoại trừ liên kết web, tiêu đề sách và tác giả hoặc thông tin khác để ai đó có thể theo dõi nguồn gốc. Bạn đã kết hợp nhiều loại nguồn khác nhau trong một danh sách duy nhất, các bài báo bên cạnh bản ghi âm, mỗi bài đi kèm thông tin chi tiết cụ thể riêng nhằm mục đích trích dẫn phù hợp. Ví dụ, các bài viết trên Wikipedia thường bao gồm một danh sách dài các tài liệu tham khảo .

Trong ứng dụng canvas, bạn thường làm việc với các bản sao bản ghi được tải xuống từ nhiều nguồn dữ liệu. Bạn sử dụng các chức năng LookUpFilter và thuộc tính Selected của điều khiển Gallery để xác định bản ghi cụ thể mà bạn muốn. Tất cả các bản ghi từ Lọc hoặc Đã chọn sẽ có cùng loại bảng, do đó bạn có thể sử dụng các trường với ký hiệu .Trường đơn giản. Các bản sao này thường bao gồm thông tin tham khảo để bạn có thể sử dụng chức năng Bản vá để cập nhật nguồn gốc.

Ứng dụng Canvas cũng hỗ trợ ghi lại tham chiếu. Giống như bản ghi nghiên cứu bằng giấy, tham chiếu bản ghi dùng để chỉ một bản ghi mà không bao gồm một bản ghi hoàn chỉnh của bản ghi đó. Tham chiếu như vậy có thể tham chiếu đến một bản ghi trong bất kỳ bảng nào. Cũng giống như tài liệu tham khảo nghiên cứu, bạn có thể kết hợp các bản ghi từ các bảng khác nhau trong một cột duy nhất.

Nhiều thao tác trên tham chiếu bản ghi giống như như cách làm việc với bản ghi. Bạn có thể so sánh các tham chiếu bản ghi với nhau và với bản ghi đầy đủ. Bạn có thể thiết lập giá trị tham chiếu bản ghi bằng hàm Patch giống như cách bạn thực hiện tra cứu với bản ghi đầy đủ.

Có một sự khác biệt quan trọng về cách sử dụng: bạn không thể truy cập trực tiếp vào các trường của tham chiếu bản ghi mà không thiết lập trước nó tham chiếu đến bảng nào. Điều này là do ứng dụng canvas yêu cầu tất cả các loại đều phải được nhận biết khi bạn viết công thức. Vì bạn không biết loại tham chiếu bản ghi cho đến khi ứng dụng đang chạy nên bạn không thể sử dụng ký hiệu .Trường đơn giản trực tiếp. Trước tiên, bạn phải xác định kiểu bảng một cách động bằng hàm IsType và sau đó sử dụng ký hiệu .Field trên kết quả của hàm AsType .

Kiểu bảng đề cập đến lược đồ của từng bản ghi trong một bảng. Mỗi bảng có một nhóm trường duy nhất với các tên và kiểu dữ liệu khác nhau. Mỗi bản ghi của bảng kế thừa cấu trúc đó; hai bản ghi có cùng loại bảng nếu chúng đến từ cùng một bảng.

Lưu ý

Bạn có thể chọn từ nhiều trình kết nối khác nhau để kết nối với các loại nguồn dữ liệu khác nhau cho ứng dụng canvas. Tuy nhiên, khi làm việc với các ứng dụng canvas bên trong Power Apps Studio, các cột trong Microsoft Dataverse được gọi là trường tương tự như tất cả các nguồn dữ liệu khác. Column chỉ được sử dụng khi tham chiếu đến một cột bên trong Dataverse. Thông tin thêm: Dataverse cập nhật thuật ngữ

Bảng tra cứu đa hình

Microsoft Dataverse hỗ trợ mối quan hệ giữa các bản ghi. Mỗi bản ghi trong bảng Tài khoản có một cột tra cứu Liên hệ chính đến một bản ghi trong bảng Liên hệ . Tra cứu chỉ có thể tham chiếu đến một bản ghi trong Danh bạ và không thể tham chiếu đến một bản ghi trong, chẳng hạn như bảng Nhóm . Chi tiết cuối cùng đó rất quan trọng vì bạn luôn biết những cột nào sẽ có sẵn để tra cứu.

Dataverse cũng hỗ trợ tra cứu đa hình, có thể tham chiếu đến một bản ghi từ bất kỳ bảng nào trong một tập hợp. Ví dụ, cột Chủ sở hữu có thể tham chiếu đến một bản ghi trong bảng Người dùng hoặc bảng Nhóm . Cùng một cột tra cứu trong các bản ghi khác nhau có thể tham chiếu đến các bản ghi trong các bảng khác nhau. Trong trường hợp này, bạn không phải lúc nào cũng biết những cột nào sẽ có sẵn.

Các tham chiếu bản ghi canvas được thiết kế để làm việc với các bảng tra cứu đa hình trong Dataverse. Bạn cũng có thể dùng các tham chiếu bản ghi ngoài ngữ cảnh này, đó là cách hai khái niệm khác biệt nhau.

Ở phần tiếp theo, bạn sẽ bắt đầu khám phá những khái niệm này bằng cách sử dụng tra cứu Chủ sở hữu .

Hiển thị các cột của chủ sở hữu bản ghi

Mỗi bảng trong Dataverse bao gồm một cột Chủ sở hữu . Không thể xóa cột này, bạn không thể thêm cột khác và cột này luôn yêu cầu một giá trị.

Để hiển thị cột đó trong bảng Tài khoản :

  1. đăng nhập vào Power Apps.

  2. Trong thanh ngăn bên trái, chọn Dữ liệu>Bảng.

  3. Trong danh sách bảng, chọn Tài khoản.

  4. Ở góc trên bên phải, mở danh sách bộ lọc (được đặt thành Mặc định theo mặc định), sau đó chọn Tất cả.

  5. Cuộn xuống cho đến khi cột Chủ sở hữu xuất hiện.

    Cột chủ sở hữu trên bảng Tài khoản.

Cột tra cứu này có thể tham chiếu đến một bản ghi từ bảng Nhóm hoặc bảng Người dùng . Không phải mọi bản ghi trong các bảng này đều có quyền là Chủ sở hữu; hãy kiểm tra các vai trò được hỗ trợ nếu bạn gặp phải sự cố.

Đồ họa này hiển thị một thư viện đơn giản về Tài khoản, trong đó bảng Tài khoản đã được thêm vào ứng dụng dưới dạng nguồn dữ liệu:

Tài khoản được hiển thị trong điều khiển Thư viện.

Quan trọng

Xuyên suốt chủ đề này, các đồ họa sẽ hiển thị một số tên và các giá trị khác không phải là một phần của dữ liệu mẫu đi kèm Dataverse. Các bước biểu thị chính xác cách đặt cấu hình các kiểm soát cho một kết quả cụ thể. Tuy nhiên, trải nghiệm của bạn sẽ thay đổi dựa trên dữ liệu cho tổ chức của bạn.

Để hiển thị chủ sở hữu của từng tài khoản trong thư viện, bạn có thể sử dụng công thức ThisItem.Owner.Name. Tuy nhiên, trường tên trong bảng NhómTên nhóm, và trường tên trong bảng Người dùngHọ và tên. Ứng dụng không thể biết bạn đang sử dụng loại tra cứu nào cho đến khi bạn chạy ứng dụng và loại tra cứu này có thể thay đổi giữa các bản ghi trong bảng Tài khoản .

Bạn cần một công thức có thể đáp ứng sự thay đổi này. Bạn cũng cần thêm nguồn dữ liệu cho các loại bảng mà Chủ sở hữu có thể là (trong trường hợp này là Người dùngNhóm). Thêm ba nguồn dữ liệu nào vào ứng dụng của bạn:

Bảng Tài khoản, Nhóm và Người dùng trong ngăn Dữ liệu.

Khi có sẵn những loại dữ liệu này, hãy sử dụng công thực này để hiển thị tên của người dùng hoặc nhóm:

If( IsType( ThisItem.Owner, Teams ),
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Tài khoản được hiển thị trong điều khiển Thư viện với trường Chủ sở hữu được hiển thị.

Trong công thức này, hàm IsType kiểm tra trường Owner so với bảng Teams . Nếu nó thuộc loại bảng đó, hàm AsType sẽ chuyển nó thành một bản ghi Team . Tại thời điểm này, bạn có thể truy cập tất cả các trường của bảng Teams , bao gồm Team Name, bằng cách sử dụng ký hiệu .Field . Nếu IsType xác định rằng Owner không phải là bản ghi trong bảng Teams , trường đó phải là bản ghi trong bảng Users vì trường Owner là trường bắt buộc (không được để trống).

Để sử dụng bất kỳ trường nào của tham chiếu bản ghi, trước tiên bạn phải sử dụng hàm AsType để chuyển đổi nó thành một loại bảng cụ thể. Bạn không thể truy cập các trường trực tiếp từ trường Chủ sở hữu vì hệ thống không biết bạn muốn sử dụng loại bảng nào.

Hàm AsType trả về lỗi nếu trường Owner không khớp với loại bảng đang được yêu cầu, do đó bạn có thể sử dụng hàm IfError để đơn giản hóa công thức này. Đầu tiên, hãy bật tính năng thử nghiệm Quản lý lỗi cấp công thức:

Chuyển đổi sang thử nghiệm để bật tính năng quản lý lỗi cấp công thức.

Sau đó, thay thế công thức trước đó bằng công thức sau:

IfError(
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Bộ lọc dựa trên chủ sở hữu

Xin chúc mừng! Bạn đã hoàn thành khía cạnh khó nhất khi làm việc với một tham chiếu bản ghi. Các trường hợp sử dụng khác đơn giản hơn do chúng không truy cập vào các trường của bản ghi. Chẳng hạn, hãy tiến hành lọc. Đó là điều bạn sẽ tìm hiểu trong phần này.

Thêm một điều khiển Hộp kết hợp phía trên thư viện và thiết lập các thuộc tính sau cho điều khiển mới:

  • Các mục: Users
  • ChọnNhiều: false

Đã thêm điều khiển hộp kết hợp phía trên thư viện với thuộc tính Mục được đặt thành Người dùng.

Để lọc thư viện theo người dùng cụ thể được chọn từ hộp kết hợp này, hãy đặt thuộc tính Mục của thư viện theo công thức sau:

Filter( Accounts, Owner = ComboBox1.Selected )

Bộ sưu tập được lọc dựa trên giá trị được đặt trong điều khiển hộp kết hợp.

Quan trọng

Các hướng dẫn trong chủ đề này là chính xác nếu bạn làm theo chính xác các bước. Tuy nhiên, mọi công thức tham chiếu một kiểm soát theo tên đều thất bại nếu kiểm soát có tên khác. Nếu bạn xóa và thêm kiểm soát thuộc cùng một loại, thì số ở cuối tên của kiểm soát sẽ thay đổi. Đối với mọi công thức hiển thị một lỗi, hãy xác nhận rằng công thức đó chứa tên chính xác của tất cả kiểm soát.

Bạn không cần phải sử dụng IsType hoặc AsType vì bạn đang so sánh các tham chiếu bản ghi với các tham chiếu bản ghi khác hoặc với các bản ghi đầy đủ. Ứng dụng biết loại bảng của ComboBox1.Selected vì nó được lấy từ bảng Users . Tài khoản mà chủ sở hữu là một nhóm không khớp với tiêu chí lọc.

Bạn có thể thấy phấn khích một chút bằng cách hỗ trợ lọc theo người dùng hoặc theo nhóm.

  1. Tạo một khoảng trống gần đầu màn hình bằng cách thay đổi kích thước thư viện và di chuyển hộp kết hợp, chèn một Radio control phía trên thư viện, sau đó đặt các thuộc tính này cho điều khiển mới:

    • Các mục: [ "All", "Users", "Teams" ]
    • Bố cục: Layout.Horizontal
  2. Đối với điều khiển Hộp kết hợp , hãy đặt thuộc tính này (nếu hộp kết hợp biến mất, hãy chọn Người dùng trong điều khiển vô tuyến):

    • Có thể nhìn thấy: Radio1.Selected.Value = "Users"
  3. Sao chép và dán điều khiển Hộp kết hợp , di chuyển bản sao trực tiếp lên bản gốc, sau đó đặt các thuộc tính sau cho bản sao:

    • Mục: Teams
    • Có thể nhìn thấy: Radio1.Selected.Value = "Teams"

    Ứng dụng sẽ chỉ hiển thị mỗi lần một hộp tổ hợp, tùy vào trạng thái của kiểm soát radio. Do nằm ngay trên nhau, nên chúng sẽ có cùng kiểm soát mà thay đổi nội dung.

  4. Cuối cùng, đặt thuộc tính Items của điều khiển Gallery thành công thức này:

    Filter( Accounts,
        Radio1.Selected.Value = "All"
        Or (Radio1.Selected.Value = "Users" And Owner = ComboBox1.Selected)
        Or (Radio1.Selected.Value = "Teams" And Owner = ComboBox1_1.Selected)
    )
    

    Thư viện được lọc hiển thị tất cả hồ sơ hoặc một người dùng hoặc nhóm cụ thể.

Với những thay đổi này, bạn có thể hiển thị tất cả bản ghi hoặc lọc chúng dựa trên một người dùng hoặc nhóm:

Hình ảnh động hiển thị các kết quả được lọc khác nhau dựa trên hộp điều khiển vô tuyến và hộp kết hợp.

Công thức hoàn toàn có thể ủy nhiệm. Tỷ lệ so sánh giá trị nút radio là một hằng số trên tất cả các bản ghi và được đánh giá trước khi phần còn lại của bộ lọc được gửi tới Dataverse.

Nếu bạn muốn lọc theo loại chủ sở hữu, bạn có thể sử dụng hàm IsType , nhưng hàm này vẫn chưa thể ủy quyền được.

Lọc theo loại chủ sở hữu bằng cách sử dụng IsType.

Cập nhật chủ sở hữu bằng cách dùng Bản vá

Bạn có thể cập nhật trường Chủ sở hữu theo cách tương tự như bất kỳ tra cứu nào khác. Cách đặt chủ sở hữu của tài liệu hiện được chọn vào nhóm đầu tiên:

Patch( Accounts, Gallery1.Selected, { Owner: First( Teams ) } )

Cách tiếp cận này không khác gì tra cứu thông thường vì ứng dụng biết loại Đội đầu tiên. Nếu bạn muốn người dùng đầu tiên, hãy thay thế phần đó bằng Người dùng đầu tiên. Hàm Patch biết rằng trường Chủ sở hữu có thể được đặt thành một trong hai loại bảng này.

Cách thêm khả năng này vào ứng dụng:

  1. Trong ngăn Chế độ xem cây , hãy chọn điều khiển Radio và hai điều khiển Hộp kết hợp cùng một lúc.

  2. Trên menu dấu ba chấm, chọn Sao chép các mục này.

    Sao chép nhiều điều khiển bằng cách sử dụng chế độ xem cây.

  3. Trên cùng menu đó, chọn Dán.

    Dán nhiều điều khiển bằng chế độ xem cây.

  4. Di chuyển các kiểm soát đã sao chép sang bên phải thư viện.

    Di chuyển các điều khiển đã sao chép sang bên phải của thư viện.

  5. Chọn điều khiển Radio đã sao chép, sau đó thay đổi các thuộc tính sau:

    • Mặt hàng: [ "Users", "Teams" ]
    • Mặc định: If( IsType( Gallery1.Selected.Owner, Users ), "Users", "Teams" )

    Đã xóa tất cả các lựa chọn khỏi điều khiển vô tuyến.

  6. Trong điều khiển Radio , chọn Users để điều khiển Hộp kết hợp liệt kê người dùng có thể nhìn thấy được.

  7. Chọn điều khiển Hộp kết hợp có thể nhìn thấy, sau đó đặt thuộc tính DefaultSelectedItems thành công thức sau:

    If( IsType( Gallery1.Selected.Owner, Users ),
        AsType( Gallery1.Selected.Owner, Users ),
        Blank()
    )
    

    Thuộc tính mặc định được đặt cho hộp kết hợp Người dùng.

  8. Trong điều khiển Radio , hãy chọn Teams để điều khiển Combo box liệt kê các đội có thể nhìn thấy được.

  9. Chọn điều khiển Radio để bỏ lựa chọn khỏi điều khiển Hộp kết hợp hiện không hiển thị cho người dùng.

  10. Chọn điều khiển Hộp kết hợp có thể nhìn thấy cho các nhóm, sau đó đặt thuộc tính DefaultSelectedItems của nó thành công thức sau:

    If( IsType( Gallery1.Selected.Owner, Teams ),
        AsType( Gallery1.Selected.Owner, Teams ),
        Blank()
    )
    

    Thuộc tính mặc định được đặt cho hộp kết hợp Teams.

  11. Chèn một nút điều khiển , di chuyển nó xuống bên dưới nút điều khiển Hộp kết hợp , sau đó đặt thuộc tính Văn bản của nút thành . "Patch Owner"

  12. Đặt thuộc tính OnSelect của nút theo công thức này:

    Patch( Accounts, Gallery1.Selected,
        { Owner: If( Radio1_1.Selected.Value = "Users",
                     ComboBox1_2.Selected,
                     ComboBox1_3.Selected ) } )
    

    Công thức được thiết lập trên nút điều khiển.

Các nút điều khiển RadioHộp kết hợp được sao chép sẽ hiển thị chủ sở hữu của tài khoản hiện được chọn trong thư viện. Với cùng kiểm soát, bạn có thể đặt chủ sở hữu tài khoản cho nhóm hoặc người dùng bất kỳ bằng cách chọn nút:

Hình ảnh động hiển thị bản vá của Chủ sở hữu với Người dùng hoặc Nhóm.

Hiển thị chủ sở hữu bằng cách dùng biểu mẫu

Bạn có thể hiển thị trường Chủ sở hữu bên trong biểu mẫu bằng cách thêm thẻ tùy chỉnh. Tại thời điểm viết này, bạn không thể thay đổi giá trị của trường có kiểm soát biểu mẫu.

  1. Chèn một điều khiển Chỉnh sửa biểu mẫu , sau đó thay đổi kích thước và di chuyển nó đến góc dưới bên phải.

  2. Trên tab Thuộc tính gần phía bên phải màn hình, hãy mở danh sách Nguồn dữ liệu , sau đó chọn Tài khoản.

    Kiểm soát biểu mẫu hiển thị các trường bổ sung có giá trị trống.

  3. Đặt thuộc tính Mục của biểu mẫu thành Gallery1.Selected.

    Kiểm soát biểu mẫu hiển thị các trường bổ sung được điền từ mục đã chọn trong thư viện.

  4. Trên tab Thuộc tính gần phía bên phải màn hình, chọn Chỉnh sửa trường.

  5. Trong ngăn Trường , chọn dấu ba chấm, rồi chọn Thêm thẻ tùy chỉnh.

    Lệnh thêm thẻ tùy chỉnh.

    Thẻ mới xuất hiện ở cuối kiểm soát biểu mẫu.

  6. Đổi kích thước thẻ nếu cần để hiển thị tất cả văn bản.

    Đã chèn thẻ tùy chỉnh, để trống.

  7. Chèn điều khiển Nhãn vào thẻ tùy chỉnh, sau đó đặt thuộc tính Văn bản của nhãn thành công thức mà bạn đã sử dụng trong thư viện:

    If( IsType( ThisItem.Owner, Teams ),
        "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
        "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )
    

    Thẻ tùy chỉnh hiển thị trường Chủ sở hữu trong điều khiển nhãn.

Đối với mỗi lựa chọn trong thư viện, thêm nhiều trường của khách hàng, bao gồm cả chủ sở hữu của bản ghi, sẽ xuất hiện trong biểu mẫu. Nếu bạn thay đổi chủ sở hữu bằng cách sử dụng nút Bản vá , điều khiển biểu mẫu cũng hiển thị thay đổi đó.

Hình ảnh động hiển thị cách điều khiển biểu mẫu phản hồi với những thay đổi trong thư viện.

Hiển thị các cột của một khách hàng

Trong Dataverse, cột tra cứu Khách hàng là một tra cứu đa hình khác rất giống với Chủ sở hữu.

Chủ sở hữu bị giới hạn một cột cho mỗi bảng, nhưng các bảng có thể bao gồm không, một hoặc nhiều cột tra cứu Khách hàng . Bảng hệ thống Liên hệ bao gồm cột Tên công ty , đây là cột tra cứu Khách hàng .

Bảng liên hệ hiển thị cột Tên công ty dưới dạng loại dữ liệu Khách hàng không bắt buộc.

Bạn có thể thêm nhiều cột tra cứu Khách hàng vào một bảng bằng cách chọn kiểu dữ liệu Khách hàng cho một cột mới.

Loại dữ liệu Khách hàng từ danh sách các loại dữ liệu khi tạo cột.

Trường tra cứu Khách hàng có thể tham chiếu đến một bản ghi từ bảng Tài khoản hoặc bảng Liên hệ. Bạn sẽ sử dụng các hàm IsTypeAsType với các bảng này, vì vậy đây là thời điểm thích hợp để thêm chúng làm nguồn dữ liệu (bạn có thể giữ nguyên TeamsUsers tại chỗ).

Các bảng Tài khoản, Nhóm, Người dùng và Danh bạ trong ngăn Dữ liệu.

Việc xử lý các trường Khách hàngChủ sở hữu rất giống nhau đến mức bạn có thể sao chép ứng dụng (Tệp>Lưu thành, sau đó chỉ định một tên khác) và thực hiện các thay thế đơn giản sau:

Vị trí Chủ sở hữu mẫu Mẫu khách hàng
Trong suốt Người sở hữu 'Tên khách hàng'
Trong suốt Người sử dụng Tài khoản
Trong suốt Đội Liên hệ
Tài sản mục của Gallery Tài khoản Liên hệ
Thuộc tính Mục của biểu mẫu Tài khoản Liên hệ
Đối số đầu tiên của Patch
Trong thuộc tính OnSelect của nút
Tài khoản Liên hệ
Thuộc tính Mục của bộ lọc radio [ "Tất cả", "Người dùng", "Nhóm" ] [ "Tất cả", "Tài khoản", "Liên hệ" ]
Thuộc tính Items của radio vá [ "Người dùng", "Nhóm" ] [ "Tài khoản", "Liên hệ" ]
Thuộc tính Visible của hộp kết hợp "Người dùng""Nhóm" "Tài khoản""Danh bạ"

Ví dụ, thư viện ảnh mới phải có thuộc tính Mục này:

Filter( Contacts,
    Radio1.Selected.Value = "All"
    Or (Radio1.Selected.Value = "Accounts" And 'Company Name' = ComboBox1.Selected)
    Or (Radio1.Selected.Value = "Contacts" And 'Company Name' = ComboBox1_1.Selected)
)

Ứng dụng dành cho khách hàng được phát triển từ ứng dụng của Chủ sở hữu với một số thay đổi đơn giản được áp dụng.

Hai điểm khác biệt quan trọng giữa Khách hàngChủ sở hữu yêu cầu cập nhật các công thức bên trong thư viện và biểu mẫu:

  1. Mối quan hệ một-nhiều giữa Tài khoảnDanh bạ được ưu tiên khi bạn tham chiếu đến các loại bảng này theo tên. Thay vì Tài khoản, hãy sử dụng [@Tài khoản]; thay vì Danh bạ, hãy sử dụng [@Danh bạ]. Bằng cách sử dụng toán tử phân biệt toàn cục, bạn đảm bảo rằng bạn đang tham chiếu đến kiểu bảng trong IsTypeAsType. Vấn đề này chỉ tồn tại trong ngữ cảnh bản ghi của kiểm soát thư viện và biểu mẫu.

  2. Trường Chủ sở hữu phải có giá trị, nhưng trường Khách hàng có thể để trống . Để hiển thị kết quả chính xác mà không cần tên kiểu, hãy kiểm tra trường hợp này bằng hàm IsBlank và hiển thị chuỗi văn bản trống thay thế.

Cả hai thay đổi này đều nằm trong cùng một công thức, xuất hiện trong thẻ tùy chỉnh trong biểu mẫu, cũng như trong thuộc tính Văn bản của điều khiển nhãn thư viện:

If( IsBlank( ThisItem.'Company Name' ), "",
    IsType( ThisItem.'Company Name', Accounts ),
        "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Cập nhật thuộc tính Văn bản của điều khiển nhãn phụ đề trong thư viện.

Với những thay đổi này, bạn có thể xem và thay đổi trường Tên công ty trong bảng Liên hệ .

Hình ảnh động cho thấy cách chọn một liên hệ sẽ thay đổi các điều khiển khác và biểu mẫu.

Hiểu về các cột tra cứu Liên quan

Cột tra cứu Về khác một chút so với những cột bạn đã làm việc trong chủ đề này. Bạn sẽ bắt đầu bằng cách áp dụng các mẫu mà chủ đề này đã mô tả trước đó rồi bạn sẽ tìm hiểu các thủ thuật khác.

Bạn có thể bắt đầu đơn giản với bảng Fax . Bảng này có một cột tra cứu đa hình Liên quan , có thể tham chiếu đến Tài khoản, Danh bạ và các bảng khác. Bạn có thể sử dụng ứng dụng dành cho Khách hàng và sửa đổi ứng dụng dành cho Fax.

Vị trí Mẫu khách hàng Mẫu fax
Trong suốt 'Tên khách hàng' Về
Tài sản mục của Gallery Liên hệ Fax
Thuộc tính Mục của biểu mẫu Liên hệ Fax
Đối số đầu tiên của Patch
Trong thuộc tính OnSelect của nút
Liên hệ Fax

Một lần nữa, bạn sẽ cần thêm nguồn dữ liệu: lần này là cho Fax. Trên tab Xem , chọn Nguồn dữ liệu:

Ngăn dữ liệu hiển thị các bảng Tài khoản, Nhóm, Người dùng, Danh bạ và Fax.

Một điểm khác biệt quan trọng đối với Liên quan đến là nó không giới hạn ở Tài khoảnDanh bạ. Trên thực tế, danh sách các bảng có thể mở rộng với các bảng tùy chỉnh. Hầu hết ứng dụng có thể bố trí điểm này mà không cần sửa đổi. Tuy nhiên, bạn phải cập nhật công thức cho nhãn trong thư viện và biểu mẫu:

If( IsBlank( ThisItem.Regarding ), "",
    IsType( ThisItem.Regarding, Accounts ),
        "Account: " & AsType( ThisItem.Regarding, Accounts ).'Account Name',
    IsType( ThisItem.Regarding, Contacts ),
        "Contacts: " & AsType( ThisItem.Regarding, Contacts ).'Full Name',
    ""
)

Đã cập nhật thuộc tính Văn bản cho phần điều khiển phụ đề cho mục Tra cứu liên quan.

Sau khi thực hiện những thay đổi này, bạn sẽ làm việc với tra cứu Liên quan giống như cách bạn làm với tra cứu Chủ sở hữuKhách hàng .

Hình ảnh động cho thấy cách chọn một mục trong thư viện sẽ thay đổi các điều khiển khác và biểu mẫu.

Tìm hiểu mối quan hệ Bản lưu ý

Về khác với Chủ sở hữuKhách hàng bởi vì chủ sở hữu liên quan đến mối quan hệ nhiều-một. Theo định nghĩa, mối quan hệ ngược một-nhiều cho phép bạn viết Đầu tiên(Tài khoản).Fax.

Hãy sao lưu và xem xét các định nghĩa bảng. Trong Dataverse, các bảng như Fax, Nhiệm vụ, Email, Ghi chú, Cuộc gọi điện thoại, ThưTrò chuyện được chỉ định là hoạt động. Bạn cũng có thể tạo bảng hoạt động tùy chỉnh của riêng mình. Khi bạn xem hoặc tạo bảng hoạt động, các thiết lập của bảng đó sẽ xuất hiện trong Thêm thiết lập.

Thiết đặt bảng hoạt động khi tạo bảng.

Các bảng khác có thể liên quan đến bảng hoạt động nếu chúng được bật dưới dạng nhiệm vụ hoạt động trong phần cài đặt của bảng. Tài khoản, Danh bạ và nhiều bảng chuẩn khác được chỉ định như vậy (một lần nữa, trong Cài đặt khác).

Thiết đặt nhiệm vụ hoạt động khi tạo bảng.

Tất cả các bảng hoạt động và bảng hoạt động-nhiệm vụ có mối quan hệ ngụ ý. Nếu bạn thay đổi bộ lọc thành Tất cả ở đầu màn hình, hãy chọn bảng Fax , sau đó chọn tab Mối quan hệ , tất cả các bảng có thể là mục tiêu của tra cứu Liên quan đến sẽ xuất hiện.

Các mối quan hệ của bảng Fax hiển thị các mối quan hệ nhiều-một của Liên quan.

Nếu bạn hiển thị các mối quan hệ cho bảng Tài khoản , tất cả các bảng có thể là nguồn của trường tra cứu Liên quan đến sẽ xuất hiện.

Các mối quan hệ của bảng Tài khoản hiển thị các mối quan hệ một-nhiều của Liên quan.

Tất cả điều đó có nghĩa là gì?

  • Khi viết công thức, bạn phải cân nhắc rằng danh sách bảng hoạt động không cố định và bạn có thể tạo bảng hoạt động của riêng mình. Công thức phải xử lý thích hợp một bảng hoạt động mà bạn không mong đợi.
  • Tác vụ hoạt động và hoạt động có mối quan hệ một-nhiều. Bạn có thể dễ dàng yêu cầu tất cả các bản fax liên quan đến một khách hàng.

Cách tìm hiểu khái niệm này trong ứng dụng:

  1. Thêm một màn hình khác.

    Chèn một màn hình trống.

  2. Chèn kiểm soát thư viện rồi đổi kích thước, sau đó di chuyển sang phía bên trái màn hình.

  3. Trên tab Thuộc tính gần phía bên phải màn hình, hãy đặt Mục của thư viện thành Tài khoản.

    Đặt Mục vào Tài khoản trong ngăn thuộc tính.

  4. Đặt bố cục của thư viện thành Tiêu đề, sau đó đặt trường tiêu đề thành Tên tài khoản.

    Đặt Bố cục thành Tiêu đề để kiểm soát thư viện trong ngăn thuộc tính.

  5. Thêm thư viện thứ hai rồi đổi kích thước, sau đó di chuyển sang phía bên phải màn hình.

  6. Đặt thuộc tính Mục của thư viện ảnh mới thành Gallery2.Selected.Faxes.

    Bước này trả về danh sách các bản fax đã lọc cho một khách hàng nhất định.

    Đặt thuộc tính Mục của thư viện hiển thị bản fax.

  7. Đặt bố cục của thư viện thành Tiêu đề và phụ đề, sau đó đặt trường tiêu đề để hiển thị trường Chủ đề (có thể là chữ thường chủ đề).

    Đặt tiêu đề vào trường Chủ đề.

Khi bạn chọn một mục trong danh sách khách hàng, danh sách bản fax sẽ hiển thị các bản fax chỉ dành cho khách hàng đó.

Hình ảnh động hiển thị lựa chọn trong thư viện tài khoản điều khiển danh sách fax.

Bảng hoạt động

Như phần trước mô tả, bạn có thể hiển thị tất cả bản fax cho một khách hàng. Tuy nhiên, bạn cũng có thể hiển thị tất cả hoạt động của một khách hàng, bao gồm bản fax, email, cuộc gọi điện thoại và các tương tác khác.

Đối với trường hợp sau, bạn sử dụng bảng Hoạt động . Bạn có thể hiển thị bảng này bằng cách bật Tất cả ở góc trên bên phải để xóa bộ lọc khỏi danh sách bảng.

Danh sách các bảng hiển thị bảng Hoạt động.

Bảng Hoạt động là bảng đặc biệt. Bất cứ khi nào bạn thêm một bản ghi vào bảng Fax , hệ thống cũng tạo một bản ghi trong bảng Hoạt động với các cột chung trong tất cả các bảng hoạt động. Trong số các cột đó, Chủ đề là một trong những cột thú vị nhất.

Bạn có thể hiển thị tất cả hoạt động bằng cách chỉ thay đổi một dòng trong ví dụ trước đó. Thay thế Gallery2.Selected.Faxes bằng Gallery2.Selected.Activities.

Thay đổi thuộc tính Mục cho thư viện thứ hai, thay đổi từ fax thành hoạt động.

Các bản ghi đến từ bảng Hoạt động , nhưng bạn vẫn có thể sử dụng hàm IsType để xác định loại hoạt động của chúng. Một lần nữa, trước khi sử dụng IsType với một kiểu bảng, bạn phải thêm nguồn dữ liệu.

Ngăn dữ liệu hiển thị tất cả các bảng cần thiết cho hàm IsType.

Bằng cách sử dụng công thức này, bạn có thể hiển thị loại bản ghi trong kiểm soát nhãn trong thư viện:

If( IsType( ThisItem, Faxes] ), "Fax",
    IsType( ThisItem, 'Phone Calls' ), "Phone Call",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Đặt thuộc tính văn bản thành công thức để hiển thị thông tin về fax, cuộc gọi điện thoại và các hoạt động khác.

Bạn cũng có thể sử dụng AsType để truy cập các trường của loại cụ thể. Ví dụ, công thức này xác định loại của từng hoạt động và, đối với các cuộc gọi điện thoại, hiển thị số điện thoại và hướng gọi từ bảng Số điện thoại :

If( IsType( ThisItem, Faxes ), "Fax",
    IsType( ThisItem, 'Phone Calls' ),
       "Phone Call: " &
       AsType( ThisItem, 'Phone Calls' ).'Phone Number' &
       " (" & AsType( ThisItem, 'Phone Calls' ).Direction & ")",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Thuộc tính văn bản mở rộng với nhiều thông tin hơn cho cuộc gọi điện thoại.

Kết quả, ứng dụng sẽ hiển thị một danh sách hoạt động hoàn chỉnh. Trường Chủ đề xuất hiện cho mọi loại hoạt động, bất kể công thức có tính đến chúng hay không. Đối với các loại hoạt động mà bạn biết, bạn có thể hiển thị tên loại và thông tin dành riêng cho loại về từng hoạt động.

Màn hình hoàn chỉnh hiển thị thông tin cho các loại hoạt động khác nhau.

Bảng ghi chú

Cho đến nay, tất cả các ví dụ Liên quan đến đều dựa trên các hoạt động, nhưng bảng Ghi chú thể hiện một trường hợp khác.

Khi bạn tạo bảng, bạn có thể bật tệp đính kèm.

Bật tệp đính kèm và ghi chú khi tạo bảng.

Nếu bạn chọn hộp kiểm để bật tệp đính kèm, bạn sẽ tạo ra mối quan hệ Liên quan với bảng Ghi chú , như đồ họa này hiển thị cho bảng Tài khoản :

Bảng Tài khoản hiển thị mối quan hệ với Ghi chú thông qua mối quan hệ một-nhiều.

Ngoài sự khác biệt này, bạn sử dụng tra cứu Liên quan theo cùng cách mà bạn sử dụng hoạt động. Các bảng được bật để đính kèm có mối quan hệ một-nhiều với Ghi chú, như trong ví dụ này:

First( Accounts ).Notes

Lưu ý

Tại thời điểm viết bài này, chức năng tra cứu Liên quan không khả dụng cho bảng Ghi chú . Bạn không thể đọc hoặc lọc dựa trên cột Liên quan và bạn không thể thiết lập cột bằng cách sử dụng Bản vá.

Tuy nhiên, mối quan hệ một-nhiều Ghi chú ngược lại vẫn khả dụng, do đó bạn có thể lọc danh sách ghi chú cho bản ghi được bật để đính kèm. Bạn cũng có thể sử dụng hàm Relate để thêm ghi chú vào bảng Ghi chú của bản ghi, nhưng ghi chú phải được tạo trước, như trong ví dụ này:

Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note" } ) )

Bên Hoạt động

Tại thời điểm viết này, ứng dụng canvas không hỗ trợ bên hoạt động.