ruchikdv Ответов: 2

Crystal сообщает об ошибке


У меня проблема на линии
отчет.setdatasource(объект DataTable)
Отчет crystal создается с источником данных, являющимся локальным набором данных
при настройке источника данных я заполняю datatable (те же имена столбцов, что и набор данных) значениями
По достижении этой линии я получаю эту ошибку:

CrystalDecisions.CrystalReports.Engine.InvalidArgumentException was unhandled
  Message=
Error in File temp_d2d17ab8-3746-4cba-a8ba-b92d2a3505a4 {74F89B47-DB88-4A0C-BA00-E9DD157AFCD9}.rpt:
Invalid negative value.
  Source=CrystalDecisions.ReportAppServer.DataSetConversion
  StackTrace:
       at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataSet dataSet)
       at Project.PurcahseOrder.makereport() in C:\Users\DART\Desktop\Nirav MYS (10.09.12)\Project(Nirav)\Project\PurcahseOrder.vb:line 1367
       at Project.PurcahseOrder.btnConfirm_Click(Object sender, EventArgs e) in C:\Users\DART\Desktop\Nirav MYS (10.09.12)\Project(Nirav)\Project\PurcahseOrder.vb:line 1074
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(ApplicationContext context)
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
       at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
       at Project.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: System.Runtime.InteropServices.COMException
       ErrorCode=-2147483076
       Message=
Error in File temp_d2d17ab8-3746-4cba-a8ba-b92d2a3505a4 {74F89B47-DB88-4A0C-BA00-E9DD157AFCD9}.rpt:
Invalid negative value.
       Source=""
       StackTrace:
            at CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.ReplaceConnection(Object oldConnection, Object newConnection, Object parameterFields, Object crDBOptionUseDefault)
            at CrystalDecisions.CrystalReports.Engine.Table.SetDataSource(Object val, Type type)
            at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
       InnerException:

[no name]

И что?

ruchikdv

И что??
Проблема не решается
Если я уберу эту линию. Он работает гладко

[no name]

Это полная чушь. И в чем же заключается Ваш вопрос? У вас, должно быть, был вопрос. Или вы просто хотите, чтобы мы знали, что у вас есть недопустимый аргумент?

Ruchik Vora

Вопрос, очевидно, заключается в том, как его решить
B. информация об этой ошибке вряд ли доступна
Прежде чем делать поспешные выводы, подумайте с точки зрения того, кто ставит этот вопрос. Мы не достаточно умны, но мы ожидаем, что вы будете. Так что лучше поймите это

[no name]

Как именно это очевидно? Это может быть очевидно для вас, но это не очевидно ни для кого другого. Насколько нам известно, вы не знаете, что значит "отрицательный". Это просто трассировка стека без какой-либо вспомогательной информации. Никакого представления передаваемых данных, никакого кода, демонстрирующего вашу проблему, и никаких усилий, предпринимаемых для ее решения.
С. Какие я выводы сделал прыжок? Я не стал делать поспешных выводов. Если бы я это сделал, я бы опубликовал бессмысленное решение проблемы, которая еще не существует. Единственный вывод, к которому я мог бы прийти, заключается в том, что вы не потрудились прочитать рекомендации по размещению, прежде чем просто опубликовать трассировку стека и ожидать чуда.

Kschuler

Это хорошая мысль, но у нас просто недостаточно информации, чтобы просто рассказать вам, как это исправить. Имея дело с Crystal Reports, вы не можете просто скопировать и вставить код в вопрос очень легко ... поскольку мы не можем видеть, что вы делаете в отчете, мы должны сообщить нам об этом. Ошибка говорит о недопустимом негативе. Таким образом, способ решить эту проблему - выяснить, где у вас недействительный отрицательный результат. Мы не сможем получить более подробную информацию о том, как решить эту проблему, пока вы не предоставите нам дополнительную информацию о том, как настроен ваш отчет. Вы используете пармы? Подотчеты? Группировка? Поля формул? Графики? Существует ряд причин, по которым вы можете получить такую ​​ошибку, и, не увидев отчета, мы не сможем вам помочь. Расскажите подробнее о своем отчете.

2 Ответов

Рейтинг:
8

ruchikdv

Там был только datatable из локального набора данных и некоторые текстовые объекты в моем CR не было никакого вопроса об ошибке отрицательного значения, так как не было никакой формулы или какого-либо другого ограничения/сложности в отчете оказывается, что ошибка была вызвана отрицательным значением свойства FirstLineIndent при принятии его положительным ошибка была решена


Рейтинг:
1

Kschuler

Для меня важная часть этого сообщения об ошибке заключается в следующем:
Invalid negative value

Похоже, что ваш отчет Crystal ожидает положительного числового значения в вашем отчете, но вы передаете отрицательное. Проверьте свои данные. Если вы передаете неверные данные,то исправьте это. Если отрицательное значение разрешено, то проверьте свой отчет Crystal и убедитесь, что он ожидает отрицательных значений.

-- Обновление --
Также может быть, что отчет Crystal ожидает отрицательное значение, но не в том диапазоне, который вы отправили. Так что, возможно, вы посылаете очень большое отрицательное число?


Ruchik Vora

Спасибо Кшулеру за ответ
Но я сам заполнил таблицу положительными целыми числами с помощью цикла
Я, кажется, не нахожу, откуда тогда берется отрицательное значение!

Kschuler

Есть ли в вашем отчете параметры или поля формул? Возможно, один из них создает отрицательное значение?

Kschuler

Возможно, включение большего количества кода, показывающего нам, как вы заполняете свой набор данных, поможет нам добраться до сути этого вопроса. Вы можете нажать на ссылку улучшить вопрос, чтобы отредактировать свой вопрос и добавить более подробную информацию.

ruchikdv

Я понимаю Кшулера, я не предоставил вам достаточно информации, чтобы помочь мне наилучшим образом. Моя ошибка.
В настоящее время проблема решена.
Я объясню проблему:
В моем CR была только datatable из локального набора данных и некоторые текстовые объекты
Не было и речи об ошибке отрицательного значения, поскольку в отчете не было никакой формулы или какого-либо другого ограничения/сложности
Оказывается, ошибка была вызвана отрицательным значением свойства FirstLineIndent
Сделав его положительным ошибка была решена
Большое спасибо Кшулер за то что уделили этому свое драгоценное время
С уважением,
Ручик Вора

Kschuler

Рад слышать, что вы ее разгадали. Возможно, вы захотите добавить свое собственное решение к этому вопросу и отметить его как правильное, чтобы другие, у кого есть те же или похожие вопросы, могли лучше его увидеть. И это не ошибка-не включать достаточно информации. Особенно с вопросами Хрустального отчета. Всегда трудно понять, какая информация полезна, а какая нет. И это трудно разместить код, потому что с Crystal не так много фактического кода, это все эти маленькие настройки и окна свойств. Я бы никогда не додумался проверить значение свойства FirstLineIndent. :)