Novo

Forum kao aplikacija na telefonu

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

HITNO: Stampanje u Print dogadjajima problem sa prelaskom na novu stranu

  • 3 odgovora
  • 2.434 pregleda

Najnovija ↓

HITNO: Stampanje u Print dogadjajima problem sa prelaskom na novu stranu 20.01.2011. u 12:11 · pre 192 meseca #1
Imam 2 tabele: Fakture i Stavke,zajednicko polje im je BROJ_RACUNA.Hocu da istampam Izvestaj gde ce stavke da budu grupisane po fakturama kojima pripadaju.

SA OVIM KODOM mi razdvaja fakture na nove stranice kako treba,tj. ukoliko nova faktura ne moze da stane na list preci ce na novi list;ali ne i stavke,tj. ukoliko neka stavka npr druga,treca stavka neke fakture prelazi donju granicu bice pojedena,tj. nece preci na novi list,samo ce na novom listu da nastavi sledeca nova faktura.
Pretpostavljam da moram i u unutrasnjoj FOREACH petlji nekako da signaliziram kraj stranice i da na novoj stranici nastavi dokle je stao sa stavkama,ali ne znam kako!???

private int linijaIstampano;
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
int KordinataX = 17;
int KordinataY = 60;

while (linijaIstampano<FaktureBindingSource.Count)
{
//STAMPA FAKTURU
DataRowView faktura= (DataRowView)FaktureBindingSource[linijaIstampano++];
e.Graphics.DrawString("FAKTURA BR. " + faktura["broj_racuna"].ToString() +" DATUM: " + datumFakture[0],new Font("Times New Roman", 8, FontStyle.Bold), Brushes.Black,KordinataX,KordinataY);
//STAMPA STAVKE TE FAKTURE
foreach (DataRowView stavka in stavkeBindingSource)
{
if (stavka["broj_racuna"].ToString() == faktura["broj_racuna"].ToString())
{
e.Graphics.DrawString(stavka["broj_artikla"].ToString(), new Font("Times New Roman", 8), Brushes.Black, 40, KordinataY+= 2);
e.Graphics.DrawString(stavka["naziv_robe"].ToString(), new Font("Times New Roman", 8), Brushes.Black, 210, KordinataY);
KordinataY+= 13;
}
}
KordinataY+= 15;
if (KordinataY>= e.MarginBounds.Bottom - 100)
{
e.HasMorePages = true;
return;
}
Re: HITNO: Stampanje u Print dogadjajima problem sa prelaskom na novu stranu 20.01.2011. u 18:45 · pre 192 meseca #2
Citat:
Pretpostavljam da moram i u unutrasnjoj FOREACH petlji nekako da signaliziram kraj stranice i da na novoj stranici nastavi dokle je stao sa stavkama.....


Upravo tako.

Uvedi još jednu promenljivu koja će brojati odštampane stranice, pa ako je strana veća od jedan preskoči zaglavlje ("FAKTURA Br. ...") , a petlju foreach zameni petljom for koja kreće od druge promenljive koja broji odštampane stavke (na prvoj strani će naravno krenuti od 1, a na svakoj sledećoj od stavke do koje je stigla).

Na kraju dodaj, ako je odštampao sve, da eventualno štampa neki footer i obavezno e.HasMorePages = false;

Re: HITNO: Stampanje u Print dogadjajima problem sa prelaskom na novu stranu 20.01.2011. u 20:41 · pre 192 meseca #3
Citat:
Boško: Upravo tako.

Uvedi još jednu promenljivu koja će brojati odštampane stranice, pa ako je strana veća od jedan preskoči zaglavlje ("FAKTURA Br. ...") , a petlju foreach zameni petljom for koja kreće od druge promenljive koja broji odštampane stavke (na prvoj strani će naravno krenuti od 1, a na svakoj sledećoj od stavke do koje je stigla).

Na kraju dodaj, ako je odštampao sve, da eventualno štampa neki footer i obavezno e.HasMorePages = false;


Deluje mi logicno,ali ajde molim te ako imas vremena implementiraj to sto si zamislio u ovaj moj kod,makar otprilike, jer mi je malo problem da se snadjem.
Hvala puno.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme