[ drgajic12 @ 20.01.2011. 11:11 ] @
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; } |