Рейтинг:
6
Computechsoft
Да, я использую CrystalReportViewer. Моя формула выбора работает нормально, никаких проблем в этом нет. Поэтому при отправке отчета непосредственно на принтер я использую эту строку
InvoicePrint.PrintToPrinter(1, false, 0, 0)
Эта строка показывает все записи, Как установить конкретную запись в этой строке так же, как формула выбора в нижней строке.
CrystalReportViewer1.SelectionFormula = "{Invoice_Master.Invoice_no} = '" & LblInvoiceno.Текст & "'"
Wendelius
Не уверен, правильно ли я понимаю ситуацию. Вы хотите сказать, что фильтрация работает правильно при предварительном просмотре печати, но не работает при прямой печати?
Если это так, то по крайней мере одна проблема в вашем примере кода заключается в том, что вы сначала печатаете, а затем устанавливаете фильтр. Это должно быть наоборот.
Кроме того, как было сказано в моем первоначальном ответе, если вы еще не пробовали ViewTimeSelectionFormula
собственность, пожалуйста. Он ведет себя иначе, чем свойство SelectionFormula.
Если они не помогают, то совершенно другой подход может заключаться в ограничении данных в источнике данных. Например, если InvoicePrint
это таблица данных, вы можете использовать DataView для фильтрации данных, чтобы содержать только соответствующие записи и передавать данные из представления в отчет. Этот подход может быть проще, чем управление фильтрами внутри отчета
Computechsoft
Да что я говорю? эта фильтрация корректно работает с предварительным просмотром печати, но не работает при прямой печати?
Да я применил ViewTimeSelectionFormula но отчет показывает не печать напрямую
поэтому, пожалуйста, решите эту проблему без предварительного просмотра прямой отправки на принтер.
Dim mySelectionFormula As String = "{Invoice_Master.Invoice_no} = '" & LblInvoiceno.Text & "'" CrystalReportViewer1.ViewTimeSelectionFormula = mySelectionFormula
Wendelius
Вы еще не опубликовали полный код, который используете, но я так понимаю, что вы используете ReportDocument напрямую? Если это правильно, вы должны установить Документе.Свойство RecordSelectionFormula[^]
Если это неверно, пожалуйста, разместите все соответствующие коды, которые вы используете для печати.
Computechsoft
Dim ConnectionInfo As ConnectionInfo = New ConnectionInfo()
Дим CashReceipt В Новом Документе()
CashReceipt.приложение нагрузки.StartupPath & "\Reports\Sale Reports\CashReceipt.rpt")
Dim MyTables As Tables = CashReceipt.База данных.Таблицы
Для Каждого MyTable Как CrystalDecisions.CrystalReports.Двигатель.Таблица В MyTables
Dim MyTableLogonInfo As TableLogOnInfo = MyTable.LogOnInfo
ConnectionInfo.ServerName = ".\Отчеты"
ConnectionInfo.Имя Базы Данных = ""Админ
ConnectionInfo.Идентификатор пользователя = "СА"
ConnectionInfo.Пароль = "админ"
ConnectionInfo.Свойство Integratedsecurity = Ложь
MyTableLogonInfo.ConnectionInfo = ConnectionInfo
таблица MyTable.ApplyLogOnInfo(MyTableLogonInfo)
Следующий
RPTfrmCashReport.CrystalReportViewer1.ReportSource = CashReceipt
CashReceipt.PrintToPrinter(1, False, 0, 0)
Dim mySelectionFormula As String = "{Invoice_Master.Invoice_no} = '" & FrmSalebill.LblInvoiceno.Текст & "'"
RPTfrmCashReport.CrystalReportViewer1.ViewTimeSelectionFormula = mySelectionFormula
Wendelius
Как уже было сказано, Если вы используете ReportDocument для печати без ReportViewer, вам нужно установить RecordSelectionFormula. Так что попробуйте суммировать что-то вроде
...
MyTable.ApplyLogOnInfo(MyTableLogonInfo)
Next
Dim mySelectionFormula As String = "{Invoice_Master.Invoice_no} = '" & FrmSalebill.LblInvoiceno.Text & "'"
CashReceipt.RecordSelectionFormula = mySelectionFormula
CashReceipt.PrintToPrinter(1, False, 0, 0)
...
Computechsoft
Его нормально печатать непосредственно на принтере, но открывается принтер Microsoft default printer (OneNote). Но моя квитанция-это (POS) печать.
Computechsoft
Я применил это, но печать идет на принтере, но открывается "OneNote"
Я не хочу открывать "OneNot".
Непосредственно печатайте на принтере много добавлений, приходящих между печатью. Точно так же, как POS-печать.
Wendelius
Как уже было сказано, смена принтера-это другой вопрос, поэтому я предложил открыть еще один пост. Не забудьте включить в свой вопрос весь соответствующий код.
Computechsoft
Я создаю еще один пост.