子表视图是用SQL(代码)模式设计:
(function (){
var domainId = getDomainid();
var pd = getParentDocument();
var state = pd.getStateLabel();
var user = getWebUser();
if ("运营复核".equals(state))
sql = getJustMeDataSql(user);
else
sql = getAllDataSql();
println(sql);
sql = "SELECT TableA.* FROM (" + sql + ") AS TableA";
return sql;
})()
function getAllDataSql(){
//获取所有人的数据
var sql = "SELECT * FROM tlk_ywreq_01_requirement_detail WHERE 1 = 1 ";
sql += CreateWherePart();
return sql;
}
function getJustMeDataSql(user){
//只获取属于当前用户的数据
var sql = getAllDataSql();
sql += " AND ITEM_负责人 = '" + user.getName() + "'";
return sql;
}
function CreateWherePart(){
var result = "";
var sku = getItemValueAsString("SKU");
var skuExtract = getItemValueAsString("仓库SKU");
var changed = getItemValueAsString("调整情况");
var storageKind = getItemValueAsString("仓储类型");
var goodsStatus = getItemValueAsString("平台产品状态");
if (isNotNull(sku))
result += " AND ITEM_SKU LIKE '%" + sku + "%' ";
if (isNotNull(skuExtract))
result += " AND ITEM_仓库SKU LIKE '%" + skuExtract + "%' ";
if (isNotNull(storageKind) && "不限".equals(storageKind) == false)
result += " AND ITEM_仓储类型 = '" + storageKind + "' ";
if (isNotNull(goodsStatus) && "不限".equals(goodsStatus) == false)
result += " AND ITEM_平台产品状态 = '" + goodsStatus + "' ";
//没调整;有调整
if ("有调整".equals(changed)){
result += " AND (" +
"(ITEM_SEA_NUM <> ITEM_运营调整海运数量 AND ITEM_运营调整海运数量 IS NOT NULL) " +
" OR (ITEM_AIR_NUM <> ITEM_运营调整空运数量 AND ITEM_运营调整空运数量 IS NOT NULL) " +
" OR (ITEM_SEA_NUM <> ITEM_组长调整海运数量 AND ITEM_组长调整海运数量 IS NOT NULL) " +
" OR (ITEM_AIR_NUM <> ITEM_组长调整空运数量 AND ITEM_组长调整空运数量 IS NOT NULL) " +
" OR (ITEM_SEA_NUM <> ITEM_部门负责人调整海运数量 AND ITEM_部门负责人调整海运数量 IS NOT NULL) " +
" OR (ITEM_AIR_NUM <> ITEM_部门负责人调整空运数量 AND ITEM_部门负责人调整空运数量 IS NOT NULL) " +
" OR (ITEM_SEA_NUM <> ITEM_总经理调整海运数量 AND ITEM_总经理调整海运数量 IS NOT NULL) " +
" OR (ITEM_AIR_NUM <> ITEM_总经理调整空运数量 AND ITEM_总经理调整空运数量 IS NOT NULL) " +
")";
} else if ("没调整".equals(changed)){
result += " AND (" +
"(ITEM_SEA_NUM = ITEM_运营调整海运数量 OR ITEM_运营调整海运数量 IS NULL) " +
" AND (ITEM_AIR_NUM = ITEM_运营调整空运数量 OR ITEM_运营调整空运数量 IS NULL) " +
" AND (ITEM_SEA_NUM = ITEM_组长调整海运数量 OR ITEM_组长调整海运数量 IS NULL) " +
" AND (ITEM_AIR_NUM = ITEM_组长调整空运数量 OR ITEM_组长调整空运数量 IS NULL) " +
" AND (ITEM_SEA_NUM = ITEM_部门负责人调整海运数量 OR ITEM_部门负责人调整海运数量 IS NULL) " +
" AND (ITEM_AIR_NUM = ITEM_部门负责人调整空运数量 OR ITEM_部门负责人调整空运数量 IS NULL) " +
" AND (ITEM_SEA_NUM = ITEM_总经理调整海运数量 OR ITEM_总经理调整海运数量 IS NULL) " +
" AND (ITEM_AIR_NUM = ITEM_总经理调整空运数量 OR ITEM_总经理调整空运数量 IS NULL) " +
")";
}
return result;
}