2012-09-03 2 views
0

VS 2010 버전입니다.thera는 Crystal Reports에 NULL 값을 프로그래밍 방식으로 전달하는 방법입니다

CR은 매개 변수 값을 묻는 메시지가 표시 될 때 'NULL로 설정'이라는 귀여운 작은 확인란이 있기 때문에 CR에서 NULL 값을 허용 할 수 있습니다. 이것은 내가 필요한 행동입니다.

그러나 나는 그와 같은 보고서를 거의 호출하지 않으며, 코드에서 그렇게합니다. 따라서 사용자가 매개 변수에 값을 제공하지 않으면 NULL 값을 전달하므로 보고서 자체에서 다르게 처리 할 수 ​​있습니다.

나는 CR 포럼에서 주로 인터넷 검색을 해왔고 그 중 일부는 실제로 작동하지 않습니다.

이것은 그들 중 하나입니다

ParameterDiscreteValue objDiscreteValue = new ParameterDiscreteValue(); 
objDiscreteValue.Value = null; 
rptH.SetParameterValue(parName, new ParameterDiscreteValue(objDiscreteValue)); 

CR은 용 매개 변수 값을 제공하지 않은 말했다.

나는 근육을 두 번 매개 변수를 만들어 해결합니다. 하나의 실제 매개 변수와 하나의 위성 매개 변수 (부울 값, 실제 매개 변수에 대한 값이 있는지 알아보기 위해). 그리고 그것은 작동합니다. 하지만 지루하고 내 제네릭 (보고서 메타 데이터를 기반으로 매개 변수를 자동으로 묻는 메시지)을 매우 어렵게 만듭니다.

나는 누군가가이 문제에 대한 해결책을 찾기에 충분히 깊숙이 파고 들기를 바라고있다.

감사합니다,

답변

0

나는 VS.2005으로 이런 짓을,하지만 난이 같은 문제 같아요. 경험상으로 우리는 VARCHAR 데이터 타입에 문제가 없었지만 Number 데이터 타입을 사용할 때 문제가 발생합니다.

VARCHAR 데이터 형식의 경우 매개 변수에 빈 String을 전달하기 만하면됩니다. 내가 NULL 값을 전달하려면

이 경우

MyParamFields.Add(AddParamReport("@TheActiveYear", mTahunAktiv, ParameterValueKind.StringParameter))

가, 난 그냥 내 VB.Net 코드 내에서 mTahunAktiv 변수에 빈 문자열을 제공 : 예를 들어, 나는 다음과 같이 데이터 유형 VARCHAR와 SQL 서버 내에서 매개 변수가 예 : mTahunAktiv="". CR은이를 null 값으로 제안하고 올바른 결과를 제공합니다.

Number 데이터 종류의 경우 다소 까다 롭습니다. 나는 이것이 지금 가장 좋은 방법이라고 생각한다. 내가 봤지만 아직 해결책을 알지 못한다.

내 경우 예를 들어 나는 데이터 유형 SMALLINT와 숫자 값에 월을 전달하는 매개 변수를 가지고 있지만, 때때로 사용자는 NULL로 값을 필요로한다. 문제를 극복하기 위해 예제 13을 해당 매개 변수로 보냅니다.하지만 SQL QUERY에서 처리해야합니다. 매개 변수에 13 값을 지정하면 NULL이됩니다. 이를 위해 동적 필터링 매개 변수와 함께 STORED PROCEDURE를 사용하고 있습니다. 나에게 이것은 내 문제를 해결할 수있다.

내가 무슨 뜻인지 이해할 수있을지는 모르겠지만이 작은 exprience가 문제를 해결하는 데 도움이되기를 바랍니다.

0

ADO.NET DataSets에서 DBValue.Null을 발견하고이를 Crystal에 전달하려고했습니다.다음과 같이하십시오 :

ParameterDiscreteValue objDiscreteValue = new ParameterDiscreteValue(); 
objDiscreteValue.Value = DBNull.Value; 
rptH.SetParameterValue(parName, objDiscreteValue); 

나는 누군가에게 도움이되기를 바랍니다.하지만 어딘가에 기록되어야한다고 생각합니다.

감사합니다.