各位尊敬的大峡: 紧急求助: 在VC里,请问做报表怎么做的?能够打印的功能。专业一点的(请给出写源程序)。从数据库里查询的数据项,要做成报表哦,
解决方案 »
- 请问内存中的图像如何压缩传输呀
- MFC 操作excel的问题,操作完成后总有一个excel的进程
- 请问如何实现类似芊芊静听那样的界面?
- 如何复制ie缓存的某内容到别的目录
- VC写的程序在XP和98下运行的速度为什么不一样。
- 解决了,清囊相送!!!实现视中滚动字幕?
- 为什么我的断点不能设置????
- SDI窗口,视类为CFormView,将此视类与一对话框模板相连,我怎么改变此对话框或此视类的背影色?
- 自定义消息响应COMBO的回车事件但有点问题?
- 求教大神:MFC输入MAC地址,怎么查找到wifi网络中对应的IP地址
- 我的msdn安装出现问题了!
- 非技术问题,怎么将一个.EX_ 文件转换成 .exe 文件呢?
logFont[0].lfWidth=0;
logFont[0].lfEscapement=0;
logFont[0].lfOrientation=0;
logFont[0].lfWeight=FW_NORMAL;
logFont[0].lfItalic=0;
logFont[0].lfUnderline=0;
logFont[0].lfStrikeOut=0;
logFont[0].lfCharSet=ANSI_CHARSET;
logFont[0].lfOutPrecision=OUT_DEFAULT_PRECIS;
logFont[0].lfClipPrecision=CLIP_DEFAULT_PRECIS;
logFont[0].lfQuality=PROOF_QUALITY;
logFont[0].lfPitchAndFamily=VARIABLE_PITCH|FF_ROMAN;
strcpy(logFont[0].lfFaceName,"Times New Roman"); logFont[1].lfHeight=360;
logFont[1].lfWidth=0;
logFont[1].lfEscapement=0;
logFont[1].lfOrientation=0;
logFont[1].lfWeight=FW_NORMAL;
logFont[1].lfItalic=0;
logFont[1].lfUnderline=0;
logFont[1].lfStrikeOut=0;
logFont[1].lfCharSet=ANSI_CHARSET;
logFont[1].lfClipPrecision=CLIP_DEFAULT_PRECIS;
logFont[1].lfQuality=PROOF_QUALITY;
logFont[1].lfPitchAndFamily=VARIABLE_PITCH|FF_ROMAN;
strcpy(logFont[0].lfFaceName,"Times New Roman"); CFont font[2]; font[0].CreateFontIndirect(&logFont[0]);
font[1].CreateFontIndirect(&logFont[1]);
CFont *oldFont=pDC->SelectObject(&font[0]); int vs1,vs2,vs3,vs4,vs;
int hs;
int rw1,rw2,rw3;
int mlh;
int loopn; vs1=-900;
vs2=-600;
vs3=-400;
vs4=-800; hs=1500; rw1=1300;
rw2=1300;
rw3=1300; RECT Rect0,Rect[7]; Rect0.left=hs;
Rect0.right=Rect0.left+rw1*2+rw2*4+rw3;
Rect0.top=vs1;
Rect0.bottom=Rect0.top+vs2; Rect[0].left=hs;
Rect[0].right=Rect[0].left+rw1;
Rect[0].top=Rect0.bottom+vs3;
Rect[0].bottom=Rect[0].top+vs4; Rect[1].left=Rect[0].right;
Rect[1].right=Rect[1].left+rw1;
Rect[1].top=Rect[0].top;
Rect[1].bottom=Rect[0].bottom; Rect[2].left=Rect[1].right;
Rect[2].right=Rect[2].left+rw2;
Rect[2].top=Rect[0].top;
Rect[2].bottom=Rect[0].bottom; Rect[3].left=Rect[2].right;
Rect[3].right=Rect[3].left+rw2;
Rect[3].top=Rect[0].top;
Rect[3].bottom=Rect[0].bottom; Rect[4].left=Rect[3].right;
Rect[4].right=Rect[4].left+rw2;
Rect[4].top=Rect[0].top;
Rect[4].bottom=Rect[0].bottom;
Rect[5].left=Rect[4].right;
Rect[5].right=Rect[5].left+rw2;
Rect[5].top=Rect[0].top;
Rect[5].bottom=Rect[0].bottom;
Rect[6].left=Rect[5].right;
Rect[6].right=Rect[6].left+rw3;
Rect[6].top=Rect[0].top;
Rect[6].bottom=Rect[0].bottom; UINT nFormat1,nFormat2;
nFormat1=DT_CENTER;
nFormat2=DT_CENTER|DT_WORDBREAK;
CString Tittle,fth[7];
Tittle="某地区国有企事业单位专业技术人员数构成表";
fth[0]="年份";
fth[1]="合计";
fth[2]="工程技术人员";
fth[3]="农业技术人员";
fth[4]="卫生技术人员";
fth[5]="科学研究人员";
fth[6]="教学人员";
pDC->DrawText(Tittle,-1,&Rect0,nFormat1); pDC->SelectObject(&font[1]); vs=Rect[0].top+160;
pDC->MoveTo(Rect[0].left,vs);
pDC->LineTo(Rect[6].right,vs); loopn=0;
while (loopn<=6)
{
pDC->DrawText(fth[loopn],-1,&Rect[loopn],nFormat2);
loopn=loopn+1;
} mlh=1000;
CString fs[7];
while (!pDoc->m_ExaSet.IsBOF()&&!pDoc->m_ExaSet.IsEOF())
{
vs=vs-mlh-100;
pDC->MoveTo(Rect[0].left,vs);
pDC->LineTo(Rect[6].right,vs);
fs[0].Format("%ld",pDoc->m_ExaSet.m_fy);
fs[1].Format("%ld",pDoc->m_ExaSet.m_f1+pDoc->m_ExaSet.m_f2+pDoc->m_ExaSet.m_f3+pDoc->m_ExaSet.m_f4+pDoc->m_ExaSet.m_f5);
fs[2].Format("%ld",pDoc->m_ExaSet.m_f1);
fs[3].Format("%ld",pDoc->m_ExaSet.m_f2);
fs[4].Format("%ld",pDoc->m_ExaSet.m_f3);
fs[5].Format("%ld",pDoc->m_ExaSet.m_f4);
fs[6].Format("%ld",pDoc->m_ExaSet.m_f5); Rect[0].top=vs-80;
Rect[0].bottom=Rect[0].top+vs4; Rect[1].top=Rect[0].top;
Rect[1].bottom=Rect[0].bottom; Rect[2].top=Rect[0].top;
Rect[2].bottom=Rect[0].bottom; Rect[3].top=Rect[0].top;
Rect[3].bottom=Rect[0].bottom; Rect[4].top=Rect[0].top;
Rect[4].bottom=Rect[0].bottom;
Rect[5].top=Rect[0].top;
Rect[5].bottom=Rect[0].bottom; Rect[6].top=Rect[0].top;
Rect[6].bottom=Rect[0].bottom; mlh=0;
loopn=0;
while (loopn<=6)
{
fs[loopn].TrimRight();
if (fs[loopn].GetLength()==0)
fs[loopn]=" "; if (fabs(pDC->DrawText(fs[loopn],&Rect[loopn],nFormat2))>=mlh)
mlh=int (fabs(pDC->DrawText(fs[loopn],&Rect[loopn],nFormat2)));
loopn=loopn+1;
} pDoc->m_ExaSet.MoveNext(); }
vs=vs-mlh-100;
pDC->MoveTo(Rect[0].left,vs);
pDC->LineTo(Rect[6].right,vs); loopn=0;
while (loopn<=5)
{
pDC->MoveTo(Rect[loopn].right-60,Rect0.bottom+vs3+160);
pDC->LineTo(Rect[loopn].right-60,vs);
loopn=loopn+1;
}
pDC->SelectObject(oldFont);