当前位置:首页
开发技术指南» 文章正文
    引言:

 ·求一个算法    »显示摘要«
    摘要: 计算两个很大的数(用long也放不下,最大可能到64个字节)相乘的结果。记得哪里看到好象是要转换成数组才能做。不知道具体做法。请各位帮忙!!! ......
    摘要: 急,databinder.eval,马上给分! 现在我是在datagrid里 <asp:templatecolumn headertext="成绩"> <headerstyle wrap="false"></headerstyle> <itemstyle wrap="false"&......


如何制作这样的报表

我想做一个这样的系统,一开始建立数据库就遇到了问题  
   
  是一个比较简单的资产汇总表及车间岗点物品详细表  
  -----------------------------------------------------  
  车间岗点物品详细表:  
   
  说明:某单位有好多车间,车间下又设好多岗点,岗点下又有一些物品,  
            只记录这些物品名称及数量、单位  
   
  如:  
    XX车间XX岗点:  
        1.桌子   20   张  
        2.椅子   30   把  
        3.风扇   10   台  
        .....  
  -----------------------------------------------------  
   
  资产汇总表:  
   
  说明:将该单位的所有物品名称、单位、及数量生成一张表  
  如:  
   
  序号 品名  单位  数量  备注  
  1      电脑桌  张   50       坏2  
  2       ......  
  -----------------------------------------------------  
   
   
  我这样设计:  
   
  车间表                       岗点表                     品名表                   详细信息表              
  1.车间序号               1.岗点序号             1.品名序号           1.序号  
  2.车间名称               2.车间序号             2.品名       2.岗点序号  
                                    3.岗点名称             3.品名单位           3.品名序号  
                          4.总数  
  车间表和岗点表间建立主从关系,一对多  
  岗点表和详细信息表间建立主从关系,一对多  
  详细信息表和品名表间建立参照完整性,以便在录入详细信息表中的品名字段时做  
  约束  
   
  现在的问题是如何让它自动生成资产车间岗点物品详细表,感觉不好设计,大家帮帮忙,看如何  
  用sql语句做或生成最接近的格式以便用DataList输出!格式如下  
   
    XXX年x月x月     XXX单位  
  -----------------------------------------------------  
   
  一场车间办公室:  
        1.桌子   3   张  
        2.椅子   3   把  
        3.风扇   1   台  
   
  一场车间资料室:  
        1.桌子   2   张  
        2.椅子   2   把  
        3.风扇   1   台  
   
  二场车间办公室:  
        1.桌子   1   张  
        2.椅子   1   把  
        3.风扇   1   台  
   
  二场车间资料室:  
        1.桌子   2   张  
        2.椅子   2   把  
        3.风扇   1   台  
         
        ....略  
   
 

NO.1   作者: ChengKing

车间表                       岗点表                     品名表                   详细信息表              
  1.车间序号               1.岗点序号             1.品名序号           1.序号  
  2.车间名称               2.车间序号             2.品名       2.岗点序号  
                                    3.岗点名称             3.品名单位           3.品名序号  
                          4.总数  
   
  第一步:  
  select   *   from    
      车间表   c   inner   join   岗点表   g   on   c.车间序号=   g.车间序号    
      inner   join   详细信息表   x   on   g.岗点序号=x.岗点序号    
      inner   join   品名表   p   on   p.品名序号=x.品名序号  
  group   by   c.车间序号  
   
  这样就可以列出这样的记录:  
  椅子   所属岗点   所属车间   椅子的一系列属性  
  桌子   所属岗点   所属车间   桌子的一系列属性  
   
  第二步:  
  像这样的最好用Table实现,DataList很难实现,而且它一般是实现有规律的,像这样分层的较难实现  
  具体方法将它们按车间分成好几组.  
  用Table动态生成.  
   
  一个Table的例子,仅供参考,其实Datalist和DataGrid也是最终转换为Table,再提供浏览器识别的:  
   
  //存放最终结果字符串  
  string   strHtmlStr;                          
             
  //存放表格头字符串  
  System.Text.StringBuilder   stbHead   =   new   System.Text.StringBuilder();  
  stbHead.Append("<table   border=1   width=100%     class=\"Table\">")  
        .Append("               <TR>")  
        .Append("                     <TD   align=\"center\"   class=\"HeaderStyle\">姓名</TD>")  
        .Append("                     <TD   align=\"center\"   class=\"HeaderStyle\">个人评论总量</TD>")  
        .Append("                     <TD   align=\"center\"   class=\"HeaderStyle\">专案名称</TD>   <TD   align=\"center\"   class=\"HeaderStyle\">个人评论数量</TD>   ")  
        .Append("                     <TD   align=\"center\"   class=\"HeaderStyle\">评论总量</TD>   <TD   align=\"center\"   class=\"HeaderStyle\">角色</TD>")  
        .Append("               </TR>");  
   
  strHtmlStr   =   stbHead.ToString();           //将头追加  
   
  //存放表格中间n行数据字符串  
  System.Text.StringBuilder   stbBody   =   new   System.Text.StringBuilder();  
   
  for(int   i   =   0;   i   <   ds.Tables.Count;   i++)  
  {  
   
  string   intDetailNum   =   (ds.Tables[i].Rows.Count).ToString();     //格式化表格用  
  stbBody.Append("                       <TR>")  
        .Append("                               <TD   rowspan="+intDetailNum+"   align=\"center\"       class=\"TableTitle\">"                                                                  
                                                                          +   "<a   onclick=window.open("+this.XframeSysInfo.SysRoot   +   this.XframeSysInfo.MainPage.Name+"?ModuleID=CRMPSCommentRead&ReportName=CommentStatDetail&StaffNo="+ds.Tables[i].Rows[0]["StaffNo"].ToString()   +   "&StartTime="   +   strStartTime   +"&EndTime="+strEndTime+",popuppage,width=800,height=600,top=60,left=100,scrollbars,resizable)     style=CURSOR:   hand>"+ds.Tables[i].Rows[0]["FullName"].ToString()+"</a>"+  
                                                                                              "</TD>   ");                                 //姓名  
                         
  stbBody.Append("                               <TD   align=\"center\"   class=\"TableContent\">"   +"<a   href="+this.XframeSysInfo.SysRoot+   this.XframeSysInfo.MainPage.Name+"?ModuleID=CRMPreSell&Func=ReadProject&ProjNo="+ds.Tables[i].Rows[0]["ProjNo"].ToString()+"   target=\"_blank\">"+ds.Tables[i].Rows[0]["ProjName"].ToString()+                 "</TD>");      
  stbBody.Append("                               <TD   align=\"center\"   class=\"TableContent\">"   +   (ds.Tables[i].Rows[0]["UserStyle"].ToString().Trim()   ==   "1"   ?   "<font   color=blue>11</font>"   :   "22")   +"</TD>")     //角色  
              .Append("                       </TR>");  
   
   
  strHtmlStr   +=   stbBody.ToString();  
   
   
  //存放表格尾字符串  
  System.Text.StringBuilder   stbTail   =   new   System.Text.StringBuilder();  
  stbTail.Append("</TABLE>");        
  strHtmlStr   +=   stbTail;  
   
   
 


 ·哪位有讨论c的qq群    »显示摘要«
    摘要: 小弟想申请加入讨论c的qq群,请各位介绍一下,谢谢! j2me,j2se,j2ee的也想参加! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE