[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