paint的代码贴上来,否则大家怎么给你看呀?!
解决方案 »
- 把autopostback设置为true后总是报错:Microsoft JScript 运行时错误: 找不到成员。
- 求cs框架
- [新手求助啊]winform调用C++编写的ocx控件, 报错"非选择性的参数"
- datetable循环,取数据库表字段数据循环在输出datatable
- 登录框输入错误后就关闭的错误
- SQL SERVER '問題
- 我将窗体设成MDI,我想把主窗体的后面哪个滚动条给取消了怎么做
- 这个类定义是什么意思,请帮忙看看
- 急!!!!请问如何得到Datagrid中的CheckBox的值,我不要WebFrom的,要Winform的
- 解决方案的问题
- 我有一万个手机串号,和仓库里十万个串号比较有没有重复的,为了加快速度,采用哪一种算法较好.
- 最近比较烦,有没有高手弄过网络侦听??
{
wRect=(w-xDelta*3)/4;
hRect=(h-yDelta*3)/4;
SizeF size=new SizeF(wRect,hRect);
Pen p=new Pen(Color.Gray,1); xScale=Convert.ToSingle(wRect/panel1.Width);//数据库中读出的矩形的缩小比例
yScale=Convert.ToSingle(hRect/panel1.Height); //每个ye面的头说明
Font newsFont1=new Font("黑体" ,14);
string strstr=LogicLevel.corp_name.ToString()+LogicLevel.pubdate.ToShortDateString()+this.toolBar1.Buttons[0].Text.Substring(0,4)+"版面预览";
g.DrawString(strstr,newsFont1,Brushes.Black,60,10);
//每个也面的尾说明
strstr="打印人:"+LogicLevel.username+" "+DateTime.Now.Date.ToShortDateString()+" 第 "+ currentPage+" 页/共 "+pageCount+" 页" ;
g.DrawString(strstr,newsFont1,Brushes.Black,30,Convert.ToInt32(ev.PageBounds.Height*25.4/100)-15);
//读出所有的新闻和广告-注意要变化bmnum 是其顺序从头算起
// DataSet myset1=new DataSet();
string sql="";
int bmnumm=0; DataTable tnews=new DataTable(); tnews.Columns.Add("leftx",System.Type.GetType("System.Int32"));
tnews.Columns.Add("lefty",System.Type.GetType("System.Int32"));
tnews.Columns.Add("width",System.Type.GetType("System.Int32"));
tnews.Columns.Add("height",System.Type.GetType("System.Int32"));
tnews.Columns.Add("text",System.Type.GetType("System.String"));
tnews.Columns.Add("bmnum",System.Type.GetType("System.Int32"));
for(int i=0;i<LogicLevel.dmItemsValue.Count;i++)
{
sql="select leftx,lefty,width,height,text,bmnum from hbnews_sj where itemId="+(int)LogicLevel.dmItemsId[i]; ConDB.ConnectDB();
DataSet newset=ConDB.ExecuteGet(sql);
ConDB.CloseDB(); int countt=newset.Tables[0].Rows.Count;
for(int ii=0;ii<countt;ii++)
{
DataRow newrow=tnews.NewRow();
newrow["leftx"]=newset.Tables[0].Rows[ii].ItemArray[0];
newrow["lefty"]=newset.Tables[0].Rows[ii].ItemArray[1];
newrow["width"]=newset.Tables[0].Rows[ii].ItemArray[2];
newrow["height"]=newset.Tables[0].Rows[ii].ItemArray[3];
newrow["text"]=newset.Tables[0].Rows[ii].ItemArray[4];
newrow["bmnum"]=Convert.ToInt32(newset.Tables[0].Rows[ii].ItemArray[5])+bmnumm;
tnews.Rows.Add(newrow);
}
bmnumm+=(int)LogicLevel.dmItemsValue[i];
}
DataTable newsTable=tnews; DataTable tadv=new DataTable(); tadv.Columns.Add("leftx",System.Type.GetType("System.Int32"));
tadv.Columns.Add("lefty",System.Type.GetType("System.Int32"));
tadv.Columns.Add("width",System.Type.GetType("System.Int32"));
tadv.Columns.Add("height",System.Type.GetType("System.Int32"));
tadv.Columns.Add("topic",System.Type.GetType("System.String"));
tadv.Columns.Add("bmnum",System.Type.GetType("System.Int32"));
bmnumm=0; for(int i=0;i<LogicLevel.dmItemsValue.Count;i++)
{
sql="select a.topx,a.topy,a.width,a.height,b.adv_topic,a.bmnum from hbadv_sj a join adv b on a.adv_id=b.adv_id where itemId="+(int)LogicLevel.dmItemsId[i]; ConDB.ConnectDB();
DataSet advset=ConDB.ExecuteGet(sql);
ConDB.CloseDB(); int countt=advset.Tables[0].Rows.Count;
for(int ii=0;ii<countt;ii++)
{
DataRow newrow=tadv.NewRow();
newrow["leftx"]=advset.Tables[0].Rows[ii].ItemArray[0];
newrow["lefty"]=advset.Tables[0].Rows[ii].ItemArray[1];
newrow["width"]=advset.Tables[0].Rows[ii].ItemArray[2];
newrow["height"]=advset.Tables[0].Rows[ii].ItemArray[3];
newrow["topic"]=advset.Tables[0].Rows[ii].ItemArray[4];
newrow["bmnum"]=Convert.ToInt32(advset.Tables[0].Rows[ii].ItemArray[5])+bmnumm;
tadv.Rows.Add(newrow); }
bmnumm+=(int)LogicLevel.dmItemsValue[i];
}
DataTable advTable=tadv;
int newsRowCount=newsTable.Rows.Count;// 该天所有的新闻条数
int advRowCount=advTable.Rows.Count; // 该天所有广告条数 for(int row=0;row<4;row++)
for(int col=0;col<4;col++)
{
float lleft,ltop;//每个版面的左上坐标
lleft=left+col*(wRect+xDelta);
ltop=top+row*(size.Height+yDelta);
int bmnum=(currentPage-1)*16+row*4+col;//当前操作的版面数
if(bmnum<LogicLevel.getAllBmCount())
{
g.DrawRectangle(p,lleft,ltop,size.Width,size.Height);//画版面矩形
//添加文字说明
Font newsFont2=new Font("黑体" ,10);
string strstrstr=LogicLevel.getDesc(bmnum);//得到如 A1 A2 等
g.DrawString(strstrstr,newsFont2,Brushes.Black,lleft,ltop-5);
} for(int ii=0;ii<newsRowCount;ii++)//画版面上新闻矩形
{
if(bmnum==Convert.ToInt32(newsTable.Rows[ii].ItemArray[5].ToString()))
{
float newsLeft=Convert.ToSingle(newsTable.Rows[ii].ItemArray[0].ToString())*xScale;//新闻的在打印纸张上的位置
float newsTop=Convert.ToSingle(newsTable.Rows[ii].ItemArray[1].ToString())*yScale;
float newsWidth=Convert.ToSingle(newsTable.Rows[ii].ItemArray[2].ToString())*xScale;
float newsHeight=Convert.ToSingle(newsTable.Rows[ii].ItemArray[3].ToString())*yScale;
g.DrawRectangle(p,lleft+newsLeft,ltop+newsTop,newsWidth,newsHeight);//画矩形
g.FillRectangle(Brushes.Khaki,lleft+newsLeft,ltop+newsTop,newsWidth,newsHeight);
Font newsFont=new Font("黑体" ,10);
g.DrawString(newsTable.Rows[ii].ItemArray[4].ToString().Trim(),newsFont,Brushes.Black,lleft+newsLeft,ltop+newsTop); } }
for(int ii=0;ii<advRowCount;ii++)//画版面上广告矩形
{
if(bmnum==Convert.ToInt32(advTable.Rows[ii].ItemArray[5].ToString()))
{
float advLeft=Convert.ToSingle(advTable.Rows[ii].ItemArray[0].ToString())*xScale;//广告的在打印纸张上的位置
float advTop=Convert.ToSingle(advTable.Rows[ii].ItemArray[1].ToString())*yScale;
float advWidth=Convert.ToSingle(advTable.Rows[ii].ItemArray[2].ToString())*xScale;
float advHeight=Convert.ToSingle(advTable.Rows[ii].ItemArray[3].ToString())*yScale;
g.DrawRectangle(p,lleft+advLeft,ltop+advTop,advWidth,advHeight);//画矩形
Font advFont=new Font("黑体" ,6); ClassAdv thisadv=new ClassAdv();
Color color=thisadv.getColor();
SolidBrush b=new SolidBrush(color); g.FillRectangle(b,lleft+advLeft,ltop+advTop,advWidth,advHeight);
string str=advTable.Rows[ii].ItemArray[4].ToString().Trim();
g.DrawString(str,advFont,Brushes.Black,lleft+advLeft,ltop+advTop);
}
}