我正在使用带反应形式的Angular 4.我有一个表单数组,我试图绑定到我在组件中跟踪的数组.我正在使用反应式表单,所以我可以进行验证,所以我不想使用模板表单方法.
我将项添加到表单数组中,如下所示:
createFormWithModel() {
this.orderForm = this.fb.group({
orderNumber: [this.order.ProductBookingOrder],
orderDate: [this.order.PurchaseOrderIssuedDate],
lineDetailsArray: this.fb.array([])
})
const arrayControl = <FormArray>this.orderForm.controls['lineDetailsArray'];
this.order.ProductBookingDetails.forEach(item => {
let newGroup = this.fb.group({
ProductName: [item.ProductName],
Quantity: [item.ProductQuantity.Quantity],
UOM: [item.ProductQuantity.UOM],
RequestedShipDate: [item.RequestedShipDate]
})
})
}
Run Code Online (Sandbox Code Playgroud)
orderForm显然是我的反应形式FormGroup.订单是我从API获取的对象,我想更新其值,包括行详细信息.我想我应该在每个newGroup上使用'valueChanges.subscribe',但我不知道如何获得已更改的项的索引.有什么想法吗?
newGroup.valueChanges.subscribe('i want value and index some how' => {
this.order.ProductbookingDetails[index].ProductName = value.ProductName;
});
Run Code Online (Sandbox Code Playgroud)
这是此部分的HTML:
<tbody formArrayName="lineDetailsArray">
<tr [formGroupName]="i" *ngFor="let line of orderForm.controls['lineDetailsArray'].controls; index as i">
<td><input class="form-control" type="text" placeholder="Product Name" formControlName="ProductName" required/></td>
<td><input class="form-control" type="number" step=".01" (focus)="$event.target.select()" placeholder="Quantity" formControlName="Quantity"/></td>
<td><input class="form-control" readonly …Run Code Online (Sandbox Code Playgroud) 我有一个 SSRS 报告正在调用我的数据库中的存储过程。
本地一切正常,我在本地连接 Windows 身份验证以访问数据库,没有任何问题。
部署 SSRS 报告后,它被设置为使用不同的登录名,并且该登录名具有正确的角色来授予对存储过程的执行权限。但是,当尝试查看 SSRS 服务器上的报告时,我收到以下消息:
找不到用户“dbo”,因为它不存在或您没有权限。
如果我删除允许授予执行权限的角色,我会收到更具体的错误,指出我没有执行存储过程的权限。但是,一旦将此角色放回到用户帐户上,SSRS 就会在返回时运行并显示错误
找不到用户“dbo”
我所拥有的被授予执行权限的角色是由“dbo”用户授予的,这是数据库所有者。我在网上发现一些内容说数据库备份可能会弄乱某些用户登录。我已经检查过,数据库所有者 sid 与 name = 'dbo' 的 sysuser sid 相同,所以我不认为这是问题所在。
有其他人知道我可以尝试什么吗?
编辑:有关存储过程的详细信息:它是一个带有一些内部联接的简单选择。存储过程的末尾如下所示,授予对我的 SSRS 用户所属角色的访问权限:
GRANT EXECUTE
ON OBJECT::[dbo].[Application_LoadData] TO [SSRSUserRole]
AS [dbo];
Run Code Online (Sandbox Code Playgroud)