我试图根据产品的销售额来评估每公斤价格($/Kg).如果产品在指定期间内实际销售,则此方法可以正常工作.但是,如果产品未售出,则Kg(分母)最终为0(零)并产生错误. - 除以零错误.
我试过这个
=iif(KgSold=0,0,Revenue/KgSold)
Run Code Online (Sandbox Code Playgroud)
似乎该iif函数正在计算真假结果.我该如何解决这个问题.
我应该使用该switch功能吗?
=switch(KgSold=0,0
KgSold<>0,Revenue/KgSold)
Run Code Online (Sandbox Code Playgroud) 似乎NHibernate需要将一个id标记指定为映射的一部分.这给视图带来了问题,因为大多数时候(根据我的经验)视图都没有Id.我之前在nhibernate中映射了视图,但是我这样做的方式对我来说似乎很混乱.
这是我目前如何做的一个人为的例子.
制图
<class name="ProductView" table="viewProduct" mutable="false" >
<id name="Id" type="Guid" >
<generator class="guid.comb" />
</id>
<property name="Name" />
<!-- more properties -->
</class>
Run Code Online (Sandbox Code Playgroud)
查看SQL
Select NewID() as Id, ProductName as Name, --More columns
From Product
Run Code Online (Sandbox Code Playgroud)
类
public class ProductView
{
public virtual Id {get; set;}
public virtual Name {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我不需要产品的ID或者在某些视图的情况下我可能没有视图的ID,这取决于我是否可以控制View
有没有更好的方法将视图映射到nhibernate中的对象?
编辑
答案到目前为止
制图
<class name="ProductView" table="viewProduct" mutable="false" >
<id name="Id" type="Guid" />
<property name="Name" />
<!-- more properties -->
</class>
Run Code Online (Sandbox Code Playgroud)
类
public class ProductView …Run Code Online (Sandbox Code Playgroud) 我试图在我的应用程序中决定审计日志记录的最佳方法.日志的主要原因是报告事件序列(更改).
我有一个对象的层次结构,我需要在后一个日期在该层次结构的任何部分发生变化时创建报告.
我认为我有三个选择:
我目前倾向于选项1.
我遇到的问题是SQL Server Reporting Services不喜欢Sum(First())表示法.它只允许Sum()或First().
上下文
我正在创建对帐报告.即.什么袜子我们有一个时期的开始,订购什么和我们最后有什么股票.
Type,Product,Customer,Stock at Start(SAS), Ordered Qty, Stock At End (SAE) Export,1,1,100,5,90 Export,1,2,100,5,90 Domestic,2,1,200,10,150 Domestic,2,2,200,20,150 Domestic,2,3,200,30,150
我按类型分组,然后选择产品并列出购买该产品的客户.我想显示SAS,Ordered Qty和SAE的总数,但如果我在SAS或SAE上做了总和,那么当产品1和2分别为100和200时,我得到的值分别为200和600.
我认为我可以做一个Sum(First())但是SSRS抱怨我不能在聚合中有一个聚合.
理想情况下SSRS需要一个Sum(Distinct())
迄今为止的解决方案
1.不要将开始时的库存和最后的库存显示为总计的一部分.
2.直接在报告中编写一些代码来进行计算.尝试过这个 - 没有按照我的预期工作.3.编写程序集进行计算.(没试过这个)
编辑 - 问题澄清
问题源于这样的事实,即实际上两个报告合并为一个(我看到它).生产报告和销售报告.
该报告试图解决这些标准
复杂因素是我们将它卖给谁.不管怎样,它本来就很容易.但包括它意味着其他顶线数字(开始时的库存和最后的库存)与销售的产品无关,而不是特定的产品.
我使用GUID作为我所有其他表的主键,但我有一个需要增加数字的要求.我尝试使用自动增量在表中创建一个字段,但MySql抱怨它需要是主键.
我的应用程序使用MySql 5,nhibernate作为ORM.
我想到的可能的解决方案是:
将主键更改为自动增量字段,但仍将Id作为GUID,以便我的应用程序的其余部分保持一致.
使用GUID和自动增量字段创建复合键.
我现在的想法是倾向于复合的关键想法.
编辑:行ID(主键)是当前的GUID.我想添加一个自动增量的INT字段,以便它是人类可读的.我只是不想放弃使用GUID作为主键的应用程序中的当前标准.
我正在寻找方法来追踪SSRS错误发生的位置.
我有一个大约90列宽的报告,包含多个公式.我遇到的问题是,在其中一个公式中存在除零误差.我已经在这个问题中实现了Robert Harvey的答案,但我仍然得到错误.我知道答案是有效的,因为我在一份小报告中对其进行了测试.
所以问题是:当SSRS仅报告发生错误时,您究竟如何确定SSRS中发生错误的位置?
编辑显示的错误是
本地报告处理期间发生错误报告处理期间
出现错误
无法读取数据集的下一个数据行MainReport
Divide By Zero错误已装入
我正在从sharepoint列表中检索值列表,这很有效但我的问题是它只检索前100条记录.目前有500条记录应该可用.
场景:我在infopath表单上有两个组合框:
位置列表将过滤区域列表,但由于infopath似乎只检索前100个记录,因此大多数位置不显示任何区域,因为没有任何要过滤的区域.
我一直在尝试使用IIS托管网站中的服务工作者来缓存网站的一些静态内容.该站点是使用Windows身份验证的内部应用程序.我已经能够在没有太多麻烦的情况下注册和运行服务工作者,但是只要我打开缓存并开始向缓存添加文件,承诺就会因授权失败而失败.返回的HTTP结果是401 Unauthorized.这是对浏览器和服务器能够协商授权之前的前几个请求的通常响应.
我会尽快发布一些代码来帮助解释.
编辑
var staticCacheName = 'app-static-v1';
console.log("I AM ALIVE");
this.addEventListener('install', function (event) {
console.log("AND I INSTALLED!!!!");
var urlsToCache = [
//...many js files to cache
'/scripts/numeral.min.js?version=2.2.0',
'/scripts/require.js',
'/scripts/text.js?version=2.2.0',
'/scripts/toastr.min.js?version=2.2.0',
];
event.waitUntil(
caches.open(staticCacheName).then(function (cache) {
cache.addAll(urlsToCache);
}).catch(function (error) {
console.log(error);
})
);
});
Run Code Online (Sandbox Code Playgroud) nhibernate ×3
audit ×1
bug-tracking ×1
iif-function ×1
infopath ×1
logging ×1
mysql ×1
ntlm ×1
primary-key ×1
sharepoint ×1
sql ×1
sql-server ×1
views ×1