Microsoft Dynamics CRM 2013: Adding row colours to sub-grids dynamically based on value in cells

Discussion in 'Microsoft Dynamics 365' started by Hân, Nov 29, 2014.

  1. Hân

    Hân Member

    Xin chào các bạn, hôm nay mình có nhận được một yêu cầu thiết kế Form khá thú vị. Yêu cầu đó là tự động thay đổi màu sắc của dòng trong Sub-grids theo điều kiện của một cột trong Microsoft Dynamics CRM.

    Bài viết này mình sẽ chia sẽ cho các bạn cách để thêm các dòng với màu sắc khác nhau theo điều kiện vào Sub-grids.

    VD : với điều kiện Loại Hoạt Động (Activities Type)
    - Task : sẽ hiện mà xanh lá
    - Appointment : sẽ hiện dòng màu vàng
    Bước 1:

    Login vào CRM của bạn > Chọn Form chứa Fields mà bạn muốn chỉnh.

    VD : CRM > SALE (Bán Hàng) > CONTACT (Người liên hệ)

    Microsoft Dynamic CRM - Adding row colours to sub-grids - 01.jpg



    Bước 2:

    Hiển thị màn hình Form > VD : sửa Gird Activities (Hình dưới hiển thị Grid chưa chỉnh sửa)


    Microsoft Dynamic CRM - Adding row colours to sub-grids - 06.jpg

    Tại menu > Click vào nút ... > chọn Form để vào giao diện chỉnh sửa Form.

    Microsoft Dynamic CRM - Adding row colours to sub-grids - 02.jpg


    Bước 3:


    Hiển thị cửa sổ Form Editor Contact > nhấp đúp vào Grid bạn cần chỉnh sửa > Tab "Detail" > bạn xem phần Name (tên Grid bạn sẽ viết trong file js)​

    Microsoft Dynamic CRM - Adding row colours to sub-grids - 04.jpg

    Bước 4:


    Bạn thêm đoạn script sau vào file js để thay đổi màu sắc cho Field bạn chọn

    function subGridOnload()
    {
    var grid = $('ActivitiesID'); //Replace Grid name here
    if (grid == null)
    {
    // delay one second and try again.
    setTimeout(subGridOnload, 1000);
    return;
    }

    if(grid[0] == undefined)
    {
    // delay one second and try again.
    setTimeout(subGridOnload, 1000);
    return;
    }

    if(grid[0].control == undefined)
    {
    // delay one second and try again.
    setTimeout(subGridOnload, 1000);
    return;
    }

    if(grid[0].control == null)
    {
    // delay one second and try again.
    setTimeout(subGridOnload, 1000);
    return;
    }

    if (grid[0].control.get_totalRecordCount() == -1)
    {
    // delay one second and try again.
    setTimeout(subGridOnload, 1000);
    return;
    }

    // logic Replace status names and colours as required

    $('#ActivitiesID td').filter(function () {
    return $(this).text() == 'Task';
    }).closest('tr').css('background-color', 'green');

    $('#ActivitiesID td').filter(function () {
    return $(this).text() == 'Appointment';
    }).closest('tr').css('background-color', 'yellow');
    }
    Bước 5:

    Sau đó tại Form Editor Contact

    > Bạn thêm file js vào bằng cách click nút Form Properties

    > Hiện cửa sổ Form Properties bạn chọn file js và hàm cho sự kiện On Load
    Microsoft Dynamic CRM - Adding row colours to sub-grids - 03.jpg


    Bước 6:

    Bạn OK để xác nhận hoàn thành script > Save và Public những chỉnh sửa > Hoàn tất yêu cầu

    Bạn tải lại Form sẽ được kết quả như hình sau :​

    Microsoft Dynamic CRM - Adding row colours to sub-grids - 05.jpg
    Cảm ơn các bạn đã đọc bài viết.

    Tham khảo :

     
    Last edited: Nov 29, 2014
  2. Loading...


Share This Page