javaGrowing

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  92 随笔 :: 33 文章 :: 49 评论 :: 0 Trackbacks

#

function MakeExcel(){
var i,j;
   try {
     var xls    = new ActiveXObject ( "Excel.Application" );
    }
   catch(e) {
        alert( "要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。 请点击【帮助】了解浏览器设置方法!");
             return "";
    }

   xls.visible =true;  //设置excel为可见

   var xlBook = xls.Workbooks.Add;
   var xlsheet = xlBook.Worksheets(1);
   
     xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).mergecells=true;
     xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7)).value="发卡记录";
    //  xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Interior.ColorIndex=5;//设置底色为蓝色
               //   xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6)).Font.ColorIndex=4;//设置字体色        
  // xlsheet.Rows(1). Interior .ColorIndex = 5 ;//设置底色为蓝色  设置背景色 Rows(1).Font.ColorIndex=4  

   
   xlsheet.Rows(1).RowHeight = 25;
   
   xlsheet.Rows(1).Font.Size=14;
   
   xlsheet.Rows(1).Font.Name="黑体";
   

   xlsheet.Columns("A:D").ColumnWidth =18;
   
   xlsheet.Columns(2).NumberFormatLocal="@";
   xlsheet.Columns(7).NumberFormatLocal="@";


    //设置单元格内容自动换行 range.WrapText  =  true  ;
    //设置单元格内容水平对齐方式 range.HorizontalAlignment  =  Excel.XlHAlign.xlHAlignCenter;//设置单元格内容竖直堆砌方式
     //range.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter
   //range.WrapText  =  true;  xlsheet.Rows(3).WrapText=true  自动换行
 
   //设置标题栏

    xlsheet.Cells(2,1).Value="卡号";
    xlsheet.Cells(2,2).Value="密码";
    xlsheet.Cells(2,3).Value="计费方式";
    xlsheet.Cells(2,4).Value="有效天数";
    xlsheet.Cells(2,5).Value="金额";
    xlsheet.Cells(2,6).Value="所属服务项目";
      xlsheet.Cells(2,7).Value="发卡时间";

    var oTable=document.all['fors:data'];
    var rowNum=oTable.rows.length;
    for(i=2;i<=rowNum;i++){
    for (j=1;j<=7;j++){
//html table类容写到excel

      xlsheet.Cells(i+1,j).Value=oTable.rows(i-1).cells(j-1).innerHTML;
           }


   }
   
   // xlsheet.Range(xlsheet.Cells(i, 4), xlsheet.Cells(i-1, 6)).BorderAround , 4
    // for(mn=1,mn<=6;mn++) .     xlsheet.Range(xlsheet.Cells(1, mn), xlsheet.Cells(i1, j)).Columns.AutoFit;
     xlsheet.Columns.AutoFit;
                xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(rowNum+1,7)).HorizontalAlignment =-4108;//居中
                  xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(1,7)).VerticalAlignment =-4108;
                xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Font.Size=10;

     xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(3).Weight = 2; //设置左边距
      xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(4).Weight = 2;//设置右边距
            xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(1).Weight = 2;//设置顶边距
      xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7)).Borders(2).Weight = 2;//设置底边距
xls.UserControl = true;  //很重要,不能省略,不然会出问题 意思是excel交由用户控制
      xls=null;
      xlBook=null;
      xlsheet=null;

}
posted @ 2006-11-09 21:24 javaGrowing 阅读(629) | 评论 (0)编辑 收藏

问题:
 1、同时安装Desktop、Engine,Engine部分控件不能用,老是提示要授权。
 2、将Desktop卸载,Engine大多数控件能用,少部分不能用。

问题关键:
 Engine授权文件有问题。现在网上Engine9.0的授权文件版本太多了,但有些可以,有些是不能用的。其实我就是被这个问题所困,迟迟不能解决,现将可用的Engine9.0授权文件公布如下(绝对可用):
3dengine,9,ecp379783729,none,D7MGJE2110L5J9HSX169
designer,9,ecp240010879,none,GB20C3RM03HXNTNE9005
gdbedit,9,ecp180013971,none,PMYP34S0PBAM2T8AG239
spatialengine,9,ecp339810398,none,8SJA84S0PDJ94P7EJ048
standardengine,9,ecp100001222,none,6PC42XLJH4C5LMZ59217
streetmapengine,9,ecp299948323,none,1JHDJK988L2MC2EN0146 

解决方法:
 1、安装Desktop,配置License Manager,过程我就不说了吧;
 2、安装Engine,用以上授权文件注册。
 3、此时部分控件仍然不能用。
 4、请将license.dat中的Feature Designe项删除并保存,重启License Manager;
 5、问题解决。

2006/10/24

解决Oracle 9i和Tomcat端口冲突(转载)

方案一:
    新装了系统后,发现在调试程序时TOMCAT提示8080端口已被占用,于是运行NETSTAT -ANO查看端口使用情况,发现8080端口被ORACLE的监听器给占用了,于是结合上网查到方法,将ORACLE XDB的HTTP服务端口改成8081,问题解决。
 
