*******************************
Một số nghiệp vụ hay gặp
1. Lấy dữ liệu JSON hiển thị ra html
Vào xmlObject -> Grid -> Grid_Page_AddHtml
<script>
$(document).ready(function(){
$( ".grv_button" ).append("<div class='grv_button_loading'>Loadding...</div>" );
$.get("/adminxml/Query_Do.aspx?name=iif_o/DemSoLuong&out=json", function(data,
status){
//alert( JSON.stringify(data ) );
var html_add="<div class='p-2 mr-2'>";
$.each(data.Q1, function (index, itemData) {
html_add +=itemData.SL_HH + " ; ";
});
html_add +="</div>";
$( ".grv_button" ).append( html_add );
$( ".grv_button_loading" ).hide();
});//$.get
});//document
</script>
* Các chữ màu đỏ thay thế lại cho phù hợp
--- Ví dụ: Đếm số lượng sản phẩm có trong báo giá
tbBaoGiao, tbBaoGia_ChiTiet
* Lấy json được của query đếm sl:
<Query>
<ID>Q1</ID>
<Src>xx</Src>
<Type>Sql</Type>
<Cmd>Select _SYS_KEY, (Select Count(*) From tbBaoGia_ChiTiet Where KEY_BaoGia=tbBaoGia._SYS_KEY) as SL From tbBaoGia</Cmd>
</Query>
* Grid_Field_Add: thêm vào 1 cột, ví dụ SoLuong
* Thêm Grid_Field_Format ta thêm
SoLuong:<a id="bt_{0}" ></a>
<script>
$(document).ready(function(){
$( ".grv_button" ).append("<div class='grv_button_loading'>Loadding...</div>" );
$.get("/adminxml/Query_Do.aspx?name=Query_DEM_SL&out=json", function(data,
status){
$.each(data.Q1, function (index, itemData) {
$("#bt_"+itemData._SYS_KEY).html(itemData.SL_HH );
});
$( ".grv_button" ).append( html_add );
$( ".grv_button_loading" ).hide();
});//$.get
});//document
</script>
2. Tại row xử lý, cần lấy dữ liệu file xml mà tên file được lưu tại dòng hiện hành
Tham khảo lệnh
3. Thêm link cho trường nhóm
Cách 1: vào Grid View -> Grid_Field_Format
Thêm:
Cot:<a href="{url:[url_current]:url}&find__Cot={0}">{0}</a>
** nhược: chỉ chạy 1 lần, lần thứ 2 click sẽ cộng dồn trên link
Cách 2:
* Grid_Field_Format:
Nhom: <a class="btLink_TenCot" p_TenCot="{0}" href="#">{0}</a>
* Grid_Page_AddHtml:
$('.btLink_TenCot').click(function(){
var gt_TenCot= $(this).attr('p_TenCot');
var url = window.location;
url = urlCurrent_AddPara("find__TenCot",gt_TenCot);
window.location.href =url ;
});
4. Thêm nhóm và dưới button, có kích hoạt màu khi chọn vào
Tham khảo tạo json nhóm của trang hiện tại không cần tạo query thêm
Tạo dữ liệu json bằng cách
Cách 1: /iif-admin/xmlgetdata#rendata
Cách 2: /module/data/?file=ChungTu_NoiDung_DM.xml&obj=xml_data&distinct=Nhom
Vào xmlObject -> Grid view -> Grid_Page_AddHtml
<script>
$(document).ready(function(){
$( ".grv_button" ).append("<div class='grv_button_loading'>Loadding...</div>" );
$.get("/Adminxml/xml_getdata.aspx?file=iif_sv_KhuVuc_Nhom.xml&rendata=json", function(data, status){
nhom_dang_chon=urlGetValuePara('find__Nhom');
// alert(data.length);
var html_add="<div class='p-2 mr-2'>";
$.each(data, function (index, itemData) { // data.Q1 nếu là dataset
tenhom=itemData.TenNhom;
if(nhom_dang_chon==itemData.TenNhom)
tenhom="<strong class='text-danger'>"+itemData.TenNhom+"</strong>";
html_add +=" <a class='btn btn-outline-primary mb-1' href='"+ urlCurrent_AddPara('find__Nhom',itemData.TenNhom) +"' '><i class='fas fa-link'></i> "+tenhom+ "" +"</a>"; // itemData.TenNhom
});
//Add link Quan ly danh muc
html_add +=" <a class='btn btn-primary mb-1' href='/Adminxml/xml_getdata.aspx?file=iif_sv_KhuVuc_Nhom.xml' '><i class='fas fa-list-ol'></i> * Quản lý nhóm</a>";
html_add +="</div>";
$( ".grv_button" ).append( html_add );
$( ".grv_button_loading" ).hide();
});//$.get
});//document
</script>
Ví dụ 2:
<script>
$(document).ready(function(){
$( ".grv_button" ).append("<div class='grv_button_loading'>Loadding...</div>" );
$.get("/module/data/?file=ChungTu_NoiDung_DM.xml&obj=xml_data&distinct=Nhom", function(data, status){
nhom_dang_chon=urlGetValuePara('find__Nhom');
// alert(data.length);
var html_add="<div class='p-2 mr-2'>";
$.each(data, function (index, itemData) { // data.Q1 nếu là dataset
tenhom=itemData.Nhom;
if(nhom_dang_chon==itemData.Nhom)
tenhom="<strong class='text-danger'>"+itemData.Nhom+"</strong>";
html_add +=" <a class='btn btn-outline-primary mb-1' href='"+ urlCurrent_AddPara('find__Nhom',itemData.Nhom) +"' '><i class='fas fa-link'></i> "+tenhom+ "" +"</a>"; // itemData.Nhom
});
html_add +="</div>";
$( ".grv_button" ).append( html_add );
$( ".grv_button_loading" ).hide();
});//$.get
});//document
</script>
5. Tùy chọn nhiều giao diện hiển thị
Tham khảo: https://iif.vn/iif-admin/xmlgetdata#lenh_url
Tìm đến tham số _s_file_pr
6. Tạo giao diện thống kê dữ liệu
Tạo thêm 1 giao diện trong xmlObject (tham khảo mục 5)
Cấu hình lệnh trong Grid_Config
{statisticsData:
GroupBy:TenCotNhom1;TenCotNhom2
ColumnAdd:TenCotThem1;TenCotThem2
Compute:Max(TenCotTinh1);Max(TenCotTinh2)
Sort:TenCotSapXep
:statisticsData}
Nếu 1 cột không cần ;
Tham khảo: https://iif.vn/iif-admin/sysobject-grid-view#Grid_Config
7. Thêm link vào cột bằng cách lấy giá trị cột khác với jquery
Tạo thêm 1 giao diện trong xmlObject (tham khảo mục 5)
Cấu hình
Ví dụ: trong TH cột _SYS_KEY là giá trị nhưng bị ẩn, nhưng muốn hiển thị ra ngoài.
<script>
$( '.grv_col_NumOrder' ).each(function( index ) {
if(index >0)
{
gt_val_cur= $('.grv_col_LoaiPhieu').eq(index).html();
var key_SYS= ( $('input[name=_SYS_KEY]').eq(index-1).val() );
var html_set="<span class='ml-2 badge badge-danger'>ID="+key_SYS+"</span>";
$('.grv_col_NumOrder').eq(index).append(html_set);
}
});
</script>
Ví dụ thêm link vào
<script>
$( '.grv_col_KEYCT' ).each(function( index ) {
if(index >0)
{
gt_val_cur= $('.grv_col_KEYCT').eq(index).html();
link_op="/adminxml/xml_form_ds.aspx?name=BanHang_iif_sv/BanHang&key_chungtu="+gt_val_cur;
var html_set="<a class='bt_open_w_pIIF btn btn-outline-success btn-sm' p_l='"+link_op+"' p_w='1100px' p_h='700px' p_t='Tên_cửa_sổ' data-toggle='modal' data-target='#Obj_popup_pIIF' href='#'><i class='fas fa-bookmark'></i> Xem</a>";
link_xoa_LINK="/adminxml/Query_Do.aspx?name=BanHang_iif_sv/XoaChungTu_key&out=json&key="+gt_val_cur;
link_xoa=" <a class='bt_open_w_pIIF_alert btn btn-outline-danger btn-sm' p_alert='Xóa ? (nhấn F5 sau khi xóa)' p_l='"+link_xoa_LINK+"' p_w='700px' p_h='300px' p_t='Xóa ?' data-toggle='modal' data-target='#Obj_popup_pIIF' href='#'><i class='fas fa-trash'></i> Xóa ? </a>";
$('.grv_col_KEYCT').eq(index).html(html_set+link_xoa);
}
});
</script>
<script>
$( '.grv_col_LoaiPhieu' ).each(function( index ) {
if(index >0)
{
gt_val_cur= $('.grv_col_LoaiPhieu').eq(index).html();
//alert( $('input[name=_SYS_KEY]').eq(index-1).val() );
s_html="<a target='_blank' href='/Adminxml/xml_getdata.aspx?file=iif_sv_ChungTu_Loai_CauHinh.xml&find__LoaiChungTu="+$('input[name=_SYS_KEY]').eq(index-1).val()+"'><i class='fas fa-paperclip'></i> "+gt_val_cur+"</a>";
// alert(s_html);
$('.grv_col_LoaiPhieu').eq(index).html(s_html);
}
});
</script>
Ví dụ 2:
<script>
$( '.grv_col_MoTaTinhTrang' ).each(function( index ) {
if(index >0)
{
gt_val_cur= $('.grv_col_LoaiPhieu').eq(index).html();
var key_SYS= ( $('input[name=_SYS_KEY]').eq(index-1).val() );
var html_set="<span class='ml-2 badge badge-danger'>ID="+key_SYS+"</span>";
$('.grv_col_MoTaTinhTrang').eq(index).append(html_set);
}
});
</script>
Ví dụ: lấy dữ liệu từ trang get_data với dạng json, để tham chiếu 1 cột nào đó từ json
<script>
$(".title_frm_span").html("Đang nạp...");
url_get_json="/Adminxml/xml_getdata.aspx?file=iif_sv_ChungTu_Loai_CauHinh_Help.xml&rendata=json";
$.get(url_get_json, function(data, status){
$( '.grv_col_Ma' ).each(function( index ) {
if(index >1)
{
gt_val_cur= $('.grv_col_Ma').eq(index).html();
// alert(gt_val_cur);
data_tim = data.filter(obj => obj.Ma==gt_val_cur);
//alert(JSON.stringify(data_tim ) );
if( data_tim.length>0) gt_val_cur=data_tim[0].MoTa;
var html_set="<span class='ml-2 badge badge-danger'>"+gt_val_cur+"</span>";
$('.grv_col_Ma').eq(index).append("<br>"+html_set);
}//if
});//each
$(".title_frm_span").html("");
}); //get
</script>
xml_getdata một số nghiệp vụ