183 lines
5.3 KiB
Java
183 lines
5.3 KiB
Java
|
|
package com.example.chaoran;
|
|||
|
|
|
|||
|
|
import android.app.Activity;
|
|||
|
|
import android.app.ProgressDialog;
|
|||
|
|
import android.content.Intent;
|
|||
|
|
import android.os.Bundle;
|
|||
|
|
import android.os.Handler;
|
|||
|
|
import android.os.Message;
|
|||
|
|
import android.view.KeyEvent;
|
|||
|
|
import android.view.View;
|
|||
|
|
import android.widget.AdapterView;
|
|||
|
|
import android.widget.AdapterView.OnItemClickListener;
|
|||
|
|
import android.widget.Button;
|
|||
|
|
import android.widget.ListView;
|
|||
|
|
import android.widget.TextView;
|
|||
|
|
import com.chaoran.component.MyAdapter;
|
|||
|
|
import com.chaoran.entiry.DataGrid;
|
|||
|
|
import com.chaoran.entiry.Djselefa;
|
|||
|
|
import com.util.DialogUtil;
|
|||
|
|
import com.util.IoUtil;
|
|||
|
|
import com.util.SqlUtil;
|
|||
|
|
import com.util.SysUtil;
|
|||
|
|
import org.kobjects.base64.Base64;
|
|||
|
|
|
|||
|
|
import java.io.IOException;
|
|||
|
|
import java.util.ArrayList;
|
|||
|
|
import java.util.HashMap;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 单据提取窗口
|
|||
|
|
*/
|
|||
|
|
public class DjtqActivity extends Activity {
|
|||
|
|
private ListView listview;
|
|||
|
|
private int cur_pos = -1;// 当前显示的一行
|
|||
|
|
// private ArrayList items_text = new ArrayList();
|
|||
|
|
private Djselefa djselefa;
|
|||
|
|
public ProgressDialog pd;
|
|||
|
|
public MyAdapter adapter;
|
|||
|
|
private ArrayList listdata;
|
|||
|
|
private String filedName;// 显示字段的名字
|
|||
|
|
private String gzid;
|
|||
|
|
private String mxTempTable;
|
|||
|
|
private Intent intent;
|
|||
|
|
private Handler runHandler = new Handler() {
|
|||
|
|
@Override
|
|||
|
|
public void handleMessage(Message msg) {
|
|||
|
|
super.handleMessage(msg);
|
|||
|
|
if (msg.what == -1) {
|
|||
|
|
DialogUtil.builder(DjtqActivity.this, "错误信息", "提取方案初始化失败:"
|
|||
|
|
+ msg.obj.toString(),0);
|
|||
|
|
} else if (msg.what == -4) {
|
|||
|
|
DialogUtil.builder(DjtqActivity.this, "错误信息", "提取方案运行失败:"
|
|||
|
|
+ msg.obj.toString(),0);
|
|||
|
|
} else {
|
|||
|
|
if (msg.arg1 == 4) {
|
|||
|
|
Object ob = msg.obj;
|
|||
|
|
if (ob instanceof ArrayList) {
|
|||
|
|
ArrayList list = (ArrayList) ob;
|
|||
|
|
if (list.size() > 0) {
|
|||
|
|
intent.putExtra("param", (HashMap) list.get(0));
|
|||
|
|
setResult(2, intent);
|
|||
|
|
}
|
|||
|
|
clear();
|
|||
|
|
} else {
|
|||
|
|
DialogUtil.builder(DjtqActivity.this, "提示信息",
|
|||
|
|
ob.toString(),0);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
HashMap map = (HashMap) msg.obj;
|
|||
|
|
DataGrid dg = (DataGrid) map.get("dg");
|
|||
|
|
listdata = dg.getTableData();
|
|||
|
|
if(listdata==null||listdata.size()<1){
|
|||
|
|
filedName="";
|
|||
|
|
}else{
|
|||
|
|
filedName=SysUtil.mapFirst(listdata);
|
|||
|
|
}
|
|||
|
|
if (adapter == null) {
|
|||
|
|
adapter = new MyAdapter(DjtqActivity.this, listdata,
|
|||
|
|
filedName);
|
|||
|
|
listview.setAdapter(adapter);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if (pd != null) {
|
|||
|
|
pd.dismiss();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
@Override
|
|||
|
|
public void onCreate(Bundle savedInstanceState) {
|
|||
|
|
super.onCreate(savedInstanceState);
|
|||
|
|
setContentView(R.layout.list);
|
|||
|
|
listview = (ListView) findViewById(R.id.mxlist);
|
|||
|
|
intent = getIntent();
|
|||
|
|
HashMap paramMap = (HashMap) intent.getSerializableExtra("paramMap");
|
|||
|
|
djselefa = (Djselefa) paramMap.get("djselefa");
|
|||
|
|
pd = ProgressDialog.show(DjtqActivity.this, "正在执行提取方案", "正在下载……");
|
|||
|
|
try {
|
|||
|
|
new RunSearchThread(djselefa.getT_sql(), IoUtil.ob_base64(paramMap
|
|||
|
|
.get("t_sqlParam")), runHandler).start();
|
|||
|
|
} catch (IOException e) {
|
|||
|
|
// e.printStackTrace();
|
|||
|
|
DialogUtil.builder(this, "错误信息", "转换成Base64编码失败!",0);
|
|||
|
|
}
|
|||
|
|
gzid = paramMap.get("GZID").toString();
|
|||
|
|
mxTempTable = paramMap.get("mxTempTable").toString();
|
|||
|
|
intent.removeExtra("paramMap");
|
|||
|
|
TextView tv = (TextView) findViewById(R.id.mxtitle);
|
|||
|
|
tv.setText(djselefa.getFangamch());
|
|||
|
|
((Button) findViewById(R.id.mxbut)).setText("提取");
|
|||
|
|
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);// 一定要设置这个属性,否则ListView不会刷新
|
|||
|
|
listview.setOnItemClickListener(new OnItemClickListener() {
|
|||
|
|
@Override
|
|||
|
|
public void onItemClick(AdapterView<?> arg0, View arg1,
|
|||
|
|
int position, long id) {
|
|||
|
|
cur_pos = position;// 更新当前行
|
|||
|
|
adapter.cur_pos = cur_pos;
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void queryMx(View v) {
|
|||
|
|
try {
|
|||
|
|
if (cur_pos < 0) {
|
|||
|
|
DialogUtil.builder(this, "提示信息", "请选择一行!",0);
|
|||
|
|
} else {
|
|||
|
|
if (mxTempTable == null || mxTempTable.length() < 0) {
|
|||
|
|
DialogUtil.builder(this, "提示信息", "明细表不存在!",0);
|
|||
|
|
}
|
|||
|
|
HashMap item = (HashMap) listdata.get(cur_pos);
|
|||
|
|
HashMap hzData = SqlUtil.regSql(djselefa.getHz_sql(), item);
|
|||
|
|
HashMap mxData = SqlUtil.regSql(djselefa.getMx_sql(), item);
|
|||
|
|
HashMap hm = new HashMap();
|
|||
|
|
hm.put("gzid", gzid);
|
|||
|
|
hm.put("mxTempTable", mxTempTable);
|
|||
|
|
hm.put("hzSql", hzData.get("sql"));
|
|||
|
|
hm.put("hzParam", hzData.get("param"));
|
|||
|
|
hm.put("mxSql", mxData.get("sql"));
|
|||
|
|
hm.put("mxParam", mxData.get("param"));
|
|||
|
|
byte[] b = IoUtil.getbyte(hm);
|
|||
|
|
DialogUtil.setDialog(pd, "提示信息", "正在运行提取方案");
|
|||
|
|
new RunYmupThread(Base64.encode(b), runHandler, "runTqfa",0)
|
|||
|
|
.start();
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
pd.dismiss();
|
|||
|
|
DialogUtil.builder(DjtqActivity.this, "错误信息", "提取修改方案组织数据失败!",0);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
|||
|
|
if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
|
|||
|
|
&& !event.isCanceled()) {
|
|||
|
|
clear();
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
return super.onKeyUp(keyCode, event);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void clear() {
|
|||
|
|
listview = null;
|
|||
|
|
if (pd != null) {
|
|||
|
|
pd.dismiss();
|
|||
|
|
pd = null;
|
|||
|
|
}
|
|||
|
|
djselefa = null;
|
|||
|
|
adapter = null;
|
|||
|
|
if (listdata != null) {
|
|||
|
|
listdata.clear();
|
|||
|
|
listdata = null;
|
|||
|
|
}
|
|||
|
|
filedName = null;
|
|||
|
|
gzid = null;
|
|||
|
|
mxTempTable = null;
|
|||
|
|
intent = null;
|
|||
|
|
runHandler = null;
|
|||
|
|
intent = null;
|
|||
|
|
finish();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|