正文

VC在ODBC下实现数据库报表2006-12-06 23:45:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/12567/21346.html

分享到:

void CMy112View::OnDraw(CDC* pDC)
{
 CMy112Doc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 // TODO: add draw code for native data here/
 CString line;
 TEXTMETRIC metrics;
 int y=0;
    int tabstop[]={200,375,600,950};
 CFont TitleFont;
 CFont HeadingFont;
 CFont DetailFont;
 Roomrs.Open(CRecordset::snapshot,_T("select * from room"));
 Roomrs.Requery();
 TitleFont.CreateFont(36,0,0,0,FW_BOLD,false,false,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
        CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"宋体");
 HeadingFont.CreateFont(18,0,0,0,FW_BOLD,false,true,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
        CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"宋体");
 DetailFont.CreateFont

(18,0,0,0,FW_NORMAL,false,false,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
        CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"宋体");
    //设置标题字体
 CFont *OldFont=pDC->SelectObject(&TitleFont);
 pDC->GetTextMetrics(&metrics);
 //计算行高
    int lineHeight=metrics.tmHeight+metrics.tmExternalLeading;
 y=y-lineHeight;
 pDC->TextOut(400,0,"酒店客房信息表");
    //设置行字体
    pDC->SelectObject(&HeadingFont);
 pDC->GetTextMetrics(&metrics);
    lineHeight=metrics.tmHeight+metrics.tmExternalLeading; 
 line.Format("%s\t%s\t%s\t%s","房间号","房间类型","房间状态","房间价格");
    pDC->TabbedTextOut(200,y,line,-1,4,tabstop,0);
 y=y-lineHeight;
    //设置表字体
    pDC->SelectObject(&DetailFont);
 pDC->GetTextMetrics(&metrics);
    lineHeight=metrics.tmHeight+metrics.tmExternalLeading; 
 while(!Roomrs.IsEOF())
 {
  CString price;
  price.Format("%d",Roomrs.m_roomprice);
  CString  str;
        str.Format("%s\t%s\t%s\t%

s",Roomrs.m_roomno,Roomrs.m_roomtype,Roomrs.m_roomstate,price);
     pDC->TabbedTextOut(200,y,str,-1,4,tabstop,0);
     Roomrs.MoveNext();
        y=y-lineHeight;
 } 
 Roomrs.Close();
 //恢复旧字体
 pDC->SelectObject(OldFont);
}
/*
CSize TabbedTextOut( int x, int y, const CString& str,
int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin );
该函数用当前字体在指定位置 (x,y) 处显示一个由str指定的文本,且根据指定的制表
停止位设置相应字符位置。函数成功时返回文本的大小。参数中,nTabPositions表示
lpnTabStopPositions数组的大小,lpnTabStopPositions表示多个递增的停止位(逻辑
坐标)的数组,nTabOrigin表示制表停止位x方向的起始点(逻辑坐标)。
*/
void CMy112View::OnInitialUpdate()
{
 CScrollView::OnInitialUpdate();

 // TODO: calculate the total size of this view
 SetScrollSizes(MM_LOENGLISH,CSize(600,1000));
 //MM_LOENGLISH这种类型Y值为负
 CMy112Doc *pDoc=GetDocument();
 ASSERT_VALID(pDoc);
 pDoc->SetTitle("hehe");
}

阅读(2230) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册