当前位置:  编程技术>综合
本页文章导读:
    ▪第十一章 数据绑定与脚本,事件机制详解(续)      11.3 Java事件绑定 下面以一个例子来介绍怎么在BIRT设计器中添加JAVA事件处理。在 Eclipse 中创建一个单一工程,引入样例报表,使用 Java 语言实现报表事件响应处理程序。引.........
    ▪read_xml      #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <libxml/xmlmemory.h> #include <libxml/parser.h> int parseStory(xmlDocPtr doc, xmlNodePtr cur) {   xmlChar *key;  .........
    ▪JQuery Mobile入门——预加载页与页面缓存      1、在开发移动应用时,对需要链接的页面进行预加载是十分有必要的。因为当一个链接页面设置成为预加载方式时,在当前页面加载完成之后,目标页面也被自动加载到当前文档中,用户单.........

[1]第十一章 数据绑定与脚本,事件机制详解(续)
    来源: 互联网  发布时间: 2013-11-10
11.3 Java事件绑定

下面以一个例子来介绍怎么在BIRT设计器中添加JAVA事件处理。在 Eclipse 中创建一个单一工程,引入样例报表,使用 Java 语言实现报表事件响应处理程序。引导读者在短时间内对百灵报表(BIRT)有一个初步了解,并掌握使用 Java 语言创建百灵报表(BIRT)事件响应处理程序的基本步骤和调试方法。

建立工程

按照如下步骤,建立一个Java工程,同时引入BIRT Engine API JAR 包。


图 2. 建立工程

1. 启动百灵报表(BIRT),在主菜单中选择 File -> New -> Project... 菜单项,打开 New Project 对话框。


图 3. New Project 对话框

2. 在 New Project 对话框中选择 Java -> Java Project 项目,单击 Next 按钮,打开 New Java Project 对话框。


图 4. New Java Project 对话框

3. 在 Project name 处输入“BirtWithJava”作为项目名称,单击 Next 按钮,打开 Java Settings 对话框。


图 5. Java Settings 对话框

4. 在 Java Settings 对话框中选择 Libraries 页面,单击 Add External JARs... 按钮.


图 6. Libraries 页面

5. 选择 “<百灵报表(BIRT)根目录>/plug-ins/org.eclipse.birt.report.engine_2.3.0.v20080616.jar“ 文件,添加为工程类库。这个 JAR 包文件是百灵报表(BIRT) 的 Engine API。对于不同版本的百灵报表(BIRT),该文件的文件名中所附带的版本信息是不一样的。


图 7. 引入 Engine API

6. 单击 Finish 按钮,当系统提示 “Open Associated Perspective?” 时,单击 Yes 按钮,如下结构的 Java 工程被创建出来。


图 8. BirtWithJava 工程

导入样例报表

按照如下步骤,导入一个样例报表。


图 9. 打开 Show View 对话框

1. 在主菜单中选择 Window -> Show View -> Other... 菜单项,打开 Show View 对话框。


图 10. Show View 对话框

2. 在 Show View 对话框中选择 Report and Chart Design -> Report Examples 项目,单击 OK 按钮,打开 Report Examples 窗口。


图 11. Report Examples 窗口

    
[2]read_xml
    来源: 互联网  发布时间: 2013-11-10

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>

