android 报表,示例1:在APP中展示报表- 集成示例-App集成文档(Android)

创建主程序文件

按照标准方法,创建activity即可。

登陆及查看报表的接口与实现

package com.example.testinterface;

import org.json.JSONObject;

import com.raq.tab.GezAccess;

import com.raq.tab.ReportActivity;

import com.runqianapp.mobile.service.ReportProperty;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class Demo1 extends Activity implements OnClickListener

{

private TextView tip;

private EditText host;

private EditText username;

private EditText password;

private Button login;

private Button viewreport;

public static String hostdata;

public static String userdata;

public static String passdata;

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.demo1);

this.setTitle("DEMO1:登陆+查看报表");

initViews();

}

private void initViews()

{

// 得到布局文件中的控件

tip = (TextView)findViewById(R.id.demo1_tip);

host = (EditText)findViewById(R.id.demo1_host);

username = (EditText)findViewById(R.id.demo1_username);

password = (EditText)findViewById(R.id.demo1_password);

login = (Button)findViewById(R.id.demo1_login);

viewreport = (Button)findViewById(R.id.demo1_report);

// 给控件添加事件

login.setOnClickListener(this);

viewreport.setOnClickListener(this);

}

@Override

public void onClick(View v)

{

if(v.getId()==R.id.demo1_login)

{

doLoginAction();

}else if(v.getId()==R.id.demo1_report)

{

doViewReportAction();

}

}

private void doLoginAction()

{

//获取页面数据

hostdata = host.getText().toString();

userdata = username.getText().toString();

passdata = password.getText().toString();

//发送请求前,先进行数据校验

if(TextUtils.isEmpty(hostdata) ||TextUtils.isEmpty(userdata)||TextUtils.isEmpty(passdata))

{

//校验失败,页面提示并返回,不继续进行

tip.setText("服务器或用户名或密码为空");

return;

}

//校验通过,调用接口进行登陆

testLogin(hostdata,userdata,passdata);

}

private void doViewReportAction()

{

//指定报表展现的宽度和高度

/** 报表视图的高度 */

String h = String.valueOf(ReportProperty.getInstance().getDeviceHeight(this)

- ReportProperty.getInstance().getTopBarHeight(this)

- ReportProperty.getInstance().getBottomBarHeight(this)

- ReportProperty.getInstance().getDeviceNotificationBarHeight(this));

/** 报表视图的宽度 */

String w = String.valueOf(ReportProperty.getInstance() .getDeviceWidth(this));

//页面跳转

testGotoReportPage(hostdata,userdata,passdata,h,w);

}

/**

* 调用接口,进行登陆

* @param hosturl 后台应用跟路径 如 http://localhost:8800/reportmis

* @param username 用户名

* @param password 密码

*/

private void testLogin(String hosturl, String username, String password)

{

try {

//传入hosturl(http://xxx:8800/reportmis) username(root) password(1)进行登录验证,得到验证结果

String result = GezAccess.accessWithParams(hosturl,username, password);

//返回的结果为json对象,并进行解析

JSONObject loginJsonObject = new JSONObject(result);

//得到登录结果,如果这个值为1,则登录成功

String loginState = loginJsonObject.getString("loginrlt");

// 登陆之后,保存sessionId到全局

String jsessionid = loginJsonObject.optString("jsessionid");

ReportProperty.getInstance().setJsessionid(jsessionid);

if("1".equals(loginState))

{

tip.setText("登录成功");

viewreport.setVisibility(View.VISIBLE);

}

} catch (Exception e)

{

e.printStackTrace();

}

}

/**

* 跳转到展现普通报表的Activity

* @param hosturl 后台应用跟路径 如 http://localhost:8800/reportmis

* @param username 用户名

* @param password 密码

* @param h 高度

* @param w 宽度

*/

private void testGotoReportPage(String hosturl, String username,String password, String h, String w)

{

String resid = "11544";

String resType = "12";

Intent reportIntent = new Intent(this, ReportActivity.class);

String forwardMsg = "{\"reportId\":\"" + resid + "\",\"reportType\":\""

+ resType + "\",\"host\":\"" + hosturl + "\",\"w\":\""

+ w + "\",\"h\":\"" + h + "\",\"userName\":\""

+ username + "\",\"passWord\":\"" + password

+ "\"}";

reportIntent.putExtra("forwardMsg", forwardMsg);

this.startActivity(reportIntent);

}

}

服务器端设置

1. 首先需要在服务器端准备一张报表,本例直接使用了demo中的报表,位置是, 手机报表->功能展示报表->锁定表头报表->客户联系信息表。

2. 服务器地址的问题。需要直接填写ip才可以。

运行结果演示

第一个页面,需要设置登陆信息。

4bb81dc222827ae5863de4c4359a2653.png

登陆成功后,上方有提示,并出现了查看报表按钮。

35a1381d8fd8cddf8420f415f9362459.png

点击第二个页面的查看报表,跳转到了报表查看页面。

e92a96fb8c63a5c68349ca020f84f115.png


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部