交叉表小计怎么取消
金蝶云社区-LeoX
LeoX
0人赞赏了该文章 983次浏览 未经作者许可,禁止转载编辑于2016年06月23日 17:36:42

我用插件写了交叉表,每个行维度都有一个小计,怎么取消?其实我只想按一级科目汇总就可以了,能自定义从那个科目开始汇总么?我维度是如下定义的

public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
DataTable ReportSource = this.getCurrentReportData(base.Context, filter);
ReportSource.TableName = tableName;
base.SettingInfo = new PivotReportSettingInfo();
this.CreateUpdateTempTable(base.Context, tableName, ReportSource);
this.BulkInsertTempTable(base.Context, tableName, ReportSource);

// string F_PAEZ_Combo = "0"; //filter.FilterParameter.CustomFilter["F_PAEZ_Combo"].ToString();

SettingField AcctID1 = PivotReportSettingInfo.CreateColumnSettingField(new TextField()
{
Key = "AcctID1",
FieldName = "AcctID1",
Name = new LocaleValue("一级科目")
}, 0);

base.SettingInfo.RowTitleFields.Add(AcctID1); //行字段

base.SettingInfo.SelectedFields.Add(AcctID1);

SettingField AcctID2 = PivotReportSettingInfo.CreateColumnSettingField(new TextField()
{
Key = "AcctID2",
FieldName = "AcctID2",
Name = new LocaleValue("二级科目")
}, 0);

base.SettingInfo.RowTitleFields.Add(AcctID2); //行字段

base.SettingInfo.SelectedFields.Add(AcctID2);

SettingField AcctID3 = PivotReportSettingInfo.CreateColumnSettingField(new TextField()
{
Key = "AcctID3",
FieldName = "AcctID3",
Name = new LocaleValue("三级级科目")
}, 0);
base.SettingInfo.RowTitleFields.Add(AcctID3); //行字段
base.SettingInfo.SelectedFields.Add(AcctID3);

SettingField FYYSSPED = PivotReportSettingInfo.CreateColumnSettingField(new TextField()
{
Key = "FYYSSPED",
FieldName = "FYYSSPED",
Name = new LocaleValue("费用预算审批额度")
}, 0);
base.SettingInfo.RowTitleFields.Add(FYYSSPED); //行字段
base.SettingInfo.SelectedFields.Add(FYYSSPED);

SettingField XJLYSSPED = PivotReportSettingInfo.CreateColumnSettingField(new TextField()
{
Key = "XJLYSSPED",
FieldName = "XJLYSSPED",
Name = new LocaleValue("现金流预算审批额度")
}, 0);
base.SettingInfo.RowTitleFields.Add(XJLYSSPED); //行字段
base.SettingInfo.SelectedFields.Add(XJLYSSPED);

SettingField BMYSED = PivotReportSettingInfo.CreateColumnSettingField(new TextField()
{
Key = "BMYSED",
FieldName = "BMYSED",
Name = new LocaleValue("部门预算额度")
}, 0);
base.SettingInfo.RowTitleFields.Add(BMYSED); //行字段
base.SettingInfo.SelectedFields.Add(BMYSED);

SettingField field3 = PivotReportSettingInfo.CreateColumnSettingField(new DecimalField()
{
Key = "amount",
FieldName = "amount",
Name = new LocaleValue("金额")
}, 0);
field3.SumType = 0;//小计:0为最末级小计,以此类推
// base.SettingInfo.ColTitleFields.Add(field3);
base.SettingInfo.AggregateFields.Add(field3);
base.SettingInfo.SelectedFields.Add(field3);

SettingField fieldMON1 = PivotReportSettingInfo.CreateColumnSettingField(new DateField()
{
Key = "ddate1",
FieldName = "ddate1",
Name = new LocaleValue("月份")
}, 0);
base.SettingInfo.ColTitleFields.Add(fieldMON1);//列字段
base.SettingInfo.SelectedFields.Add(fieldMON1);

}

private void BulkInsertTempTable(Context ctx, string tempTable, DataTable data)
{
List sqlArray = new List();
int num = 0;
foreach (DataRow row in data.Rows)
{
string str3;
num++;
StringBuilder builder = new StringBuilder();
builder.AppendFormat(string.Format("insert into {0}(", tempTable), new object[0]);
string str2 = str3 = string.Empty;
foreach (DataColumn column in data.Columns)
{
str2 = str2 + column.ColumnName.ToUpper() + ",";
if (column.DataType == typeof(decimal))
{
if (row[column.ColumnName] != DBNull.Value)
{
str3 = str3 + row[column.ColumnName] + ",";
}
else
{
str3 = str3 + "NULL,";
}
}
else
{
str3 = DealColumnName(row[column.ColumnName].ToString(), str3);
}
}
str2 = str2 + "FIDENTITYID) VALUES(";
builder.Append(str2);
str3 = str3 + num.ToString() + ");";
builder.Append(str3);
sqlArray.Add(builder.ToString());
}
int count = sqlArray.Count;
if (count > 0)
{
DBUtils.ExecuteBatch(ctx, sqlArray, count);
}
}