[C con Clase] problema al imprimir

Tanburi Dario tamburi en southlink.com.ar
Mar Dic 5 20:21:01 CET 2006


Hola,
porque el encabezado de la segunda página no se imprime igual que la primera - adjunto el codigo, lo que corresponde al encabezado esta en rojo -
Gracias
Dario

void CMetalurgicaView::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
{

 CFont fntMainTitle, fntSubTitle, 
 fntSectTitle, fntLabel, fntResult;
 int left = 15, top = -10;
 TEXTMETRIC tm;
 CPen penLine2, penLine1;
 CBrush brsGray;

 pDC->SetMapMode(MM_LOMETRIC);
 

/////////MEMBRETE
 VERIFY(fntMainTitle.CreateFont(110, 0, 0, 0, FW_BOLD,
    FALSE, FALSE, 0, ANSI_CHARSET,
    OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS,
    DEFAULT_QUALITY,
    DEFAULT_PITCH | FF_SWISS,
    TEXT("Times New Roman")));
 CFont *fntDefault = pDC->SelectObject(&fntMainTitle);
 pDC->GetTextMetrics(&tm);

 pDC->SetTextColor(RGB(0, 0, 0));
 pDC->SetBkMode(TRANSPARENT);
 pDC->SetTextCharacterExtra(1);

 pDC->TextOut(left, -top, TEXT("Metalúrgica Bell"));

 VERIFY(fntLabel.CreateFont(60, 0, 0, 0, FW_BOLD,
    FALSE, FALSE, 0, ANSI_CHARSET,
    OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS,
    DEFAULT_QUALITY,
    DEFAULT_PITCH | FF_SWISS,
    TEXT("Times New Roman")));

 fntDefault = pDC->SelectObject(&fntLabel);
 pDC->TextOut(left, -top-120, TEXT("Lavalle 88 - TE 03534 - 410794 E-mail: laura en southlink.com.ar"));

 top = top + tm.tmHeight;

 
 pDC->SetTextCharacterExtra(4);
 VERIFY(fntSubTitle.CreateFont(100, 0, 0, 0, FW_BOLD,
    FALSE, FALSE, 0, ANSI_CHARSET,
    OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS,
    DEFAULT_QUALITY,
    DEFAULT_PITCH | FF_SWISS,
    TEXT("Times New Roman")));
 fntDefault = pDC->SelectObject(&fntSubTitle);
 pDC->TextOut(140, -top-90, TEXT("Orden de Mecanizado"));

 penLine2.CreatePen(PS_SOLID, 2, RGB(0, 0, 0));
 CPen *penOld = pDC->SelectObject(&penLine2);

 pDC->MoveTo(10, -tm.tmHeight - 200);
 pDC->LineTo(4000, -tm.tmHeight - 200);

//////fin de membrete

 VERIFY(fntSectTitle.CreateFont(84, 0, 0, 0, FW_BOLD,
    FALSE, FALSE, 0, ANSI_CHARSET,
    OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS,
    DEFAULT_QUALITY,
    DEFAULT_PITCH | FF_SWISS,
    TEXT("Verdana")));

 penLine1.CreatePen(PS_SOLID, 1, RGB(0, 0, 0));
 penOld = pDC->SelectObject(&penLine1);

 brsGray.CreateSolidBrush(RGB(128, 128, 128));
 CBrush *oldBrush = pDC->SelectObject(&brsGray);

/////////////IDENTIFICACION DE LA ORDEN
 pDC->Rectangle(30, -350, 1400, -450);
 fntDefault = pDC->SelectObject(&fntSectTitle);
 pDC->SetTextColor(RGB(255, 255, 255));
 pDC->TextOut(40, -360, TEXT("Identificación de Orden"));

 VERIFY(fntResult.CreateFont(60, 0, 0, 0, FW_NORMAL,
    FALSE, FALSE, 0, ANSI_CHARSET,
    OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS,
    DEFAULT_QUALITY,
    DEFAULT_PITCH | FF_SWISS,
    TEXT("Times New Roman")));
 
 CFile archivo(Nombre,CFile::modeRead);

 registroempresa *reg=new registroempresa;
 archivo.SeekToBegin();
 archivo.Read(reg,sizeof(registroempresa));


 pDC->SetTextColor(RGB(0, 0, 0));
 fntDefault = pDC->SelectObject(&fntLabel);
 pDC->TextOut(40, -465, TEXT("Nombre de Empresa: "));
 pDC->TextOut(800, -465, reg->empresa);
 pDC->TextOut(40, -515, TEXT("Domicilio:"));
 pDC->TextOut(800, -515, reg->domicilio);
 pDC->TextOut(40, -565, TEXT("IVA:"));
 if(reg->iva==0)
 {
  pDC->TextOut(800, -565, "Responsable Inscripto");
 }else{
  pDC->TextOut(800, -565, "Responsable No Inscripto");
 }
/////fin identificacion de orden

 
///////////PLANILLA DE MECANIZADO
 pDC->Rectangle(30, -650, 1400, -750);
 pDC->SetTextColor(RGB(255, 255, 255));
 pDC->SelectObject(&fntSectTitle);
 pDC->TextOut(40, -660, TEXT("Planilla de Mecanizado"));

 ///encabezado de las columnas
 pDC->SetTextColor(RGB(0,0,0));
 pDC->SelectObject(&fntLabel);
 pDC->TextOut(30, -750, TEXT("Item"));
 pDC->TextOut(250, -750, TEXT("Nom. Pieza"));
 pDC->TextOut(720, -750, TEXT("Cod. Pieza"));
 pDC->TextOut(1200, -750, TEXT("$ Unit."));
 pDC->TextOut(1500, -750, TEXT("Minuto de Trabajo"));
 pDC->TextOut(2100, -750, TEXT("Cantidad"));
 pDC->TextOut(2600, -750, TEXT("Sub-Total"));

 ///Linea de encabezado de columnas
 pDC->MoveTo(30, -800);
 pDC->LineTo(4000, -800);
 
 CString numero;
 int i =805;
 float total=0;
 int item=1;
 int pos=0;
 
 
 //////registros
 switch(pInfo->m_nCurPage)
 {
 case 2:
  pos=sizeof(registroempresa)*18;
  archivo.Seek(pos,CFile::begin);
  break;
 case 3:
  pos=sizeof(registroempresa)*36;
  archivo.Seek(pos,CFile::begin);
  break;
 case 4:
  pos=sizeof(registroempresa)*18;
  archivo.Seek(pos,CFile::begin);
  break;
 }


 while(i<1660&&pos<archivo.GetLength())
 //while(pos<archivo.GetLength())
 {

  archivo.Read(reg,sizeof(registroempresa));
  pDC->SetTextAlign(TA_RIGHT);
  pDC->SelectObject(&fntResult);
  numero.Format("%i",item);
  pDC->TextOut(100, -i, TEXT(numero));
  pDC->SelectObject(&fntResult);
  
  //Nombre de la Pieza
  pDC->TextOut(360, -i, TEXT(reg->nombrepieza));

  //codiga de pieza
  pDC->TextOut(890, -i, TEXT(reg->codigopieza));

  //$ Unuitario
  numero.Format("%.3f", reg->preciohora/60);
  pDC->TextOut( 1350, -i, TEXT(numero));

  //Minuto de trabajo de la pìeza
  numero.Format("%.2f",reg->minutotrabajo);
  pDC->TextOut( 1650, -i, TEXT(numero));

  //cantidad
  numero.Format("%i",reg->cantidad);
  pDC->TextOut( 2200, -i, TEXT(numero));
   
  //totalparcial
  total=total+(reg->cantidad*reg->minutotrabajo*(reg->preciohora/60));
  numero.Format("%.3f", reg->cantidad*reg->minutotrabajo*(reg->preciohora/60));
  pDC->TextOut(2800, -i, TEXT(numero));
  
  i+=50;
  item++;
  
  pos+=sizeof(registroempresa);
  posicionleida=pos;
  archivo.Seek(pos,CFile::begin);
 
 }

 delete reg;
 archivo.Close();

//////////total de mecanizado
 if(cantidadderegistros==pInfo->m_nCurPage)
 {
  pDC->SetTextCharacterExtra(0);
  pDC->SetTextColor(RGB(255,255,255));
  pDC->SetTextAlign(TA_LEFT);
  fntDefault = pDC->SelectObject(&fntSectTitle);
  pDC->SetTextAlign(TA_RIGHT);
  pDC->Rectangle(950, -i-70, 2850, -i-190);
  pDC->TextOut(1880, -i-80, TEXT("Total de Mecanizado : $"));
  numero.Format("%.3f",total);
  pDC->TextOut(2780, -i-80, TEXT(numero));
  fntDefault = pDC->SelectObject(&fntResult);
 }

//////linea pie de pagina
  
  numero.Format("%i", pInfo->m_nCurPage);
  pDC->SetTextColor(RGB(0,0,0));
  pDC->MoveTo(30, -1900);
  pDC->LineTo(4000, -1900);
  pDC->TextOut(2700, -1950, TEXT("Pagina Nº:"+numero));


 pDC->SelectObject(fntDefault);
 pDC->SelectObject(penOld);
 pDC->SelectObject(oldBrush);
 
 CView::OnPrint(pDC, pInfo);
 
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20061205/7a114594/attachment.html>


Más información sobre la lista de distribución Cconclase