小编Dan*_* W.的帖子

Excel函数在由后面的代码设置时抛出异常.在excel中使用时可以工作

我已经定义了自己的Excel函数(称为ADXExcelFunctionDeescriptor).方法存根如下所示:

public static object ExecuteMyFunction(object values, object tagName)
{ // Some code here }
Run Code Online (Sandbox Code Playgroud)

该方法接收一个double值数组和一个名为name的字符串.
在设计视图中,我的ADXExcelFunctionDeescriptor如下所示:

在此输入图像描述

我通过以下代码行调用并设置函数:

var formula = string.Format(@"={0}({1};{2})", Temp.FORMULA_NAME, this.DataRangeTextBox.Text, tagCaption);
resultRange.set_Value(Type.Missing, formula);
resultRange.Formula = resultRange.Value;
Run Code Online (Sandbox Code Playgroud)

这将导致异常!例外情况如下:

System.Runtime.InteropServices.COMException occurred
  HResult=-2146827284
  Message=Ausnahme von HRESULT: 0x800A03EC
  Source=""
  ErrorCode=-2146827284
  StackTrace:
       bei System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
       bei Microsoft.Office.Interop.Excel.Range.set_Value(Object RangeValueDataType, Object )
       bei bb.ExcelToolbar.Controls.bbControl.ApplyFormula(Object sender, EventArgs e) in c:\xx\yy\zz\bb\bb.ExcelToolbar\Controls\bbControlcs:Zeile 88.
  InnerException: 
Run Code Online (Sandbox Code Playgroud)

此外,如果我没有传递tagName参数,该函数将返回一个没有任何异常或错误的结果.

var formula = string.Format(@"={0}({1})", Temp.FORMULA_NAME, this.DataRangeTextBox.Text, tagCaption);
resultRange.set_Value(Type.Missing, formula);
resultRange.Formula …
Run Code Online (Sandbox Code Playgroud)

c# excel excel-formula excel-addins addin-express

8
推荐指数
1
解决办法
687
查看次数

MessageBox没有关注MessageBoxButton

有没有办法在C#中显示MessageBox而不关注消息框中的按钮?例如,以下代码片段(无法正常工作):

 MessageBox.Show("I should not have a button on focus",
                        "Test",
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Question,
                        MessageBoxDefaultButton.Button3);
Run Code Online (Sandbox Code Playgroud)

我想要的是显示MessageBox而不关注[是]或[否].背景是客户扫描几个在和处有回车的条形码.因此,当消息框弹出并且他们扫描更多条形码而没有注意到消息框时,他们"按下"按钮.

.net c#

7
推荐指数
2
解决办法
5392
查看次数

应该是只读db-field的属性(Fluent NHibernate Automapping)

我使用Fluent NHibernate和自动功能.现在我正在寻找像配置,设置,自定义属性 - 无论如何 - 将实体属性声明为"ReadOnlyFromDb"

在MsSql数据库中,我在其中一个表中使用计算列,其中根据特定数据行的某些其他值计算值.现在我已将实体类中的此列声明为

public virtual int STATUS { get; private set; }
Run Code Online (Sandbox Code Playgroud)

获取表格的具体数据一切正常.STATUS使用数据表中的特定值填充属性.

当我尝试SaveUpdate()特定对象时出现问题.我总是得到例外

A computed column cannot be the target of an INSERT or UPDATE statement
Run Code Online (Sandbox Code Playgroud)

这对我的理解是正确的 - 以及它应该如何;)!

基本上我正在寻找配置,设置,自定义属性 - 无论如何 - 要说

Hey Fluent NHibernate - 获取特定属性propertyName但不插入/更新属性propertyName

有类似的东西吗?或者这种情况是否存在解决方法?我搜索了流利的nhibernate wiki,但没有找到一个smilliar案例.

我希望有人已经面对并解决了这个问题!

以下是我创建会话的代码片段(可能有帮助):

    public static ISessionFactory GetNHibernateSession()
    {
        if (nhibernateSession != null)
            return nhibernateSession;

        if (ConfigurationManager.AppSettings[msSqlConnectionString] == null || ConfigurationManager.AppSettings[msSqlConnectionString] == String.Empty)
            throw new NullReferenceException(String.Format("AppSetting '{0}' must not …
Run Code Online (Sandbox Code Playgroud)

nhibernate fluent automapping

1
推荐指数
1
解决办法
1362
查看次数

与 SUM() 等效的函数,用于 SQL 报告中的乘法

我正在寻找以下功能或解决方案:

对于 SQL Reporting 中的图表,我需要将 A 列中的值相乘。为了求和,我将=SUM(COLUMN_A)用于图表。但是我可以用什么来乘法 - 到目前为止我无法找到解决方案?

目前我正在计算堆积列的值如下:

=ROUND(SUM(Fields!Value_Is.Value)/SUM(Fields!StartValue.Value),3)
Run Code Online (Sandbox Code Playgroud)

而不是 SUM 我需要一些东西来乘以这些值。类似的东西:

=ROUND(MULTIPLY(Fields!Value_Is.Value)/MULTIPLY(Fields!StartValue.Value),3)
Run Code Online (Sandbox Code Playgroud)

编辑#1

好的,试图让这件事运行起来。图表的表达式如下所示:

=Exp(Sum(Log(IIf(Fields!Menge_Ist.Value = 0, 10^-306, Fields!Menge_Ist.Value)))) / Exp(Sum(Log(IIf(Fields!Startmenge.Value = 0, 10^-306, Fields!Startmenge.Value))))
Run Code Online (Sandbox Code Playgroud)

如果我手动计算我的“需求”,我必须得到以下结果:

需要的结果

在我的 SQL 报告中,我得到以下结果:

在此处输入图片说明

为方便起见,这些是原始值:

在此处输入图片说明

并且您可以按 CW、CQ 或 CY 对图表进行分组(第一张图片中的值是 FertStufe 原始值的聚合总和值)

编辑#2

尝试了您的表达式,结果如下: 在此处输入图片说明

只想说清楚:

列中的值

=Value_IS / Start_Value
Run Code Online (Sandbox Code Playgroud)

在第一张图片中彼此相乘

0,9947 x 1,0000 x 0,59401 = 0,58573

扩散日历周 44 和

起始值:1900,00 值是:1890,00 == 产量:0,99474

Waffer unbestrahlt Calenderweek 44 Sums

起始值:620,00 值是:620,00 == yield 1,0000

Pellet Calenderweek 44 Sums

起始值:271,00 值是:160,00 …

multiplication aggregate-functions reporting-services ssrs-2008

1
推荐指数
1
解决办法
3188
查看次数