Member 13153537 Ответов: 1

Как распечатать банковский чек без использования другой формы после сохранения данных в базе данных в приложении C# windows


У меня есть форма в том, что bankname и accountno и account type comboboxes и account payee checkbox, receivername textbox, amount textbox, rupeesinwords textbox и checkbook no и checkno и одна кнопка сохранения.То, что я хочу, это после заполнения всех деталей и сохранения данных в базе данных, а затем я хочу распечатать этот чек, не используя другую форму. данные в базу данных, а затем я нажимаю кнопку печати документ будет идти на печать.После долгого гугления я попробовал какой-то код.Он дает сообщение "документы не содержат никаких страниц", как это сделать, пожалуйста, помогите мне в этом.Я посвежел.Заранее спасибо.

Что я уже пробовал:

<blockquote class="quote"><div class="op">Quote:</div> 
 
    private void btnsave_Click(object sender, EventArgs e)
        {
            ChqMngrBsns.Masters.WriteChkInfo writeinfo = new 
   ChqMngrBsns.Masters.WriteChkInfo();
            if (cmbBankname.SelectedIndex == 0)
            {
                MessageBox.Show("Select Bank");
                return;
            }
            else if (cmbpayee.SelectedIndex == 0)
            {
              MessageBox.Show("Enter ReceiverName");
                return;
            }
            else if (txtAmnt.Text =="" || txtAmnt.Text==string.Empty)
            {
                MessageBox.Show("Enter Amount");
                 return;
            }
            if (bankid > 0)
            {
                writeinfo.bankid = bankid;
                if (chkAcntpyee.Checked == true)
                {
                   writeinfo.IsActpayee = true;
                }
                else
                {
                   writeinfo.IsActpayee = false;
                }
                writeinfo.pay = cmbpayee.Text.ToString();
                writeinfo.Amount = Convert.ToDecimal(txtAmnt.Text);
                writeinfo.Chkbookno = Convert.ToInt32(cmbckbno.GetItemText(cmbckbno.SelectedItem));
                writeinfo.Chkno = Convert.ToInt32(cmbChqno.GetItemText(cmbChqno.SelectedItem));
                writeinfo.Isprint = true;
                writeinfo.SaveData(true);
                 btnprint.Enabled = true;
            }
            ClearControls(this);
        }
        private void btnprint_Click(object sender, EventArgs e)
        {   
            CaptureScreen();
            printDocument1.Print();
            printPreviewDialog1.ShowDialog();
            ClearControls(this);
        }
        Bitmap memoryImage;
        private void CaptureScreen()
        {
            Graphics myGraphics = this.CreateGraphics();
            Size s = this.Size;
            memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
            Graphics memoryGraphics = Graphics.FromImage(memoryImage);
            memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 1060,360, s);
        }
        private void printDocument1_PrintPage_1(object sender, PrintPageEventArgs e)
        {
            e.Graphics.DrawImage(memoryImage, 1060, 360);
        }
        
    }
}

</blockquote>

1 Ответов

Рейтинг:
1

OriginalGriff

Используйте Класс PrintDocument (System.Рисование.Печатание)[^]- ссылка включает в себя базовый пример.


Member 13153537

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

OriginalGriff

Перейдите по ссылке, прочитайте текст.
Затем посмотрите на пример кода ...

Member 13153537

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

OriginalGriff

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

Member 13153537

Какая связь между вами и мной на этом пути существует?Как мы установим файл в этом месте.Пожалуйста, объясните мне, как это сделать.

Member 13153537

это код, который я пробовал.

частная btnprint_Click недействительным(объект отправителя, EventArgs в электронной)
{
CaptureScreen();
printDocument1.Печать();
printPreviewDialog1.Метод showdialog();
ClearControls (это);
}
Растровое изображение memoryImage;
частный пустотный захват()
{
Graphics myGraphics = это.CreateGraphics();
Размер s = this. Size;
memoryImage = новое растровое изображение(s. Width, s. Height, myGraphics);
Графика memoryGraphics = графика.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(это.Местоположение.Икс, это.Расположение.Г, 1060,360, с);
}
частная printDocument1_PrintPage_1 недействительным(объект отправителя, PrintPageEventArgs е)
{
е.Графика.DrawImage (memoryImage, 1060, 360);
}

}
}