总结一下可解决的方法:
一、更改TOMCAT的默认端口
     相关文件:"TOMCAT ROOT"\conf\server.xml
 
二、使用sys登录Oracle,利用dbms_xdb修改端口设置
SQL> call dbms_xdb.cfg_update(updateXML(
    2        dbms_xdb.cfg_get()
    3      , '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
    4      , 8081))
    5  /
    运行完后提示:Call completed.
接着
SQL> COMMIT;
    提示:Commit complete.
SQL> EXEC dbms_xdb.cfg_refresh;
    提示:PL/SQL procedure successfully completed.
三、使用Enterprise Manager Console,选择数据库——XML 数据库——配置,更改http-port的默认值为8081。

方案二:
    安装Oracle数据库后,当我们访问8080端口时,会弹出一个XDB窗口,要求输入用户名和密码。这样将和我们本地一些使用该端口的应用冲突,比如tomcat、jboss等,虽然这些端口是可以修改的,但总是不爽oracle一直占用这个端口。
    Oracle数据库可以使用TCP协议通过8080端口进行连接,所以占用了8080端口。
要取消占用,可以打开Oracle安装目录下的database目录内的SPFILE[SID名].ORA文件进行修改。这个文件是Oracle的启动配置文件。
把其中的*.dispatchers='(PROTOCOL=TCP) (SERVICE=or9iXDB)'这一行去掉即可。
然后重启计算机,或者在服务中重启OracleService[SID名]这个服务。重启后可能无法使用Enterprise Manager Console和其他客户端连接,这时请使用Oracle的Configuration and Migration Tools/Net Configuration Assistant工具删除监听器,然后新建一个监听器,重启监听器。
使用Configuration and Migration Tools/Net Manager工具,将服务命名删除,然后新建一个。
现在Oracle应该就可以正常使用,8080也不会占用了。
补充:
其实这与服务的启动顺序有关,可以先把oracle监听器服务设为手动,tomcat设为自动,重启电脑,测试http://localhost:8080,这时可以看到大猫了,哈哈...然后再把oracle监听器启动,就不会冲突了。
posted @ 2006-11-09 09:13 javaGrowing 阅读(597) | 评论 (1)编辑 收藏

response.setHeader("Cache-Control","no-cache"); //HTTP 1.1

 response.setHeader("Pragma","no-cache"); //HTTP 1.0

 response.setDateHeader ("Expires", 0); //prevents caching at the proxy server

posted @ 2006-11-08 14:42 javaGrowing 阅读(1288) | 评论 (0)编辑 收藏

我的数据库结构是这样的:

首先一开始我可以获得一个频道的channelId,我根据这个channelId得到一个首页区块的List,我在hibernate中配置homepagearea的加载方式,这样就可以通过homepage的到关联的栏目column(多对一关系),然后我还是使用hibernate的自动加载,取到column关联的专题subject(一对多关系)。
这时候问题出来了,由于column到subject的关联没有带channel信息,所以,我取到的subject实际上是一个column下所有的subject,而我期望的是要得到,一个homepagearea下根据channelId和columnId取得的subject.

解决思路:
希望通过hibernate直接建立homepage和subject的1对多关联关系

解决方法
首先我改变原来利用工具生成的hibernate配置文件和entitybean
先列出原来的homepagearea的配置文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<hibernate-mapping>
<class
    name="com.easou.wapsearch.channel.entity.CsHomepageArea"
    table="CS_HOMEPAGE_AREA"
    schema="WAPUSER"
    lazy="true"
>
    <id
        name="id"
        type="long"
        column="ID"
        length="22"
    >
     <generator class="assigned">
      
     </generator>
    </id>
    <property
        name="createdBy"
        type="long"
        column="CREATED_BY"
        length="22"
    />
    <property
        name="createdDate"
        type="timestamp"
        column="CREATED_DATE"
        length="7"
    />
    <property
        name="isMore"
        type="long"
        column="IS_MORE"
        length="22"
    />
    <property
        name="name"
        type="string"
        column="NAME"
        length="50"
    />
    <property
        name="rowCount"
        type="long"
        column="ROW_COUNT"
        length="22"
    />
    <property
        name="showCount"
        type="long"
        column="SHOW_COUNT"
        length="22"
    />
    <property
        name="theOrder"
        type="long"
        column="THE_ORDER"
        length="22"
    />
    <property
        name="updateBy"
        type="long"
        column="UPDATE_BY"
        length="22"
    />
    <property
        name="updateDate"
        type="timestamp"
        column="UPDATE_DATE"
        length="7"
    />

    <!-- Associations -->
    <!-- bi-directional many-to-one association to CsChannel -->
    <many-to-one
        name="csChannel"       
    >
        <column name="CHANNEL_ID" length="22"/>
    </many-to-one>
    <!-- bi-directional many-to-one association to CsColumn -->
    <many-to-one
        name="csColumn"       
    >
        <column name="COLUMN_ID" length="22"/>
    </many-to-one>

</class>
</hibernate-mapping>

