Такая странная проблема при попытке распечатать xtrareportC#

Место общения программистов C#
Ответить
Anonymous
 Такая странная проблема при попытке распечатать xtrareport

Сообщение Anonymous »

Я подключаюсь к принтеру SATO следующим образом:

Код: Выделить всё

// I call the method like this,in the load event of the xtraform
Printer prtr = new Printer();
prtr.ConnectPrinter(etiket_mak_ip, Convert.ToInt32(PortControl), lstLogAlt100, printer_name);

// Code from another class
private TcpClient clt = null;
private NetworkStream ns = null;
private StreamReader sr = null;

public bool ConnectPrinter(string Ip, int Tcp, ListView lst, string printer)
{
clt = null;
ns = null;
sr = null;

try
{
if (!IsExistsHost(Ip, lst, printer))
{
throw new Exception("Printer Error(ConnectPrinter)");
}

clt = new TcpClient(Ip, Tcp);
ns = clt.GetStream();
sr = new StreamReader(ns);

connectionStatus = true;
return true;
}
Затем я пытаюсь распечатать отчет xtrareport следующим образом:

Код: Выделить всё

public void GetBarcode200(DataRow row)
{
Label200 lbl200 = new Label200();

lbl200.Rollid = row["Rollid"].ToString();
lbl200.Meter= row["Meter"].ToString();

ShipmentLabel.Sample200 report = new ShipmentLabel.Sample200(lbl200);
DevExpress.XtraReports.UI.ReportPrintTool printTool = new DevExpress.XtraReports.UI.ReportPrintTool(report);
printTool.Print("SampleSato");
}
Label200 — это, по сути, класс сущностей. Я передаю значения, полученные из БД, в эти переменные, а затем передаю значения этих переменных в текстовые свойства xrlabels в классе Sample200.
Проблема в том, что этот метод «Печать» печатает штрих-код ТОЛЬКО после того, как я закрываю xtraform, который является дочерним элементом FluentDesignForm. В событии закрытия формы я удаляю объекты, которые помогают мне подключиться к принтеру, например:

Код: Выделить всё

private void frmConveyorBase100_FormClosing(object sender, FormClosingEventArgs e)
{
if (prtr != null)
{
prtr.DisconnectPrinter();
prtr = null;
}

Код: Выделить всё

//Code from another class
public void DisconnectPrinter()
{
try
{
if (sr != null)
{
sr.Close();
sr.Dispose();
sr = null;
}
if (ns != null)
{
ns.Close();
ns.Dispose();
ns = null;
}
if (clt != null)
{
clt.Close();
clt.Dispose();
clt = null;
}
}
Я предполагаю, что это связано со способом подключения к принтеру. Надеюсь, я ошибаюсь, потому что я не могу изменить этот способ. Любая помощь очень ценится, заранее спасибо.


Подробнее здесь: https://stackoverflow.com/questions/793 ... xtrareport
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»