jQWidgets Forums
Forum Replies Created
-
Author
-
July 6, 2013 at 2:24 am in reply to: aggregates incorrect when apply filter in group mode aggregates incorrect when apply filter in group mode #24617
Hi,
A complete sample is sent.
Please help me to solve the problem.Thanks,
MarkJuly 5, 2013 at 11:13 am in reply to: aggregates incorrect when apply filter in group mode aggregates incorrect when apply filter in group mode #24591Hi,
The code below which use jQWidgets 2.7.0.
Thanks,
Mark$(function() {
var theme = getTheme();
var theme3 = getTheme3();
/*主表*/
var url = “../data/account_data.php”;
var source =
{
datatype: ‘json’,
datafields: [
{name: ‘acc_id’},
{name: ‘acc_name’},
{name: ‘asset_name’},
{name: ‘in_year’},
{name: ‘in_month’},
{name: ‘amt’},
{name: ‘amt_ym’},
{name: ‘amt_m’, type: ‘number’},
// {name: ‘ym’},
{name: ‘use_years’},
{name: ‘limit_ym’}],
url: url + “?op=select_fixed_asset”,
id: ‘id’,
cache: false,
pagesize: 20
};
var dataAdapter = new $.jqx.dataAdapter(source);
/*計算出的累計折舊金額,最多為固定資產價值*/
var cellsrenderer = function(row, columnfield, value, defaulthtml, columnproperties) {
var dataRecord = $(‘#jqxgrid’).jqxGrid(‘getrowdata’, row);
var color = ‘#000000’;
if (value * 1 >= dataRecord.amt) {
value = dataRecord.amt;
color = ‘#008000’;
}
return ‘‘ + value + ‘‘;}
//群組
var toThemeProperty = function(className) {
return className + ” ” + className + “-” + theme;
}var groupsrenderer = function(text, group, expanded, data) {
if (data.groupcolumn.datafield == ‘acc_name’) {var text = group;
if (data.subItems.length > 0) {
var aggregate = this.getcolumnaggregateddata(‘amt_m’, [‘sum’], true, data.subItems);
}
else {
var rows = new Array();
var getRows = function(group, rows) {
if (group.subGroups.length > 0) {
for (var i = 0; i < group.subGroups.length; i++) {
getRows(group.subGroups[i], rows);
}
}
else {
for (var i = 0; i < group.subItems.length; i++) {
rows.push(group.subItems[i]);
}
}
}
getRows(data, rows);
var aggregate = this.getcolumnaggregateddata(data.groupcolumn.datafield, ['sum'], true, rows);
}
// return "ddd";
return '‘ + text + ‘‘ + ‘‘ + ‘ $’ + aggregate.sum + ‘‘;
}
else {
return ‘‘ + text + ‘‘;
}
}$(‘#jqxgrid’).jqxGrid(
{
width: 1050,
rowsheight: 30,
autoheight: true,
filterable: true,
groupable: true,
groupsrenderer: groupsrenderer,
showgroupsheader: false,
pageable: true,
showaggregates: true,
showstatusbar: true,
editable: true,
source: dataAdapter,
theme: theme,
columns: [
{text: ‘使用年限’, datafield: ‘limit_ym’, width: 150, hidden: true},
{text: ‘科目名稱’, datafield: ‘acc_name’,width:’100′},
{text: ‘月折舊’, datafield: ‘amt_m’,width:’100′,
aggregates: [‘sum’],
aggregatesrenderer: function(aggregates, column, element, summaryData) {
var renderstring = ““;
$.each(aggregates, function(key, value) {
renderstring += ‘合計:’ + value + ‘‘;
});
renderstring += ““;
return renderstring;
}
}
]
})//查詢
$(“#btn_filter”).jqxButton({width: ‘100’, theme: theme});
$(‘#btn_filter’).click(function() {if ($(‘#qry_in_year’).val() != ”) {
var filtergroup = new $.jqx.filter();
var filtervalue = $(‘#qry_in_year’).val();
var filtercondition = ‘equal’;
var filter = filtergroup.createfilter(‘stringfilter’, filtervalue, filtercondition);
var filter_or_operator = 0;
filtergroup.addfilter(filter_or_operator, filter);
$(‘#jqxgrid’).jqxGrid(‘addfilter’, ‘in_year’, filtergroup);
} else {
$(‘#jqxgrid’).jqxGrid(‘removefilter’, ‘in_year’);
}if ($(‘#qry_in_month’).val() != ”) {
var filtergroup = new $.jqx.filter();
var filtervalue = $(‘#qry_in_month’).val();
var filtercondition = ‘equal’;
var filter = filtergroup.createfilter(‘stringfilter’, filtervalue, filtercondition);
var filter_or_operator = 0;
filtergroup.addfilter(filter_or_operator, filter);
$(‘#jqxgrid’).jqxGrid(‘addfilter’, ‘in_month’, filtergroup);
} else {
$(‘#jqxgrid’).jqxGrid(‘removefilter’, ‘in_month’);
}if ($(‘#qry_asset_name’).val() != ”) {
var filtergroup = new $.jqx.filter();
var filtervalue = $(‘#qry_asset_name’).val();
var filtercondition = ‘contains’;
var filter = filtergroup.createfilter(‘stringfilter’, filtervalue, filtercondition);
var filter_or_operator = 0;
filtergroup.addfilter(filter_or_operator, filter);
$(‘#jqxgrid’).jqxGrid(‘addfilter’, ‘asset_name’, filtergroup);
} else {
$(‘#jqxgrid’).jqxGrid(‘removefilter’, ‘asset_name’);
}$(‘#jqxgrid’).jqxGrid(‘applyfilters’);
})
$(“#btn_filter_5”).jqxButton({width: ‘100’, theme: theme});
$(‘#btn_filter_5’).click(function() {
var filtergroup = new $.jqx.filter();
var date = new Date();var filtervalue = ($(‘#qry_in_year’).val() * 12) + ($(‘#qry_in_month’).val() * 1);
var filtercondition = ‘GREATER_THAN’;
var filter = filtergroup.createfilter(‘numericfilter’, filtervalue, filtercondition);
var filter_or_operator = 0;
filtergroup.addfilter(filter_or_operator, filter);
$(‘#jqxgrid’).jqxGrid(‘addfilter’, ‘limit_ym’, filtergroup);
$(‘#jqxgrid’).jqxGrid(‘applyfilters’);
})//清除查詢
$(“#btn_clear_filter”).jqxButton({width: ‘100’, theme: theme});
$(‘#btn_clear_filter’).click(function() {
$(‘#jqxgrid’).jqxGrid(‘clearfilters’);})
//預設年月
var date = new Date();
$(‘#qry_in_year’).val(date.getFullYear() – 1911);
$(‘#qry_in_month’).val(date.getMonth() + 1);//按一下做群組,再按一下解除群組
$(“#btn_group_acc_name”).jqxButton({width: ‘100’, theme: theme});
$(‘#btn_group_acc_name’).click(function() {
//判斷是否已群組,決定做群組的動作或解除群組
var groups = $(‘#jqxgrid’).jqxGrid(‘getrootgroupscount’);
if (groups == 0){
$(‘#btn_group_acc_name’).val(‘解除群組’);
$(‘#jqxgrid’).jqxGrid(‘addgroup’, ‘acc_name’);
}
else{
$(‘#jqxgrid’).jqxGrid(‘removegroup’, ‘acc_name’);
$(‘#btn_group_acc_name’).val(‘科目群組’);
}
})})
年
月
設備名稱Hi Peter,
Please see the screencast http://youtu.be/Bnk0TFq4Ug8 and the code below.
Thanks,
Mark$(‘#jqxWindow’).jqxWindow({
width: 600, height: 500,
autoOpen: false, theme: theme, resizable: false
});$(‘#jqxWindow2’).jqxWindow({
width: 850, height: 500,
autoOpen: false, theme: theme, resizable: false
});$(‘#jqxgrid’).bind(‘cellclick’, function(event) {
if (column.text == ‘size’) {
$(‘#jqxWindow’).jqxWindow(“open”);}
})$(‘#jqxgrid_arrdone’).bind(‘cellclick’, function(event) {
if (column.text == ‘done_size’) {
$(‘#jqxWindow’).jqxWindow(“open”);
}
})Hi Dimitar,
in the demos/jqxgrid/nestedgrids.htm
how to rewrite the code to virtual paging?Thanks,
MarkHi Peter,
Thanks for the help.
In this case,how to get cell C value in cellendedit event?Best Regards,
MarkHi Peter ,
I found it.
Thanks for the quick response.Best Regards,
Mark -
AuthorPosts