2014-12-03 2 views
1

Я протестировал свою программу на своем ПК, и все работает нормально, однако, когда я пытаюсь развернуть приложение Windows Form Application на клиентской машине, появляется окно Crystal Reports, запрашивающее PASSWORD, despit the fact которые установили это с помощью:VB.NET - Развертывание приложения Crystal Report

Dim cryRpt As New ReportDocument 
     Dim crtableLogoninfos As New TableLogOnInfos 
     Dim crtableLogoninfo As New TableLogOnInfo 
     Dim crConnectionInfo As New ConnectionInfo 
     Dim CrTables As Tables 
     Dim CrTable As Table 

     cryRpt.Load("C:\ActivityReport.rpt") 

     cryRpt.SetParameterValue("FromDate", TextBox1.Text) 
     cryRpt.SetParameterValue("ToDate", TextBox2.Text) 

     With crConnectionInfo 
      .ServerName = serverbox.Text 
      .DatabaseName = dbbox.Text 
      .UserID = userbox.Text 
      .Password = passwordbox.Text 
     End With 

     CrTables = cryRpt.Database.Tables 
     For Each CrTable In CrTables 
      crtableLogoninfo = CrTable.LogOnInfo 
      crtableLogoninfo.ConnectionInfo = crConnectionInfo 
      CrTable.ApplyLogOnInfo(crtableLogoninfo) 
     Next 

     CrystalReportViewer1.ReportSource = cryRpt 
     CrystalReportViewer1.Refresh() 

Я также заметил, что БАЗ поле пустым в Crystal Reports Pop Up, объясняющие бы, почему я получаю сообщение об ошибке: Не удалось войти при вводе пароля вручную, но не могу понять, почему имя базы данных не передается.

Я попытался изменить имя DATABASE в моей форме (на компьютере DEV), которая находится в dbbox.text, и это не позволяет запустить отчет, поэтому он должен передавать базу данных как часть строки соединения?

Я установил средство просмотра отчетов Crystal на клиентской машине, поскольку, хотя это может быть, но не повезло. Должен ли я установить .NET v4, возможно?

Действительно застрял сейчас и хотел бы немного посоветоваться.

Благодаря Роб

+0

Если это помогает, это скриншот моего приложения, показывающего ошибку, которую я описал: [СООБЩЕНИЕ ОШИБКИ НАЖМИТЕ ЗДЕСЬ] (http://hcs-it.com/ReportError.jpg) – Rob4236

ответ

0

Я просто использовать:

crDocument.SetDatabaseLogon("name", "password", "server", "database") 

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

Возможно, кто-то здесь знает почему, но то, что я написал выше, работает для меня.

+0

Привет, Кейт, спасибо за ответ но не исправляет проблему. Я изменил с помощью SetDatabaseLogon(), однако он все еще работает на моей машине, однако теперь единственное, что передается в Crystal Report, это SERVER (LOCAL) \ SQLEXPRESS, ПОЛЬЗОВАТЕЛЬ больше не является их , Поцарапать голову? Могу ли я жестко кодировать в RPT-файле соединение даже ??? – Rob4236