所以我在水晶报告中有一个条形图.在此图表上,我有一个数据标签附加到每个图表,以秒为单位显示图表的值,如下所示:
我想做的是将此数据标签格式化为时间格式.因此,对于图表中的每个条形,数据标签将以以下格式显示:
HH:MM:SS.
我能够使用以下公式获得时间格式:
local NumberVar Sec;
local NumberVar ss;
local NumberVar mm;
local NumberVar hh;
local StringVar SSS;
local StringVar MMM;
Sec := Sum ({GetAlarmSummaryDataSet2Response/GetAlarmSummaryDataSet2Result/Items/AlarmSummaryItem2.StopTime}, {GetAlarmSummaryDataSet2Response/GetAlarmSummaryDataSet2Result/Items/AlarmSummaryItem2.Section}) ;
hh := Int (Sec/3600);
mm :=Int ((Sec/60)- (60* Int(Sec/3600 )));
If mm<10 then MMM := "0" & ToText (mm,0);
If mm>9 Then MMM := ToText(mm,0) ;
ss :=Sec-(3600 * hh ) - (60 * mm ) ;
If ss<10 then SSS := "0" & ToText (ss,0);
If ss>9 Then SSS := ToText(ss,0) …Run Code Online (Sandbox Code Playgroud) 所以我有一个名为IDX_ATS_CALC_END_TIME的索引表.该列是时间戳值.此列还有一个触发器,可在填充或更新另一列(Interval_duration)时自动填充列.
触发器如下:
TRIGGER "DATAMART"."TRG_ATS_CALC_END_TIME"
BEFORE INSERT OR UPDATE OF INTERVAL_DURATION ON DATAMART.AGG_TIME_SUMMARY
FOR EACH ROW
DECLARE
BEGIN
IF :New.INTERVAL_DURATION > 0 THEN
:New.calc_end_time := :New.start_date_time + pb_util.secondtointerval(:New.INTERVAL_DURATION);
ELSE
:NEW.CALC_END_TIME := :New.start_date_time;
END IF;
EXCEPTION
WHEN OTHERS THEN
pb_util.logdata(1, 'TRG_ATS_CALC_END_TIME', 'Exception Thrown in interval: ' || :New.Interval_DURATION, SQLERRM || ' stack: ' || dbms_utility.format_error_backtrace);
END TRG_ATS_CALC_END_TIME;
Run Code Online (Sandbox Code Playgroud)
当我的表最初填充时,没有问题.我的问题是,当我在表上执行插入/更新并尝试通过直接更改列或仅更新interval_duration列来修改此列时,我抛出了此错误:
ORA-08102:未找到索引键,obj#97523,文件4,块244(2)
提到的索引是基于函数的索引.索引上使用的函数是calc_end_time列上的sys_extract_utc.
我花了几天时间试图解决这个问题.我重建了索引,我尝试删除并重新创建索引.这两个似乎是这个问题的常见答案,但它们对我不起作用.我使用以下方法分析了索引:
ANALYZE INDEX IDX_ATS_CALC_END_TIME VALIDATE STRUCTURE;
它回来没有问题.
我唯一能够成功更新此列而不会出现此错误的方法是禁用触发器,执行更新,然后再次启用触发器.这对我来说不是一个可行的解决方案.
所以我想知道是否有人遇到过这种类型的问题以及我可以尝试修复此错误的其他步骤.
更新: 下面你会发现函数pb_util.secondtointerval()代码:
FUNCTION SecondToInterval
(Seconds_IN NUMBER
)
RETURN CONST.PBInterval
IS
sec NUMBER(20, 9); …Run Code Online (Sandbox Code Playgroud) 所以我试图将水晶报告导出为pdf,而无需在我的Web应用程序的运行时查看器中使用
ExportToHttpResponse
方法.在加载参数时,一切似乎都正常运行,获取文件名/路径加载报告.但是当我执行部分时,假设创建一个弹出对话框,为用户提供保存,运行,取消选项,任何类型的下载都没有任何反应.不会抛出任何错误.它并没有踩到我所知道的代码的任何部分.它似乎运行ExportToHttpResponse行,然后不执行任何操作.
所以我希望有人可以给我一些方向,我可能会在下面的代码中做错了:
protected void ExportRptButton_Click( object sender, EventArgs e )
{
if ( null != SelectedReport )
{
rptParams.Clear();
rptParams = null;
// Get the report document
// string filePath = Server.MapPath( @"~\Reports\" + SelectedReport.FileName + ".rpt" );
// Declare a new Crystal Report Document object and load the report file into the report document.
ReportDocument rptDoc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
ConfigureCrystalReports(rptDoc);
// repDoc.Load(rptFileName);
// AddParameters();
// Set the report parameters the report object.
LoadParameterFields(rptDoc);
// Set the static …Run Code Online (Sandbox Code Playgroud) 这似乎是一个愚蠢的问题,但是:
所以我想要做的是设置一个菜单部分,这样当用户点击该部分的标题时,它会将它们发送到页面上的特定位置而不必缩小.我不完全确定这将如何工作或实现多么复杂.
我真的很棒
菜单
第一项(是一个链接)
第二项(是一个链接)
等(是一个链接)
然后进一步向下
第一项(点击菜单中的第一项页面到此处)
"这里的细节"
第二项(单击菜单中的第二项页面到此处)
"详情在这里"
我到底该怎么做呢?
非常感谢任何帮助或建议.谢谢.
我有一个日期/时间字符串,如下所示:
Wed Sep 21 2011 12:35 PM Pacific
Run Code Online (Sandbox Code Playgroud)
如何将DateTime格式化为这样?
谢谢!
所以我的问题是我在这段代码中得到了一个无效的参数错误.它的意思是拿出一张牌并得到它们总价值的总和.然后,如果该值大于21,它会检查手中的任何牌是否是ace(或者类型是== ace并且它的牌totalVal == 11)现在我的问题是我为此写的语句无论手中是否有ace都会运行并抛出错误.
我想知道是否有任何其他方式我可以写下面的语句,以使其正确运行?
public int HandTotal()
{
int total = CurrentCards.Sum(n => n.Total);
**while ( total > 21 && CurrentCards.First(n => n.Type == 13 && n.Total == 11) !=null)**
{
CurrentCards.First(n => n.Type == 13).Total = 1;
total = CurrentCards.Sum(n => n.Total);
return total;
}
return total;
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种不同的方法,包括将!= null更改为> 0,但是会抛出一个无效的参数错误,说明>不能与此语句一起使用.有没有其他方法可以确定CurrentCards.First(n => n.Type == 13 && n.Total == 11)是真还是假?
非常感谢任何帮助或建议.
谢谢
我在我的c#项目中添加了text file一个resource文件.在应用程序中,我看到这个文件字符串如:ex.
string fileContent = Properties.Resources.fileName;
Run Code Online (Sandbox Code Playgroud)
我的问题是如何编辑文本文件并使用代码将其保存回资源文件?
所以我正在开发一个Web服务,它将使用两个调用数据库的函数从数据库中获取数据.我们的目标是让它如果其中一个参数中有特定值,那么就说
bool x= false;
if ( "Y".Equals( parameterValve, StringComparison.InvariantCultureIgnoreCase ) )
x= true;
if ( x)
cmd.Parameters.Add( "function_call1", OracleType.Cursor ).Direction = ParameterDirection.Output;
else
cmd.Parameters.Add( "function_call2", OracleType.Cursor ).Direction = ParameterDirection.Output;
try
{
grab data here
}
return to webservice
Run Code Online (Sandbox Code Playgroud)
我已经完成了所有这些设置,它适用于第一个参数.但是,当我使用第二个参数调用调用webservice时,我收到此错误.
System.Data.OracleClient.OracleException: ORA-06503: PL/SQL:
Function returned without value
ORA-06512: at "database.package", line 103
ORA-06512: at line 1
Run Code Online (Sandbox Code Playgroud)
我的问题是这个错误发生的原因究竟是什么?是因为我正在调用函数不正确或者函数调用本身是否有错误?
基本上我已经盯着这段代码了一段时间,现在试图弄清楚我做错了什么,所以我希望有人能够指出我正确的方向,我应该在哪里纠正这个错误.
非常感谢任何帮助或建议.
谢谢!
所以我正在开发一个安装程序,安装程序连接到数据库并创建表并填充它们.除非我尝试将行添加到certian表中,否则此方法的每个方面都能正常工作.
declare
retVal INTEGER;
rptID INTEGER;
catID INTEGER;
wsID INTEGER;
paramID INTEGER;
dtID INTEGER;
begin
select PK into catID from RPT_CATEGORY where KEYVALUE = 'ProductivityReportsCategory';
select PK into rptID from RPT_REPORT where KEYVALUE = 'ProductivitySummaryReport2';
select PK into wsID from RPT_WEBSVC where KEYVALUE = 'NotApplicable' and category_fk = catID;
Run Code Online (Sandbox Code Playgroud)
填充数据库的select语句如下所示:
select PK into wsID from RPT_WEBSVC where KEYVALUE = 'GetMachineNameList' and category_fk = catID;
paramID := RPT_CONFIGURATION.ADD_PARAMETER( rptID, wsID, dtID, 'Machine', 'parameters.GetProductivityDataSet3.inserterid', 4, NULL, NULL, NULL, 0, 0, 0, 'Y', …Run Code Online (Sandbox Code Playgroud) 因此,对于我创建的报告,他们有一组参数,当没有特定值过去时,报告会将其视为获得所有可能解决方案的数据.
例如:您将机器名称作为参数,并且不会将特定的机器名称放入参数中.然后,您将获取数据库中所有可能的计算机名称的返回数据.我正在谈论的一个例子如下.

但是,当我没有在参数字段中放入任何值时,报表中不会显示任何值.我想要的是让它显示"全部"到字段而不是它作为空白返回.
所以我的问题是如何显示"全部",其中红色圆圈在报告中而不是在没有为参数输入值时显示为空白?
非常感谢任何帮助或建议.谢谢.
我有一个存储过程,我认为是在无限循环中捕获,但在分开并单独运行各种循环之后,事实证明我的代码导致了
ORA-01000:超出最大打开游标数
问题似乎与我填充前两个游标的方式有关.这似乎是一个愚蠢的问题,但我希望有人能就如何更好地处理这些游标的数量给我一些建议?
下面你将完整地找到我的程序,然后我将分解似乎导致问题的区域.
完整程序:
procedure SplitIntrvlsAtShiftBoundaries is
vRecCount number;
RC number;
vShiftIDAtIntervalStart number;
vShiftIDAtIntervalEnd number;
vDummyRecSecs number(6,4) := 0.0;
vStartTimestamp timestamp with time zone;
vEndTimestamp timestamp with time zone;
cCurs Sys_refcursor;
vCurrentRec TMP_SHIFT_LIST_TBL%rowtype;
vCurrentInterval MACHINE_INTERVAL%rowtype;
vNewInterval MACHINE_INTERVAL%rowtype;
lProcName CONST.PBString;
vIntervalDOW smallint; -- intervals never span a midnite boundary
-- are split over midnite in prior steps.
CURSOR C1 IS SELECT * FROM TMP_SHIFT_MI_TBL ORDER BY START_DATE_TIME ASC, MACHINE_ID;
CURSOR C2 IS SELECT * FROM TMP_SHIFT_LIST_TBL ORDER BY SHIFT_START_DAY ASC, …Run Code Online (Sandbox Code Playgroud)