为了让homepagearea和subject形成一种一对多的关系,我增加的一个
<set name="csSubjects" inverse="true" cascade="save-update"
   lazy="false" order-by="THE_ORDER" table="CS_SUBJECT"
   outer-join="true">
   <key>
    <column name="CHANNEL_ID" index="CHANNEL_ID" />
    <column name="COLUMN_ID" index="COLUMN_ID" />
   </key>
   <one-to-many
    class="com.easou.wapsearch.channel.entity.CsSubject" />
</set>
但是由于hibernate一对多映射的一端必须是主键,而且我这里需要关联的还是2列信息,所以我还必须要修改配置文件的主键设置
<composite-id mapped="false" unsaved-value="none">
      <key-many-to-one name="csChannel" column="CHANNEL_ID"></key-many-to-one>
   <key-many-to-one name="csColumn" column="COLUMN_ID"></key-many-to-one>
</composite-id>
并且遮蔽掉原有的channel和column多对一关联关系,否则会报告重复错误
<!-- Associations
   bi-directional many-to-one association to CsChannel
  <many-to-one name="csChannel" lazy="true">
   <column name="CHANNEL_ID" length="22" />
  </many-to-one>
   bi-directional many-to-one association to CsColumn
  <many-to-one name="csColumn" lazy="true">
   <column name="COLUMN_ID" length="22" />
  </many-to-one>

  -->
这样hibernate才会在加载homepagearea时自动把subject的关联信息也加载进来了


最后的homepagearea配置文件
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<hibernate-mapping>
 <class name="com.easou.wapsearch.channel.entity.CsHomepageArea"
  table="CS_HOMEPAGE_AREA" schema="WAPUSER" lazy="true">
  <composite-id mapped="false" unsaved-value="none">
      <key-many-to-one name="csChannel" column="CHANNEL_ID"></key-many-to-one>
   <key-many-to-one name="csColumn" column="COLUMN_ID"></key-many-to-one>
  </composite-id>
  <property name="createdBy" type="long" column="CREATED_BY"
   length="22" />
  <property name="createdDate" type="timestamp"
   column="CREATED_DATE" length="7" />
  <property name="isMore" type="long" column="IS_MORE"
   length="22" />
  <property name="name" type="string" column="NAME" length="50" />
  <property name="rowCount" type="long" column="ROW_COUNT"
   length="22" />
  <property name="showCount" type="long" column="SHOW_COUNT"
   length="22" />
  <property name="theOrder" type="long" column="THE_ORDER"
   length="22" />
  <property name="updateBy" type="long" column="UPDATE_BY"
   length="22" />
  <property name="updateDate" type="timestamp"
   column="UPDATE_DATE" length="7" />

  <!-- Associations
   bi-directional many-to-one association to CsChannel
  <many-to-one name="csChannel" lazy="true">
   <column name="CHANNEL_ID" length="22" />
  </many-to-one>
   bi-directional many-to-one association to CsColumn
  <many-to-one name="csColumn" lazy="true">
   <column name="COLUMN_ID" length="22" />
  </many-to-one>

  -->
  <set name="csSubjects" inverse="true" cascade="save-update"
   lazy="false" order-by="THE_ORDER" table="CS_SUBJECT"
   outer-join="true">
   <key>
    <column name="CHANNEL_ID" index="CHANNEL_ID" />
    <column name="COLUMN_ID" index="COLUMN_ID" />
   </key>
   <one-to-many
    class="com.easou.wapsearch.channel.entity.CsSubject" />

  </set>


 </class>

</hibernate-mapping>

经验总结:
1、本来使用hibernate的加载策略就是为了把一些业务逻辑直接融合在数据库关系当中,但是由于自己逻辑没有考虑清楚造成了加载时信息的丢失(而且我觉得我的表结构有问题,不知有有没有dba给我指点一下问题)。
2、hibernate的一对多关联关系多端是1端是针对主键的,所以不论你是关联的是1列2列还是3列,它们都应该是你的1端的主键或者联合主键(其实一对一,多对一,多对多的原理也是相似的)。

参考资料:hibernate_reference(3.2)

posted @ 2006-11-08 11:50 javaGrowing 阅读(374) | 评论 (0)编辑 收藏

用户在浏览网页时,如果在网页中单击鼠标右键并选择菜单中的“查看源文件”选项后,系统就会调用记事本打开该网页的HTML源文件,用户可以通过修改注册表来更改默认的打开程序,然后如下:
一:打开注册表。
“开始”菜单->“运行”->输入 regedit 然后点确定。
二:打开HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\INTERNET EXPLORER,在其下新建一个主键"View Source Editor",在其下再新一个主键"Editor Name",又击右侧窗口中的"默认"将数值设为更换程序的路径及文件名.

三:重新启动INTERNET EXPLORER,查看某个网页的源文件,用户就会发现打开的程序已经更改了.

posted @ 2006-11-06 20:19 javaGrowing 阅读(286) | 评论 (0)编辑 收藏

仅列出标题
共19页: First 上一页 3 4 5 6 7 8 9 10 11 下一页 Last