|
|
|
Reporting Services: Деление на ноль
|
|||
|---|---|---|---|
|
#18+
Коллеги, помогите, пожалуйста, решить проблему. Похоже Reporting Services Глючит... У меня для ячейки в таблице определено выражение "=IIF(ReportItems!A1=0,0,ReportItems!A2/ReportItems!A1)". При таком выражении в ячейке, где должен быть 0 по заданному выражению, стоит #Error. То сеть такое ощущение что сперва происходит деление, а потом уже анализ значения A1. Кто-нибудь сталкивался с такой проблемой, как у нее workaround? Всем заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 15:43 |
|
||
|
Reporting Services: Деление на ноль
|
|||
|---|---|---|---|
|
#18+
Что приходит в ReportItems!A1 ? Тип? Есть подозрение, что там может появится "NULL". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 16:25 |
|
||
|
Reporting Services: Деление на ноль
|
|||
|---|---|---|---|
|
#18+
Вообще тип float. Там у меня не может быть NULL так как в процедуре я пишу ISNULL(A1,0)... И еще, я поигралась с выражением и если оно такое (буду писать кратко): "=IIF(A1=0,0,A2/(A1+1))", то выводится 0 :) А это как-то странно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 16:45 |
|
||
|
Reporting Services: Деление на ноль
|
|||
|---|---|---|---|
|
#18+
А если так "=IIF(ReportItems!A1=0.0,0,ReportItems!A2/ReportItems!A1)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 16:54 |
|
||
|
Reporting Services: Деление на ноль
|
|||
|---|---|---|---|
|
#18+
Так тоже не работает :( Абстрагируемся от 0, вот так "=IIF(A1=0,4,A2/(A1+1))" выводит 4...значит условие A1 = 0 сработало верно, значит глюк где-то в другом месте :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 17:01 |
|
||
|
Reporting Services: Деление на ноль
|
|||
|---|---|---|---|
|
#18+
Ну а если с другой стороны? "=IIF(ReportItems!A1<>0,ReportItems!A2/ReportItems!A1,0)" ну или "=IIF(ReportItems!A1=0,"Нолик",ReportItems!A2/ReportItems!A1)" ? У меня просто получилось восстановить вашу ситуацию, только когда A1 у меня был строковый. 100% где то происходит неявное преобразование типов. Без исходных данных сложно угадать, где именно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 17:25 |
|
||
|
Reporting Services: Деление на ноль
|
|||
|---|---|---|---|
|
#18+
Уф...Проблема решилась утром сама собой. Дело вроде как получается не в неявном преобразовании типов, а в том, что в функции IFF сперва вычисляются все аргументы, соответственно считается и деление вне зависимости от условия "Если не ноль". Чтобы работало, можно написать так: =IIF(A1 = 0, 0, A2/IIF(A1=0,1,A1)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 10:27 |
|
||
|
Reporting Services: Деление на ноль
|
|||
|---|---|---|---|
|
#18+
PrettyBlond, еще один выход: Создать пользовательскую функцию, в которой написать: Код: plaintext 1. 2. 3. и вызывать её: =100 * Code.SafeDivide(reportitems!textbox141.value,reportitems!textbox43.value) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2009, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=31&msg=35848899&tid=1536222]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 472ms |

| 0 / 0 |
