gpt4 book ai didi

javascript - 从 Rally 中获取特定标签以计算另一个字段中的值

转载 作者:行者123 更新时间:2023-11-30 05:55:03 24 4
gpt4 key购买 nike

我对 Rally 开发非常陌生,所以我的问题可能听起来很愚蠢(但无法从 Rally 的帮助或以前的帖子中找到如何做到这一点):)

我从集会自由格式网格示例开始 - 我的目的是实现一个商业值(value)计算器:我用一个 5 位数的数字填充分数字段,其中每个数字都是 1-5 范围内的分数。然后我计算一个商业值(value)作为计算的结果,其中每个数字都按预设权重加权。我可以按商业值(value)对我的故事进行排序,以帮助我确定积压工作的优先级:这是第一步,而且很有效。

现在我想要做的是让我的自由格式网格可编辑:我将我的每个数字提取为一个单独的列,但这些列仅供显示。我怎样才能把它们变成可编辑的东西?我想做的当然是根据每个自定义列中输入的值更新回分数字段。

举个例子:我有一个得分为“15254”的记录,这意味着商业值(value)标准 1 得 1 分(满分 5 分),商业值(value)标准 2 得 5 分(满分 5 分),依此类推...最后,我的商业值(value)计算为“1*1 + 5*2 + 2*3 + 5*4 + 4*5 = 57”。到目前为止,这是有效的部分。现在假设我发现第三个标准不应该得分 2 而应该得分 3,我希望能够编辑相应列中的值并将我的得分字段更新为“15354”,并且我的商业值(value)显示 60 而不是 57 .

这是我目前的代码,如果你能帮我把那个网格变成可编辑的东西,我将非常感激:)

<!--Include SDK-->
<script type="text/javascript" src="https://rally1.rallydev.com/apps/2.0p2/sdk-debug.js"></script>

<!--App code-->
<script type="text/javascript">

Rally.onReady(function() {

Ext.define('BVApp', {
extend: 'Rally.app.App',
componentCls: 'app',

launch: function() {
Ext.create('Rally.data.WsapiDataStore', {
model: 'UserStory',
autoLoad: true,
listeners: {
load: this._onDataLoaded,
scope: this
}
});
},

_onDataLoaded: function(store, data) {
var records = [];
var li_score;
var li_bv1, li_bv2, li_bv3, li_bv4, li_bv5, li_bvtotal;
var weights = new Array(1, 2, 3, 4, 5);

Ext.Array.each(data, function(record) {
//Let's fetch score and compute the business values...
li_score = record.get('Score');
if (li_score) {
li_bv1 = li_score.toString().substring(0,1);
li_bv2 = li_score.toString().substring(1,2);
li_bv3 = li_score.toString().substring(2,3);
li_bv4 = li_score.toString().substring(3,4);
li_bv5 = li_score.toString().substring(4,5);
li_bvtotal =
li_bv1*weights[0] +
li_bv2*weights[1] +
li_bv3*weights[2] +
li_bv4*weights[3] +
li_bv5*weights[4];
}
records.push({
FormattedID: record.get('FormattedID'),
ref: record.get('_ref'),
Name: record.get('Name'),
Score: record.get('Score'),
Bv1: li_bv1,
Bv2: li_bv2,
Bv3: li_bv3,
Bv4: li_bv4,
Bv5: li_bv5,
BvTotal: li_bvtotal
});
});

this.add({
xtype: 'rallygrid',
store: Ext.create('Rally.data.custom.Store', {
data: records,
pageSize: 5
}),
columnCfgs: [
{
text: 'FormattedID', dataIndex: 'FormattedID'
},
{
text: 'ref', dataIndex: 'ref'
},
{
text: 'Name', dataIndex: 'Name', flex: 1
},
{
text: 'Score', dataIndex: 'Score'
},
{
text: 'BusVal 1', dataIndex: 'Bv1'
},
{
text: 'BusVal 2', dataIndex: 'Bv2'
},
{
text: 'BusVal 3', dataIndex: 'Bv3'
},
{
text: 'BusVal 4', dataIndex: 'Bv4'
},
{
text: 'BusVal 5', dataIndex: 'Bv5'
},
{
text: 'BusVal Total', dataIndex: 'BvTotal'
}
]
});
}
});

Rally.launchApp('BVApp', {
name: 'Business Values App'
});

var exampleHtml = '<div id="example-intro"><h1>Business Values App</h1>' +
'<div>Own sample app for Business Values</div>' +
'</div>';

// Default app viewport uses layout: 'fit',
// so we need to insert a container into the viewport
var viewport = Ext.ComponentQuery.query('viewport')[0];
var appComponent = viewport.items.getAt(0);
var viewportContainerItems = [{
html: exampleHtml,
border: 0
}];

//hide advanced cardboard live previews in examples for now

viewportContainerItems.push({
xtype: 'container',
items: [appComponent]
});


viewport.remove(appComponent, false);
viewport.add({
xtype: 'container',
layout: 'vbox',
items: viewportContainerItems
});
});


</script>

<!--App styles-->
<style type="text/css">
.app {
/* Add app styles here */
}
</style>

最佳答案

正如 Kyle 在他的评论中所说,您最好的选择是扩展用户故事模型而不是使用内存存储。

要扩展它,您可以使用 Rally.data.ModelFactory 获取模型,然后执行如下操作:

Rally.data.ModelFactory.getModel({
type: 'user story',
success: function(model){
this.CustomModel = Ext.define('BVModel', {
extend: model,
fields: [
{name: 'Bv1'}
...
]
});
},
scope: this
});

然后使用convert在 Score 字段上配置以设置计算字段的值。要在编辑中设置分数,您可能还需要在每个计算字段上进行转换配置。

然后告诉网格使用您的自定义模型而不是商店:

this.add({
xtype: 'rallygrid',
model: this.CustomModel,
columnCfgs: [
{
text: 'FormattedID', dataIndex: 'FormattedID'
},
{
text: 'ref', dataIndex: 'ref'
},
{
text: 'Name', dataIndex: 'Name', flex: 1
},
{
text: 'Score', dataIndex: 'Score'
},
{
text: 'BusVal 1', dataIndex: 'Bv1'
},
{
text: 'BusVal 2', dataIndex: 'Bv2'
}
]
});

关于javascript - 从 Rally 中获取特定标签以计算另一个字段中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12413817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com