Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 2.091 pregleda

Najnovija ↓

Pomoc oko stampe 13.07.2011. u 16:08 · pre 186 meseci #1
Pozdrav svima. Treba mi mala pomoc oko stampe, posto nikako da ukapiram kako se stampa. Treba da uzimam podatke iz baze i da svaki podatak stampam na novoj strani. Uspeo sam bez problema da odstampam jednu stranu, ali nemam ideju gde da ubacim for petlju koja ce da kupi podatke iz baze, i da ih spremi za stampu.

Ono sto sam do sada uradio je sledece
Code (csharp):

private void OnPrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
                Brush brush = new SolidBrush(richTextBox1.ForeColor);
                Font font = new Font("Arial", 16.0f, FontStyle.Bold);

                e.Graphics.DrawString(ImePrezime, font, brush, e.PageBounds.Width / 3 * 2, e.PageBounds.Height / 2);
                e.Graphics.DrawString(Kompanija, font, brush, e.PageBounds.Width / 3 * 2, e.PageBounds.Height / 2 + font.Size + 10);
                Font font1 = new Font("Arial", 16.0f, FontStyle.Regular);
                e.Graphics.DrawString(Ulica, font1, brush, e.PageBounds.Width / 3 * 2, e.PageBounds.Height / 2 + font.Size + 10 + font.Size + 15);
                e.Graphics.DrawString(Grad, font1, brush, e.PageBounds.Width / 3 * 2, e.PageBounds.Height / 2 + font.Size + 10 + font.Size + 15 + font.Size + 8);
                e.Graphics.DrawString(Drzava, font1, brush, e.PageBounds.Width / 3 * 2, e.PageBounds.Height / 2 + font.Size + 10 + font.Size + 15 + font.Size + 8 + font.Size + 8);
        }


i ako mu rucno dam vrednosti za ImePrezime, Kompaniju... u Form_Load, to u print preview-u izbaci kako treba. Ali gde ubacivati podatke iz baze u ove promenjive i kako ??? Znaci ako uzmem 10 podataka iz baze, on u PrintPreview-u treba da mi izbaci 10 strana sa razlicitim podacima. Verujem da je ovo neka prosta stvar, ali izgleda da vazi pravilo da su proste stvari i najteze :)
Potpis
Ivan Urosevic
Re: Pomoc oko stampe 13.07.2011. u 20:45 · pre 186 meseci #2
Trebalo bi da ubacis neki datagridView i u njega ucitas kolone iz baze koje ti trebaju.
i onda iz njega vadis podatke.
Ne znam napamet ali trebalo bi ovako:

e.Graphics.DrawString(dataGridView.Cell(0), font, brush, e.PageBounds.Width / 3 * 2, e.PageBounds.Height / 2);
e.Graphics.DrawString(dataGridView.Cell(1), font, brush, e.PageBounds.Width / 3 * 2, e.PageBounds.Height / 2 + font.Size + 10);

Imas i e.HasMorePages...to treba da postavis na true ako imas vise stranica za stampu.

Javi ako jos nesto zatreba.
Pozdrav
Re: Pomoc oko stampe 13.07.2011. u 23:50 · pre 186 meseci #3
Resio sam problem posle celodnevnog mozganja. A u stvari je mnogo lako, kao sto sam i pretpostavio.

private void OnPrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Brush brush = new SolidBrush(richTextBox1.ForeColor);
Font font = new Font("Arial", 16.0f, FontStyle.Bold);

e.Graphics.DrawString(dtContact.Rows[br]["ime"].ToString(), font, brush, e.PageBounds.Width / 5 * 3, e.PageBounds.Height / 2);
e.Graphics.DrawString(dtContact.Rows[br]["komp"].ToString(), font, brush, e.PageBounds.Width / 5 * 3, e.PageBounds.Height / 2 + font.Size + 10);
Font font1 = new Font("Arial", 16.0f, FontStyle.Regular);
e.Graphics.DrawString(dtContact.Rows[br]["ulica"].ToString(), font1, brush, e.PageBounds.Width / 5 * 3, e.PageBounds.Height / 2 + font.Size + 10 + font.Size + 15);
e.Graphics.DrawString(dtContact.Rows[br]["grad"].ToString(), font1, brush, e.PageBounds.Width / 5 * 3, e.PageBounds.Height / 2 + font.Size + 10 + font.Size + 15 + font.Size + 8);
e.Graphics.DrawString(dtContact.Rows[br]["drzava"].ToString(), font1, brush, e.PageBounds.Width / 5 * 3, e.PageBounds.Height / 2 + font.Size + 10 + font.Size + 15 + font.Size + 8 + font.Size + 8);
br++;

if (br < dtContact.Rows.Count)
e.HasMorePages = true;
}

U Form Load sam samo ucitao dataset, i ovaj kod je sve resio. Ono sto je bilo bitno, tj oko cega sam najvise vremena izgubio, je da ne treba da se radi nikakva for petlja, vec da brojac (br u mom primeru) treba rucno da se povecava. Cela mudrost :)
Potpis
Ivan Urosevic
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme