如何做到在柱形图中根据柱的多少,动态控制图表的宽度

开发一张CONGOS图表,使用的柱形图,而柱的多少是在查询中选择的,有可能选择30个柱,也可能只选择2-3个柱。如何根据选择柱的多少,动态的控制图表的宽度?

如果不进行宽度的动态控制,这个图表的显示就很难看,当选择30个柱时,就挤在一起,很难看,如果现在2-3个柱时,柱就很宽也很难看。


试图通过条件样式,控制图表的宽度,但要设定多个变量值,每个变量对应一个固定死的宽度值。期望实现非常灵活的图表宽度动态控制,如N*30,N表示柱,30表示像素。
参与41

32同行回答

zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 13# 日杰 失真,是因为你把图表大小设置的特别大或者特别小。只要是合理的宽度,不存在失真的问题。显示全部
回复 13# 日杰
失真,是因为你把图表大小设置的特别大或者特别小。只要是合理的宽度,不存在失真的问题。收起
系统集成 · 2013-06-28
浏览479
zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 11# a393655956     如果你想获得图表的宽度的话,需要另写一段代码。因为在图表生成之前,一切值都还只是初始化的值。其实你不用alert(img.width),仅仅用肉眼就能看出,图表的宽度确实变化了。如果你想获得修改过后的图表宽度,请按下面步骤操作:1. 往页面拖入两...显示全部
回复 11# a393655956


    如果你想获得图表的宽度的话,需要另写一段代码。因为在图表生成之前,一切值都还只是初始化的值。其实你不用alert(img.width),仅仅用肉眼就能看出,图表的宽度确实变化了。
如果你想获得修改过后的图表宽度,请按下面步骤操作:
1. 往页面拖入两个HTML对象,第一个HTML的内容为:

2. 第二个HTML内容为:

3. 运行报表,点击生成的GetAttr按钮,页面弹出图表宽度。可以验证,正是设置的宽度。
下面是我做的验证报表,可以参考下。

    /content/folder[@name='Cognos_二期']/folder[@name='Packages']/folder[@name='烟叶']/package[@name='烟叶生产']/model[@name='2013-06-13T00:40:33.285Z']
    
    
     
      
       
      
      [烟叶生产].[F_TO_CONTRACT].[DATE_CODE][烟叶生产].[F_TO_CONTRACT].[c_count]
     
    
    
     
      
       
        
         
          
   
    
   
  
        
        
         
          
         
         
          
           
          
          
         
         
        
        
         
          
           
            
           
           
          
          
          
           
          
         
        
        
         
          
           
            
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
             
              
               
                
                
               
              
             
            
           
          
         
         
          
           
            
           
           
          
          
          
           
          
          
           
          
          
          
           
           
          
         
        
        
        
         
          
           
            
             
              没有可用数据
             
             
            
           
          
         
        
       
         
   
    
 
   
  
   
    
   
  
        
        
         
          
   
     
   
  
           
            
             
              
             
            
           
          
         
         
        
        
         
          
           
            
             
              
               
                
                 
                
               
               
              
              
               
                
               
               
              
              
               
                
               
               
              
             
            
           
           
          
         
                  
      
      
     
   
   
收起
系统集成 · 2013-06-27
浏览469
a393655956a393655956软件开发工程师软通动力
我研究了下,发现最后的Img.width=ColC*30的赋值没有起作用。用alert(Img.width)输出下,发现仍为原来的宽度680,不是ColC*30的宽度120。显示全部
我研究了下,发现最后的Img.width=ColC*30的赋值没有起作用。
用alert(Img.width)输出下,发现仍为原来的宽度680,不是ColC*30的宽度120。收起
互联网服务 · 2013-06-27
浏览628
自由电子自由电子软件开发工程师文思海辉有限公司
回复 9# zhengyi1943     哈哈,有时候野路子特别管用显示全部
回复 9# zhengyi1943


    哈哈,有时候野路子特别管用收起
互联网服务 · 2013-06-20
浏览580
zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 4# 自由电子     版主我本人,完全是半路出家的野路子。一没做过java开发,二来当年读大学时,也没学过计算机,更不要说编程了。走上IT这条路完全是个误会!显示全部
回复 4# 自由电子


    版主我本人,完全是半路出家的野路子。一没做过java开发,二来当年读大学时,也没学过计算机,更不要说编程了。走上IT这条路完全是个误会!收起
系统集成 · 2013-06-20
浏览633
zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 6# a110eng     我做测试的版本是Cognos10.1。思路就是这样,至于实现的方式,可能各有区别。发现问题,可以自己先思考一下,这样你会有更多的收获。显示全部
回复 6# a110eng


    我做测试的版本是Cognos10.1。
思路就是这样,至于实现的方式,可能各有区别。发现问题,可以自己先思考一下,这样你会有更多的收获。收起
系统集成 · 2013-06-19
浏览620
zhengyi1943zhengyi1943CEO南京正一信息科技有限公司
回复 5# sealink     通过观察图表的标签内的子元素,发现有3子元素个对应图表标题,柱子数量的子元素对应柱子下面X轴数据,还有柱子数量的子元素对应柱形图。那么柱子的数量=(子元素数量-3)/2...显示全部
回复 5# sealink


    通过观察图表的标签内的子元素,发现有3子元素个对应图表标题,柱子数量的子元素对应柱子下面X轴数据,还有柱子数量的子元素对应柱形图。那么柱子的数量=(子元素数量-3)/2收起
系统集成 · 2013-06-19
浏览627
a110enga110eng软件开发工程师自有
为什么我做测试的时候没有成功呢。难道我的C10装的不成功吗?显示全部
为什么我做测试的时候没有成功呢。难道我的C10装的不成功吗?收起
互联网服务 · 2013-06-19
浏览608
sealinksealink技术总监sealink.com
回复 3# zhengyi1943 这个很实用,谢谢。顺便给解释一下:ColC = (theMap.children.length -3)/2;//获取柱子数量这段没看明白,为啥要-3后再除以2呢?显示全部
回复 3# zhengyi1943


这个很实用,谢谢。顺便给解释一下:
ColC = (theMap.children.length -3)/2;//获取柱子数量

这段没看明白,为啥要-3后再除以2呢?收起
银行 · 2013-06-19
浏览618
自由电子自由电子软件开发工程师文思海辉有限公司
回复 3# zhengyi1943     版主一看就是做过java的人啊,或者对js情有独钟啊:lol显示全部
回复 3# zhengyi1943


    版主一看就是做过java的人啊,或者对js情有独钟啊:lol收起
互联网服务 · 2013-06-19
浏览588

提问者

sealink
技术总监sealink.com
擅长领域: 商业智能大数据cognos

相关问题

相关资料

问题状态

  • 发布时间:2013-06-18
  • 关注会员:5 人
  • 问题浏览:14728
  • 最近回答:2015-04-16
  • X社区推广