int parseStory(xmlDocPtr doc, xmlNodePtr cur)
{
  xmlChar *key;
  cur = cur->xmlChildrenNode;
  while(cur != NULL)
  {
    //if((!xmlStrcmp(cur->name, (const xmlChar*)"abc")))
    //{
    //  printf("[%s]\n", cur->name);
    //  parseStory(doc, cur);
    //}
    
    if((!xmlStrcmp(cur->name, (const xmlChar*)"mysql")))
    {
      printf("[%s]\n", cur->name);
      parseStory(doc, cur);
    }
    else if((!xmlStrcmp(cur->name, (const xmlChar*)"host")))
    {
      key=xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
      printf(" %s=>%s\n", cur->name, key);
      xmlFree(key);
    }
    else if((!xmlStrcmp(cur->name, (const xmlChar*)"port")))
    {
      key=xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
      printf(" %s=>%s\n", cur->name, key);
      xmlFree(key);
    }
    else if((!xmlStrcmp(cur->name, (const xmlChar*)"db")))
    {
      key=xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
      printf(" %s=>%s\n", cur->name, key);
      xmlFree(key);
    }
    else if((!xmlStrcmp(cur->name, (const xmlChar*)"username")))
    {
      key=xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
      printf(" %s=>%s\n", cur->name, key);
      xmlFree(key);
    }
    else if((!xmlStrcmp(cur->name, (const xmlChar*)"password")))
    {
      key=xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
      printf(" %s=>%s\n", cur->name, key);
      xmlFree(key);
    }
    else if((!xmlStrcmp(cur->name, (const xmlChar*)"credits")))
    {
      key=xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
      printf(" %s=>%s\n", cur->name, key);
      xmlFree(key);
    }
    else if((!xmlStrcmp(cur->name, (const xmlChar*)"instructor")))
    {
      key=xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
      printf(" %s=>%s\n", cur->name, key);
      xmlFree(key);
    }
    
    
    
    
    cur = cur->next;
  }
  
  return 0;
  
}

int main(int argc, char **argv)
{
  //定义2个指针,doc指向整个dom;cur指向结点,以后遍历树就靠这个指针了
  xmlDocPtr doc;
  xmlNodePtr cur;
  
  //获取doc指针,也是把其他格式转成utf8的功能吧
  doc=xmlParseFile(argv[1]);
  if(doc==NULL)
  {
    printf("Document not parsed successfully. \n");
    exit(1);
  }
  
  printf("xmlParseFile ok.\n");
  
  // 取得结点指针
  cur=xmlDocGetRootElement(doc);
  if(cur==NULL)
  {
    printf("empty document. \n");
    xmlFreeDoc(doc);
    exit(1);
  }
  printf("xmlDocGetRootElement ok.\n");
  
  // 取得根结点指针,我这里是root,记住,这里一定要是根结点
  if (xmlStrcmp(cur->name, (const xmlChar *)"root"))
  {
    printf("document of the wrong type, root node != root\n");
    xmlFreeDoc(doc);
    exit(1);
  }
  printf("ok.\n");
  
  //通过这个递归函数,遍历出所有感兴趣的结点。
  parseStory(doc, cur);
  
  //一定要释放doc哦。
  xmlFreeDoc(doc);
  exit(0);
}

作者:qianzhaotu 发表于2013-1-9 12:45:45 原文链接
阅读:37 评论:0 查看评论

    
[3]JQuery Mobile入门——预加载页与页面缓存
    来源: 互联网  发布时间: 2013-11-10

1、在开发移动应用时,对需要链接的页面进行预加载是十分有必要的。因为当一个链接页面设置成为预加载方式时,在当前页面加载完成之后,目标页面也被自动加载到当前文档中,用户单击就可以马上打开,大大加快了页面访问的速度。

2、设置链接页面预加载,在<a>标签中添加data-prefetch属性,并将属性值设为true。在JQuery Mobile中要实现页面的预加载,另外一种方法是调用JavaScript代码中的全局性方法$.mobile.loadPage(),其效果跟data-prefetch一样。

3、示例代码:

<!DOCTYPE HTML >
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <meta name="viewport" content="width=device-width,initial-scale=1"/>
  <link href=/blog_article/"Css/jquery.mobile-1.2.0.min.css" rel="Stylesheet" type="text/css"/>
  <script src=/blog_article/"Js/jquery-1.8.3.min.js" type"text/javascript"></script>
  <script src=/blog_article/"Js/jquery.mobile-1.2.0.min.js" type="text/javascript"></script>
 </HEAD>
 <BODY>
  <div data-role="page">
    <div data-role="header"><h1>预加载页</h1></div>
<div data-role="content">
 <p><a href=/blog_article/"about.html"rel="external" data-prefetch="ture">点击进入</a></p>
</div>
<div data-role="footer"><h1>@2013 3i studio</h1></div>
  </div>
 </BODY>
</HTML>


4、效果图预览:




5、通过预加载方式,目标页面已注入当前页面:


作者:liang408015204 发表于2013-1-9 12:37:32 原文链接
阅读:53 评论:0 查看评论

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一) iis7站长之家
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3