|
|
|
|
function getUrlParam(param) {
|
|
|
|
|
var params = Ext.urlDecode(location.search.substring(1));
|
|
|
|
|
return param ? params[param] : params;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isEmptyObject(e) {
|
|
|
|
|
var t;
|
|
|
|
|
for (t in e)
|
|
|
|
|
return !1;
|
|
|
|
|
return !0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function checkzimu(value) {
|
|
|
|
|
var Regx = /^[a-z]*$/;
|
|
|
|
|
if (Regx.test(value)) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function CheckFileExt(extstr, exg) {
|
|
|
|
|
var extstr = extstr.substring(extstr.lastIndexOf(".")).toLowerCase();
|
|
|
|
|
if (!extstr.match(exg)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function DateToStr(dt){
|
|
|
|
|
var str="";
|
|
|
|
|
if(dt.getFullYear){
|
|
|
|
|
var y,m,d;
|
|
|
|
|
y=formatNumber(dt.getFullYear(),'0000');
|
|
|
|
|
m=formatNumber((dt.getMonth()+1),'00'); //01-12
|
|
|
|
|
d=formatNumber(dt.getDate(),'00');
|
|
|
|
|
str= y+"-"+m+"-"+d;
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function DateTimeToStr(dt){
|
|
|
|
|
var str="";
|
|
|
|
|
if(dt.getFullYear){
|
|
|
|
|
var y,m,d,h,mi,s;
|
|
|
|
|
y=formatNumber(dt.getFullYear(),'0000');
|
|
|
|
|
m=formatNumber((dt.getMonth()+1),'00'); //01-12
|
|
|
|
|
d=formatNumber(dt.getDate(),'00');
|
|
|
|
|
h=formatNumber(dt.getHours(),'00');
|
|
|
|
|
mi=formatNumber(dt.getMinutes(),'00');
|
|
|
|
|
s=formatNumber(dt.getSeconds(),'00');
|
|
|
|
|
str= y+"-"+m+"-"+d+" "+h+":"+mi+":"+s;
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function StrToDate(str){
|
|
|
|
|
var arys= new Array();
|
|
|
|
|
arys=str.split('-');
|
|
|
|
|
var newDate=new Date(arys[0],arys[1]-1,arys[2]);
|
|
|
|
|
return newDate;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getDays(strDateStart, strDateEnd) {
|
|
|
|
|
var strSeparator = "-"; //日期分隔符
|
|
|
|
|
var oDate1;
|
|
|
|
|
var oDate2;
|
|
|
|
|
var iDays;
|
|
|
|
|
oDate1 = strDateStart.split(strSeparator);
|
|
|
|
|
oDate2 = strDateEnd.split(strSeparator);
|
|
|
|
|
var strDateS = new Date(oDate1[0], oDate1[1] - 1, oDate1[2]);
|
|
|
|
|
var strDateE = new Date(oDate2[0], oDate2[1] - 1, oDate2[2]);
|
|
|
|
|
iDays = parseInt(Math.abs(strDateS - strDateE) / 1000 / 60 / 60 / 24)//把相差的毫秒数转换为天数
|
|
|
|
|
return iDays;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getNewDay(dateTemp, days) {
|
|
|
|
|
var dateTemp = dateTemp.split("-");
|
|
|
|
|
var nDate = new Date(dateTemp[1] + '-' + dateTemp[2] + '-' + dateTemp[0]); //转换为MM-DD-YYYY格式
|
|
|
|
|
var millSeconds = Math.abs(nDate) + (days * 24 * 60 * 60 * 1000);
|
|
|
|
|
var rDate = new Date(millSeconds);
|
|
|
|
|
var year = rDate.getFullYear();
|
|
|
|
|
var month = rDate.getMonth() + 1;
|
|
|
|
|
if (month < 10) month = "0" + month;
|
|
|
|
|
var date = rDate.getDate();
|
|
|
|
|
if (date < 10) date = "0" + date;
|
|
|
|
|
return (year + "-" + month + "-" + date);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
数字格式化函数
|
|
|
|
|
|
|
|
|
|
“,” (半角的豆号) 如果有的话,看豆号到小数点(如果有的话)前有几位,则按几位划分整数部分
|
|
|
|
|
|
|
|
|
|
“0”(数字零) 如果该位上没有数字,就补0
|
|
|
|
|
“#”(井号) 如果该位上有数字就输出数字,没有则不输出
|
|
|
|
|
*/
|
|
|
|
|
function formatNumber(number,pattern){
|
|
|
|
|
var str = number.toString();
|
|
|
|
|
var strInt;
|
|
|
|
|
var strFloat;
|
|
|
|
|
var formatInt;
|
|
|
|
|
var formatFloat;
|
|
|
|
|
if(/\./g.test(pattern)){
|
|
|
|
|
formatInt = pattern.split('.')[0];
|
|
|
|
|
formatFloat = pattern.split('.')[1];
|
|
|
|
|
}else{
|
|
|
|
|
formatInt = pattern;
|
|
|
|
|
formatFloat = null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(/\./g.test(str)){
|
|
|
|
|
if(formatFloat!=null){
|
|
|
|
|
var tempFloat = Math.round(parseFloat('0.'+str.split('.')[1])*Math.pow(10,formatFloat.length))/Math.pow(10,formatFloat.length);
|
|
|
|
|
strInt = (Math.floor(number)+Math.floor(tempFloat)).toString();
|
|
|
|
|
strFloat = /\./g.test(tempFloat.toString())?tempFloat.toString().split('.')[1]:'0';
|
|
|
|
|
}else{
|
|
|
|
|
strInt = Math.round(number).toString();
|
|
|
|
|
strFloat = '0';
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
strInt = str;
|
|
|
|
|
strFloat = '0';
|
|
|
|
|
}
|
|
|
|
|
if(formatInt!=null){
|
|
|
|
|
var outputInt = '';
|
|
|
|
|
var zero = formatInt.match(/0*$/)[0].length;
|
|
|
|
|
var comma = null;
|
|
|
|
|
if(/,/g.test(formatInt)){
|
|
|
|
|
comma = formatInt.match(/,[^,]*/)[0].length-1;
|
|
|
|
|
}
|
|
|
|
|
var newReg = new RegExp('(\\d{'+comma+'})','g');
|
|
|
|
|
|
|
|
|
|
if(strInt.length<zero){
|
|
|
|
|
outputInt = new Array(zero+1).join('0')+strInt;
|
|
|
|
|
outputInt = outputInt.substr(outputInt.length-zero,zero)
|
|
|
|
|
}else{
|
|
|
|
|
outputInt = strInt;
|
|
|
|
|
}
|
|
|
|
|
var outputInt = outputInt.substr(0,outputInt.length%comma)+outputInt.substring(outputInt.length%comma).replace(newReg,(comma!=null?',':'')+'$1')
|
|
|
|
|
outputInt = outputInt.replace(/^,/,'');
|
|
|
|
|
strInt = outputInt;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(formatFloat!=null){
|
|
|
|
|
var outputFloat = '';
|
|
|
|
|
var zero = formatFloat.match(/^0*/)[0].length;
|
|
|
|
|
if(strFloat.length<zero){
|
|
|
|
|
outputFloat = strFloat+new Array(zero+1).join('0');
|
|
|
|
|
//outputFloat = outputFloat.substring(0,formatFloat.length);
|
|
|
|
|
var outputFloat1 = outputFloat.substring(0,zero);
|
|
|
|
|
var outputFloat2 = outputFloat.substring(zero,formatFloat.length);
|
|
|
|
|
outputFloat = outputFloat1+outputFloat2.replace(/0*$/,'');
|
|
|
|
|
}else{
|
|
|
|
|
outputFloat = strFloat.substring(0,formatFloat.length);
|
|
|
|
|
}
|
|
|
|
|
strFloat = outputFloat;
|
|
|
|
|
}else{
|
|
|
|
|
if(pattern!='' || (pattern=='' && strFloat=='0')){
|
|
|
|
|
strFloat = '';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return strInt+(strFloat==''?'':'.'+strFloat);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ConvertFormValue(formvalue){
|
|
|
|
|
|
|
|
|
|
var ResultObject = new Object();
|
|
|
|
|
var dt = formvalue; //字符串转化为日期
|
|
|
|
|
ResultObject= "\\/Date("+Date.UTC(dt.getFullYear(),dt.getMonth(),dt.getDate(),dt.getHours(),dt.getMinutes(),dt.getSeconds())+")\\/"; //转化为UTC日期
|
|
|
|
|
return ResultObject;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//用于转换日期格式
|
|
|
|
|
function WebPosDateTimeToStr(dt){
|
|
|
|
|
var str = "";
|
|
|
|
|
if(dt!=null)
|
|
|
|
|
{
|
|
|
|
|
var obj = eval("new " + dt.substr(1,dt.length-2));//.toString();
|
|
|
|
|
//str=Ext.util.Format.date(obj,'Y-m-d H:i:s');
|
|
|
|
|
str=DateTimeToStr(obj);
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function WebPosDateToStr(dt){
|
|
|
|
|
var str = "";
|
|
|
|
|
if(dt!=null)
|
|
|
|
|
{
|
|
|
|
|
var obj = eval("new " + dt.substr(1,dt.length-2));
|
|
|
|
|
str=DateToStr(obj);
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//用于添加SQL语句的函数
|
|
|
|
|
function getAndConSql(sql,valuestr,constr){
|
|
|
|
|
if (valuestr == '' || valuestr == null || valuestr== undefined)
|
|
|
|
|
{
|
|
|
|
|
return '';
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (sql == '') {
|
|
|
|
|
return constr;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return ' and ' + constr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getAndConSqlTwo(sql,constr){
|
|
|
|
|
if(sql=='')
|
|
|
|
|
{
|
|
|
|
|
return constr;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return ' and ' + constr;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//此函数验证EditGrid并显示需要的错误
|
|
|
|
|
//The function returns false if there is an error else it returns true.
|
|
|
|
|
function validateEditorGridPanel(grid) {
|
|
|
|
|
//var grid = Ext.getCmp(gridId);
|
|
|
|
|
var rows = grid.store.data.length;
|
|
|
|
|
var columns = grid.columns;
|
|
|
|
|
var editingPlugin = grid.editingPlugin;
|
|
|
|
|
|
|
|
|
|
for (var row = 0; row < rows; row++) {
|
|
|
|
|
var record = grid.store.getAt(row);
|
|
|
|
|
for (var col = 0; col < columns.length; col++) {
|
|
|
|
|
var column = columns[col];
|
|
|
|
|
var cellEditor = column.getEditor(record); //grid.colModel.getCellEditor(col, row);
|
|
|
|
|
if (cellEditor != undefined) {
|
|
|
|
|
if (!cellEditor.isValid()) {
|
|
|
|
|
editingPlugin.startEditByPosition({ row: row, column: col });
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//把表格中显示的记录转为Json数据(只转修改的)
|
|
|
|
|
function ConvertRecordsToJson(items) {
|
|
|
|
|
if (items.length == 0) {
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
var jsonData = "[";
|
|
|
|
|
for (var i = 0; i < items.length; i++) {
|
|
|
|
|
var record = items[i];
|
|
|
|
|
if (record.dirty) {
|
|
|
|
|
jsonData += Ext.JSON.encode(record.data) + ",";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (jsonData != "[") {
|
|
|
|
|
jsonData = jsonData.substring(0, jsonData.length - 1) + "]";
|
|
|
|
|
} else
|
|
|
|
|
jsonData = "";
|
|
|
|
|
return jsonData;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//把表格中显示的记录转为Json数据
|
|
|
|
|
function ConvertRecordsToJsonAll(items)
|
|
|
|
|
{
|
|
|
|
|
if(items.length==0)
|
|
|
|
|
{
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
var jsonData = "[";
|
|
|
|
|
for(i=0;i<items.length;i++) {
|
|
|
|
|
var record = items[i];
|
|
|
|
|
jsonData += Ext.JSON.encode(record.data) + ",";
|
|
|
|
|
}
|
|
|
|
|
if(jsonData!="[")
|
|
|
|
|
{
|
|
|
|
|
jsonData = jsonData.substring(0,jsonData.length-1) + "]";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
jsonData="";
|
|
|
|
|
return jsonData;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ConvertFeeRecordsToJson(items) {
|
|
|
|
|
if (items.length == 0) {
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
var jsonData = "[";
|
|
|
|
|
for (var i = 0; i < items.length; i++) {
|
|
|
|
|
var record = items[i];
|
|
|
|
|
if (record.dirty || record.data.BsNo=='*') {
|
|
|
|
|
jsonData += Ext.JSON.encode(record.data) + ",";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (jsonData != "[") {
|
|
|
|
|
jsonData = jsonData.substring(0, jsonData.length - 1) + "]";
|
|
|
|
|
} else
|
|
|
|
|
jsonData = "";
|
|
|
|
|
return jsonData;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ConvertBSNORecordsToJson(items) {
|
|
|
|
|
if (items.length == 0) {
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
var jsonData = "[";
|
|
|
|
|
for (var i = 0; i < items.length; i++) {
|
|
|
|
|
var record = items[i];
|
|
|
|
|
if (record.dirty || record.data.BSNO == '*') {
|
|
|
|
|
jsonData += Ext.JSON.encode(record.data) + ",";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (jsonData != "[") {
|
|
|
|
|
jsonData = jsonData.substring(0, jsonData.length - 1) + "]";
|
|
|
|
|
} else
|
|
|
|
|
jsonData = "";
|
|
|
|
|
return jsonData;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ConvertGIDRecordsToJson(items) {
|
|
|
|
|
if (items.length == 0) {
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
var jsonData = "[";
|
|
|
|
|
for (var i = 0; i < items.length; i++) {
|
|
|
|
|
var record = items[i];
|
|
|
|
|
if (record.dirty || record.data.GID == '*' || record.phantom) {
|
|
|
|
|
jsonData += Ext.JSON.encode(record.data) + ",";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (jsonData != "[") {
|
|
|
|
|
jsonData = jsonData.substring(0, jsonData.length - 1) + "]";
|
|
|
|
|
} else
|
|
|
|
|
jsonData = "";
|
|
|
|
|
return jsonData;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//把表格中显示的记录转为Json数据
|
|
|
|
|
function convertArraysToString(items)
|
|
|
|
|
{
|
|
|
|
|
if(items.length==0)
|
|
|
|
|
{
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
var jsonData = "";
|
|
|
|
|
for(i=0;i<items.length;i++) {
|
|
|
|
|
var record = items[i];
|
|
|
|
|
jsonData += Ext.JSON.encode(record) + ",";
|
|
|
|
|
}
|
|
|
|
|
jsonData = jsonData.substring(0,jsonData.length-1);
|
|
|
|
|
return jsonData;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//判断如果Form中的控件为ReadOnly那么则设置为disable
|
|
|
|
|
function setFormCmpDisable(form)
|
|
|
|
|
{
|
|
|
|
|
form.getForm().items.each(function(item){
|
|
|
|
|
if(item.readOnly)
|
|
|
|
|
item.disable();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//判断如果Form中的控件为ReadOnly那么则设置为enable
|
|
|
|
|
function setFormCmpEnable(form)
|
|
|
|
|
{
|
|
|
|
|
form.getForm().items.each(function(item){
|
|
|
|
|
if(item.readOnly)
|
|
|
|
|
item.enable();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*这里开始时UrlEncode和UrlDecode函数*/
|
|
|
|
|
UrlEncode = function(str)
|
|
|
|
|
{
|
|
|
|
|
str = str.replace(/./g,function(sHex)
|
|
|
|
|
{
|
|
|
|
|
window.EnCodeStr = "";
|
|
|
|
|
window.sHex = sHex;
|
|
|
|
|
window.execScript('window.EnCodeStr=Hex(Asc(window.sHex))',"vbscript");
|
|
|
|
|
return window.EnCodeStr.replace(/../g,"%$&");
|
|
|
|
|
});
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function trim(str){
|
|
|
|
|
for(var i = 0 ; i<str.length && str.charAt(i)==" " ; i++ ) ;
|
|
|
|
|
for(var j =str.length; j>0 && str.charAt(j-1)==" " ; j--) ;
|
|
|
|
|
if(i>j) return "";
|
|
|
|
|
return str.substring(i,j);
|
|
|
|
|
}
|
|
|
|
|
function Billstrnum(str,len) {
|
|
|
|
|
var result = "";
|
|
|
|
|
if (str == '') return result;
|
|
|
|
|
var slist = str.split("\n");
|
|
|
|
|
for (var i = 0; i < slist.length; i += 1) {
|
|
|
|
|
var member = slist[i];
|
|
|
|
|
|
|
|
|
|
if (member.length > len) {
|
|
|
|
|
if (result=='')
|
|
|
|
|
result = result + (i + 1) + '行';
|
|
|
|
|
else
|
|
|
|
|
result = result+','+ (i + 1) + '行';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (result != '') result = " <font color='red'>第" + result + '字符超过' + len + "</font>";
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function ExportExcel(gridPanel, formname, config) {
|
|
|
|
|
if (formname == '') formname = '导出数据';
|
|
|
|
|
if (gridPanel) {
|
|
|
|
|
var tmpStore = gridPanel.getStore();
|
|
|
|
|
var tmpExportContent = '';
|
|
|
|
|
|
|
|
|
|
if (!config) {
|
|
|
|
|
config = {
|
|
|
|
|
store: null, //因为后续可能需要处理分页,因此此处一般不直接传递GridPanel的数据源
|
|
|
|
|
title: formname, //需要显示标题
|
|
|
|
|
limit: 5000
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//以下处理分页grid数据导出的问题,从服务器中获取所有数据,需要考虑性能
|
|
|
|
|
var tmpParam = Ext.clone(tmpStore.lastOptions); //此处克隆了原网格数据源的参数信息
|
|
|
|
|
|
|
|
|
|
// if (tmpParam && tmpParam.params) {
|
|
|
|
|
// delete (tmpParam.params[tmpStore.paramNames.start]); //删除分页参数
|
|
|
|
|
// delete (tmpParam.params[tmpStore.paramNames.limit]);
|
|
|
|
|
// }
|
|
|
|
|
if (tmpParam && tmpParam.params) {
|
|
|
|
|
tmpStore.lastOptions.start = 0;
|
|
|
|
|
tmpStore.lastOptions.limit = config.limit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//var tmpAllStore = new Ext.data.Store({//重新定义一个数据源
|
|
|
|
|
// proxy: tmpStore.proxy,
|
|
|
|
|
// reader: tmpStore.reader
|
|
|
|
|
//});
|
|
|
|
|
|
|
|
|
|
var tmpAllStore = Ext.create('Ext.data.Store', {
|
|
|
|
|
model: tmpStore.model,
|
|
|
|
|
proxy: tmpStore.proxy
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tmpAllStore.on('load', function (store) {
|
|
|
|
|
config.store = store;
|
|
|
|
|
tmpExportContent = gridPanel.getExcelXml(false, config); //此方法用到了一中的扩展
|
|
|
|
|
if (Ext.isIE || Ext.isSafari || Ext.isSafari2 || Ext.isSafari3 || Ext.isChrome) {//在这几种浏览器中才需要,IE8测试不能直接下载了
|
|
|
|
|
if (!Ext.fly('frmDummy')) {
|
|
|
|
|
var frm = document.createElement('form');
|
|
|
|
|
frm.id = 'frmDummy';
|
|
|
|
|
frm.name = 'sheet1';
|
|
|
|
|
frm.className = 'x-hidden';
|
|
|
|
|
document.body.appendChild(frm);
|
|
|
|
|
}
|
|
|
|
|
Ext.Ajax.request({
|
|
|
|
|
//将生成的xml发送到服务器端,需特别注意这个页面的地址
|
|
|
|
|
url: '/CommMng/PubSys/ExportGrid',
|
|
|
|
|
method: 'POST',
|
|
|
|
|
form: Ext.fly('frmDummy'),
|
|
|
|
|
callback: function (o, s, r) {
|
|
|
|
|
//alert(r.responseText);
|
|
|
|
|
},
|
|
|
|
|
isUpload: true,
|
|
|
|
|
params: {
|
|
|
|
|
ExportContent: Base64.encode(tmpExportContent),
|
|
|
|
|
ExportFile: formname+'.xls'
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
document.location = 'data:application/vnd.ms-excel;base64,' + Base64.encode(vExportContent);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
tmpAllStore.load(tmpParam); //获取所有数据
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GridExportExcelPage(grid, filename) {
|
|
|
|
|
if (filename == '') filename = '导出数据.xls';
|
|
|
|
|
var vExportContent = grid.getExcelXml();
|
|
|
|
|
if (Ext.isIE6 || Ext.isIE7 || Ext.isIE8 || Ext.isIE9 || Ext.isSafari || Ext.isSafari2 || Ext.isSafari3 || Ext.isChrome) {
|
|
|
|
|
if (!Ext.fly('frmDummy')) {
|
|
|
|
|
var frm = document.createElement('form');
|
|
|
|
|
frm.id = 'frmDummy';
|
|
|
|
|
frm.name = ''; //id;
|
|
|
|
|
frm.className = 'x-hidden';
|
|
|
|
|
document.body.appendChild(frm);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Ext.Ajax.request({
|
|
|
|
|
url: '/CommMng/PubSys/ExportGrid',
|
|
|
|
|
method: 'POST',
|
|
|
|
|
form: Ext.fly('frmDummy'),
|
|
|
|
|
callback: function (o, s, r) {
|
|
|
|
|
//alert(r.responseText);
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
isUpload: true,
|
|
|
|
|
params: {
|
|
|
|
|
ExportContent: Base64.encode(vExportContent),
|
|
|
|
|
ExportFile: filename
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
document.location = 'data:application/vnd.ms-excel;base64,' + Base64.encode(vExportContent);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function PrintComm(printType, sql1, sql2, sql3, sql4, sql5, sql6,billno,rpid,rptmode) {
|
|
|
|
|
//Ext.Msg.wait('正在准备打印数据, 请稍侯..');
|
|
|
|
|
Ext.Ajax.request({
|
|
|
|
|
waitMsg: '正在准备打印数据...',
|
|
|
|
|
url: '/CommMng/Print/GetPrintInfo',
|
|
|
|
|
scope: this,
|
|
|
|
|
params: {
|
|
|
|
|
type: printType,
|
|
|
|
|
sql1: sql1,
|
|
|
|
|
sql2: sql2,
|
|
|
|
|
sql3: sql3,
|
|
|
|
|
sql4: sql4,
|
|
|
|
|
sql5: sql5,
|
|
|
|
|
sql6: sql6,
|
|
|
|
|
billno: billno,
|
|
|
|
|
RpID:rpid,
|
|
|
|
|
RptMode: rptmode
|
|
|
|
|
},
|
|
|
|
|
callback: function (options, success, response) {
|
|
|
|
|
if (success) {
|
|
|
|
|
if (Ext.MessageBox.isVisible()) {
|
|
|
|
|
Ext.MessageBox.hide();
|
|
|
|
|
}
|
|
|
|
|
var jsonresult = Ext.JSON.decode(response.responseText);
|
|
|
|
|
if (jsonresult.Success) {
|
|
|
|
|
var printUrl = "print://?comp=" + jsonresult.CompanyID + "&type=" + printType + "&dbid=" + jsonresult.DbSourceID + "&uid=" + jsonresult.UserId; //alert(printUrl);
|
|
|
|
|
if (jsonresult.PrServer != NaN && jsonresult.PrServer != null && jsonresult.PrServer != "")
|
|
|
|
|
printUrl = "print://?comp=" + jsonresult.CompanyID + "&type=" + printType + "&dbid=" + jsonresult.DbSourceID + "&uid=" + jsonresult.UserId + "&PrServer=" + jsonresult.PrServer + "&dbStr=" + jsonresult.dbStr
|
|
|
|
|
+ "&RpID=" + jsonresult.RpID + "&RptMode=" + jsonresult.RptMode; //alert(printUrl);
|
|
|
|
|
window.location.href = window.location.href;
|
|
|
|
|
location.href = printUrl;
|
|
|
|
|
} else {
|
|
|
|
|
Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK });
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
Ext.Msg.show({ title: '请重试',
|
|
|
|
|
msg: '服务器响应出错',
|
|
|
|
|
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GridExportExcel(gridPanel, config) {
|
|
|
|
|
if (!config) {
|
|
|
|
|
config = {
|
|
|
|
|
store: null, //因为后续可能需要处理分页,因此此处一般不直接传递GridPanel的数据源
|
|
|
|
|
title: '', //需要显示标题
|
|
|
|
|
limit: 4000
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
if (gridPanel) {
|
|
|
|
|
var tmpStore = gridPanel.getStore();
|
|
|
|
|
var vExportContent = '';
|
|
|
|
|
|
|
|
|
|
//以下处理分页grid数据导出的问题,从服务器中获取所有数据,需要考虑性能
|
|
|
|
|
var tmpParam = Ext.ux.constructor(tmpStore.lastOptions); //此处克隆了原网格数据源的参数信息
|
|
|
|
|
//alert(tmpParam.params[tmpStore.paramNames.limit]);
|
|
|
|
|
//此处作者原先为Ext.ux.clone(tmpStore.lastOptions)方法,但不好使
|
|
|
|
|
|
|
|
|
|
var tmpAllStore = new Ext.data.Store({//重新定义一个数据源
|
|
|
|
|
proxy: tmpStore.proxy,
|
|
|
|
|
reader: tmpStore.reader
|
|
|
|
|
});
|
|
|
|
|
tmpParam.params[tmpStore.paramNames.limit] = config.limit;
|
|
|
|
|
tmpAllStore.load(tmpParam); //获取所有数据
|
|
|
|
|
tmpAllStore.on('load', function (store) {
|
|
|
|
|
config.store = store;
|
|
|
|
|
vExportContent = gridPanel.getExcelXml(false, config); //此方法用到了一中的扩展
|
|
|
|
|
if (Ext.isIE6 || Ext.isIE7 || Ext.isIE8 || Ext.isSafari || Ext.isSafari2 || Ext.isSafari3) {
|
|
|
|
|
if (!Ext.fly('frmDummy')) {
|
|
|
|
|
var frm = document.createElement('form');
|
|
|
|
|
frm.id = 'frmDummy';
|
|
|
|
|
frm.name = id;
|
|
|
|
|
frm.className = 'x-hidden';
|
|
|
|
|
document.body.appendChild(frm);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Ext.Ajax.request({
|
|
|
|
|
url: '/PubSys/ExportGrid',
|
|
|
|
|
method: 'POST',
|
|
|
|
|
form: Ext.fly('frmDummy'),
|
|
|
|
|
callback: function (o, s, r) {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
isUpload: true,
|
|
|
|
|
params: {
|
|
|
|
|
ExportContent: Base64.encode(vExportContent),
|
|
|
|
|
ExportFile: '导出数据.xls'
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
document.location = 'data:application/vnd.ms-excel;base64,' + Base64.encode(vExportContent);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function saveQuerySetting(formname, form,isvisible,issavevalue) {
|
|
|
|
|
var form = form.getForm();
|
|
|
|
|
var fieldvalue = form.getValues();
|
|
|
|
|
Ext.Ajax.request({
|
|
|
|
|
waitMsg: '正在保存数据...',
|
|
|
|
|
url: '/MvcShipping/MsBaseInfo/SaveUserQuerySetting',
|
|
|
|
|
scope: this,
|
|
|
|
|
params: {
|
|
|
|
|
formname: formname,
|
|
|
|
|
isvisible: isvisible,
|
|
|
|
|
issavevalue: issavevalue,
|
|
|
|
|
querydetail: Ext.JSON.encode(fieldvalue)
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function LoadQueryData(formname, form,checkbox) {
|
|
|
|
|
Ext.Ajax.request({
|
|
|
|
|
waitMsg: '正在查询主表数据...',
|
|
|
|
|
url: '/MvcShipping/MsBaseInfo/GetUserQuerySetting',
|
|
|
|
|
params: {
|
|
|
|
|
formname: formname
|
|
|
|
|
},
|
|
|
|
|
callback: function (options, success, response) {
|
|
|
|
|
if (success) {
|
|
|
|
|
var result = Ext.JSON.decode(response.responseText);
|
|
|
|
|
if (!result.success) {
|
|
|
|
|
Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK });
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
data = result.data;
|
|
|
|
|
if (data.ISSAVEVALUE == true) {
|
|
|
|
|
form.getForm().reset();
|
|
|
|
|
if (data.FIELDVALUES!=="")
|
|
|
|
|
form.getForm().setValues(Ext.JSON.decode(data.FIELDVALUES));
|
|
|
|
|
if (!isNaN(checkbox)&&checkbox!=null&&checkbox!=undefined)
|
|
|
|
|
checkbox.setValue(true);
|
|
|
|
|
} else if (checkbox != NaN && checkbox != null) checkbox.setValue(false);
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
Ext.MessageBox.alert('请求出现错误,请重试', response.responseText);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
scope: this
|
|
|
|
|
});
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
function formatRMB(num) {
|
|
|
|
|
var _F = "";
|
|
|
|
|
if (num < 0) {
|
|
|
|
|
_F = "负";
|
|
|
|
|
num = 0 - num;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//#region 转换人民币金额大小写
|
|
|
|
|
var c = "零壹贰叁肆伍陆柒捌玖".split("");
|
|
|
|
|
// ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]
|
|
|
|
|
var _c = {}; // 反向对应关系
|
|
|
|
|
for (var i = 0; i < c.length; i++) {
|
|
|
|
|
_c[c[i]] = i;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var d = "元***万***亿***万";
|
|
|
|
|
var e = ",拾,佰,仟".split(",");
|
|
|
|
|
function unit4(arr) {
|
|
|
|
|
var str = "", i = 0;
|
|
|
|
|
while (arr.length) {
|
|
|
|
|
var t = arr.pop();
|
|
|
|
|
str = (c[t] + (t == 0 ? "" : e[i])) + str;
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
str = str.replace(/[零]{2,}/g, "零");
|
|
|
|
|
|
|
|
|
|
str = str.replace(/^[零]/, "");
|
|
|
|
|
str = str.replace(/[零]$/, "");
|
|
|
|
|
if (str.indexOf("零") == 0) {
|
|
|
|
|
str = str.substring(1);
|
|
|
|
|
}
|
|
|
|
|
if (str.lastIndexOf("零") == str.length - 1) {
|
|
|
|
|
str = str.substring(0, str.length - 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _F+str;
|
|
|
|
|
}
|
|
|
|
|
function _formatD(a) {
|
|
|
|
|
// 转化整数部分
|
|
|
|
|
var arr = a.split(""), i = 0, result = "";
|
|
|
|
|
while (arr.length) {
|
|
|
|
|
var arr1 = arr.splice(-4, 4);
|
|
|
|
|
|
|
|
|
|
var dw = d.charAt(i), unit = unit4(arr1);
|
|
|
|
|
|
|
|
|
|
if (dw == '万' && !unit) {
|
|
|
|
|
dw = "";
|
|
|
|
|
}
|
|
|
|
|
result = unit + dw + result;
|
|
|
|
|
i += 4;
|
|
|
|
|
}
|
|
|
|
|
return result == "元" ? "" : result;
|
|
|
|
|
}
|
|
|
|
|
function _formatF(b) {
|
|
|
|
|
// 转化小数部分
|
|
|
|
|
b = b || "";
|
|
|
|
|
switch (b.length) {
|
|
|
|
|
case 0:
|
|
|
|
|
return "整";
|
|
|
|
|
case 1:
|
|
|
|
|
return c[b] + "角";
|
|
|
|
|
default:
|
|
|
|
|
return c[b.charAt(0)] + "角" + c[b.charAt(1)] + "分";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function _format(n) {
|
|
|
|
|
var a = ("" + n).split("."), a0 = a[0], a1 = a[1];
|
|
|
|
|
return _formatD(a0) + _formatF(a1);
|
|
|
|
|
}
|
|
|
|
|
function parse4(u4) {
|
|
|
|
|
var res = 0;
|
|
|
|
|
while (t = /([零壹贰叁肆伍陆柒捌玖])([拾佰仟]?)/g.exec(u4)) {
|
|
|
|
|
var n = _c[t[1]], d = {
|
|
|
|
|
"": 1,
|
|
|
|
|
"拾": 10,
|
|
|
|
|
"佰": 100,
|
|
|
|
|
"仟": 1000
|
|
|
|
|
}[t[2]];
|
|
|
|
|
res += n * d;
|
|
|
|
|
u4 = u4.replace(t[0], "");
|
|
|
|
|
}
|
|
|
|
|
var result = ("0000" + res);
|
|
|
|
|
return result.substring(result.length - 4);
|
|
|
|
|
}
|
|
|
|
|
function _parseD(d) {
|
|
|
|
|
var arr = d.replace(/[零]/g, "").split(/[万亿]/), rs = "";
|
|
|
|
|
for (var i = 0; i < arr.length; i++) {
|
|
|
|
|
rs += parse4(arr[i]);
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
return rs.replace(/^[0]+/, "");
|
|
|
|
|
};
|
|
|
|
|
function _parseF(f) {
|
|
|
|
|
var res = "", t = f.replace(/[^零壹贰叁肆伍陆柒捌玖]+/g, "").split(""); // 去掉单位
|
|
|
|
|
if (t.length) {
|
|
|
|
|
res = ".";
|
|
|
|
|
} else {
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
for (var i = 0; (i < t.length && i < 2); i++) {
|
|
|
|
|
res += _c[t[i]];
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
function _parse(rmb) {
|
|
|
|
|
var a = rmb.split("元"), a1 = a[1], a0 = a[0];
|
|
|
|
|
if (a.length == 1) {
|
|
|
|
|
a1 = a0;
|
|
|
|
|
a0 = "";
|
|
|
|
|
}
|
|
|
|
|
return _parseD(a0) + _parseF(a1);
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
//小写转大写
|
|
|
|
|
function formatRMB(num) {
|
|
|
|
|
var n = Number(num);
|
|
|
|
|
if (!isNaN(num)) {
|
|
|
|
|
if (num == 0) {
|
|
|
|
|
return "零元整";
|
|
|
|
|
} else {
|
|
|
|
|
return _format(n);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//大写转小写
|
|
|
|
|
function parseRMB(rmb) {
|
|
|
|
|
if (/^[零壹贰叁肆伍陆柒捌玖元万亿拾佰仟角分整]{2,}$/.test(rmb)) {
|
|
|
|
|
var result = _parse(rmb);
|
|
|
|
|
return rmb == this.formatRMB(result) ? result : result + "(?)";
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
/*小写转大写*/
|
|
|
|
|
var xcc = "12.22";
|
|
|
|
|
//document.write(xcc + "=>" + formatRMB(xcc) + "<br/>");
|
|
|
|
|
|
|
|
|
|
/*大写转小写*/
|
|
|
|
|
var rrrr = "壹拾贰元贰角贰分";
|
|
|
|
|
//document.write(rrrr + "=>" + parseRMB(rrrr));
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
return formatRMB(num);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function formatUSD(num) {
|
|
|
|
|
var _F = "";
|
|
|
|
|
if (num < 0) {
|
|
|
|
|
_F = "负";
|
|
|
|
|
num = 0 - num;
|
|
|
|
|
}
|
|
|
|
|
//#region 转换人民币金额大小写
|
|
|
|
|
var c = "零壹贰叁肆伍陆柒捌玖".split("");
|
|
|
|
|
// ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]
|
|
|
|
|
var _c = {}; // 反向对应关系
|
|
|
|
|
for (var i = 0; i < c.length; i++) {
|
|
|
|
|
_c[c[i]] = i;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var d = "元***万***亿***万";
|
|
|
|
|
var e = ",拾,佰,仟".split(",");
|
|
|
|
|
function unit4(arr) {
|
|
|
|
|
var str = "", i = 0;
|
|
|
|
|
while (arr.length) {
|
|
|
|
|
var t = arr.pop();
|
|
|
|
|
str = (c[t] + (t == 0 ? "" : e[i])) + str;
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
str = str.replace(/[零]{2,}/g, "零");
|
|
|
|
|
|
|
|
|
|
str = str.replace(/^[零]/, "");
|
|
|
|
|
str = str.replace(/[零]$/, "");
|
|
|
|
|
if (str.indexOf("零") == 0) {
|
|
|
|
|
str = str.substring(1);
|
|
|
|
|
}
|
|
|
|
|
if (str.lastIndexOf("零") == str.length - 1) {
|
|
|
|
|
str = str.substring(0, str.length - 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _F + str;
|
|
|
|
|
}
|
|
|
|
|
function _formatD(a) {
|
|
|
|
|
// 转化整数部分
|
|
|
|
|
var arr = a.split(""), i = 0, result = "";
|
|
|
|
|
while (arr.length) {
|
|
|
|
|
var arr1 = arr.splice(-4, 4);
|
|
|
|
|
|
|
|
|
|
var dw = d.charAt(i), unit = unit4(arr1);
|
|
|
|
|
|
|
|
|
|
if (dw == '万' && !unit) {
|
|
|
|
|
dw = "";
|
|
|
|
|
}
|
|
|
|
|
result = unit + dw + result;
|
|
|
|
|
i += 4;
|
|
|
|
|
}
|
|
|
|
|
return result == "元" ? "" : result;
|
|
|
|
|
}
|
|
|
|
|
function _formatF(b) {
|
|
|
|
|
// 转化小数部分
|
|
|
|
|
b = b || "";
|
|
|
|
|
switch (b.length) {
|
|
|
|
|
case 0:
|
|
|
|
|
return "整";
|
|
|
|
|
case 1:
|
|
|
|
|
return c[b] + "拾美分";
|
|
|
|
|
default:
|
|
|
|
|
{
|
|
|
|
|
if (c[b.charAt(0)] !="0") {
|
|
|
|
|
return c[b.charAt(0)] + "拾" + c[b.charAt(1)] + "美分";
|
|
|
|
|
} else {
|
|
|
|
|
return c[b.charAt(1)] + "美分";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _format(n) {
|
|
|
|
|
var a = ("" + n).split("."), a0 = a[0], a1 = a[1];
|
|
|
|
|
return _formatD(a0) + _formatF(a1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function parse4(u4) {
|
|
|
|
|
var res = 0;
|
|
|
|
|
while (t = /([零壹贰叁肆伍陆柒捌玖])([拾佰仟]?)/g.exec(u4)) {
|
|
|
|
|
var n = _c[t[1]], d = {
|
|
|
|
|
"": 1,
|
|
|
|
|
"拾": 10,
|
|
|
|
|
"佰": 100,
|
|
|
|
|
"仟": 1000
|
|
|
|
|
}[t[2]];
|
|
|
|
|
res += n * d;
|
|
|
|
|
u4 = u4.replace(t[0], "");
|
|
|
|
|
}
|
|
|
|
|
var result = ("0000" + res);
|
|
|
|
|
return result.substring(result.length - 4);
|
|
|
|
|
}
|
|
|
|
|
function _parseD(d) {
|
|
|
|
|
var arr = d.replace(/[零]/g, "").split(/[万亿]/), rs = "";
|
|
|
|
|
for (var i = 0; i < arr.length; i++) {
|
|
|
|
|
rs += parse4(arr[i]);
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
return rs.replace(/^[0]+/, "");
|
|
|
|
|
};
|
|
|
|
|
function _parseF(f) {
|
|
|
|
|
var res = "", t = f.replace(/[^零壹贰叁肆伍陆柒捌玖]+/g, "").split(""); // 去掉单位
|
|
|
|
|
if (t.length) {
|
|
|
|
|
res = ".";
|
|
|
|
|
} else {
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
for (var i = 0; (i < t.length && i < 2); i++) {
|
|
|
|
|
res += _c[t[i]];
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
function _parse(rmb) {
|
|
|
|
|
var a = rmb.split("元"), a1 = a[1], a0 = a[0];
|
|
|
|
|
if (a.length == 1) {
|
|
|
|
|
a1 = a0;
|
|
|
|
|
a0 = "";
|
|
|
|
|
}
|
|
|
|
|
return _parseD(a0) + _parseF(a1);
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
//小写转大写
|
|
|
|
|
function formatRMB(num) {
|
|
|
|
|
var n = Number(num);
|
|
|
|
|
if (!isNaN(num)) {
|
|
|
|
|
if (num == 0) {
|
|
|
|
|
return "零美元整";
|
|
|
|
|
} else {
|
|
|
|
|
var _r = _format(n);
|
|
|
|
|
// _t=_r.replace('元', '美元')
|
|
|
|
|
return _r;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//大写转小写
|
|
|
|
|
function parseRMB(rmb) {
|
|
|
|
|
if (/^[零壹贰叁肆伍陆柒捌玖元万亿拾佰仟角分整]{2,}$/.test(rmb)) {
|
|
|
|
|
var result = _parse(rmb);
|
|
|
|
|
return rmb == this.formatRMB(result) ? result : result + "(?)";
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
/*小写转大写*/
|
|
|
|
|
var xcc = "12.22";
|
|
|
|
|
//document.write(xcc + "=>" + formatRMB(xcc) + "<br/>");
|
|
|
|
|
|
|
|
|
|
/*大写转小写*/
|
|
|
|
|
var rrrr = "壹拾贰元贰角贰分";
|
|
|
|
|
//document.write(rrrr + "=>" + parseRMB(rrrr));
|
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
return formatRMB(num);
|
|
|
|
|
}
|
|
|
|
|
//在js中获取当前日期(参数0)或当前日期前后某天(参数1为后一天,-2为两天前)
|
|
|
|
|
function GetDateStr(AddDayCount) {
|
|
|
|
|
var dd = new Date();
|
|
|
|
|
dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期
|
|
|
|
|
var y = dd.getFullYear();
|
|
|
|
|
var m = dd.getMonth() + 1; //获取当前月份的日期
|
|
|
|
|
var d = dd.getDate();
|
|
|
|
|
return y + "-" + m + "-" + d;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Created with IntelliJ IDEA.
|
|
|
|
|
* User: zhuhq
|
|
|
|
|
* Date: 14-3-17
|
|
|
|
|
* Time: 下午12:26
|
|
|
|
|
* To change this template use File | Settings | File Templates.
|
|
|
|
|
*/
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* function grid2Excel(grid,filename)
|
|
|
|
|
* @param grid Extjs grid panel
|
|
|
|
|
* @param filename Excel 文件名称
|
|
|
|
|
*
|
|
|
|
|
* **/
|
|
|
|
|
(function () {
|
|
|
|
|
|
|
|
|
|
var format = function (s, c) { return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; }) };
|
|
|
|
|
var tableToExcel = function (table, fileName) {
|
|
|
|
|
var uri = 'data:application/vnd.ms-excel;base64,'
|
|
|
|
|
, fileName = fileName || 'excelexport'
|
|
|
|
|
, template = '<html xmlns:o="urn:schemas-microsoft-com:office:office"' +
|
|
|
|
|
' xmlns:x="urn:schemas-microsoft-com:office:exc el" xmlns="http://www.w3.org/TR/REC-html40"><head>' +
|
|
|
|
|
'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">' +
|
|
|
|
|
'<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets>' +
|
|
|
|
|
'<x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/>' +
|
|
|
|
|
'</x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml>' +
|
|
|
|
|
'<![endif]--></head><body>{table}</body></html>';
|
|
|
|
|
|
|
|
|
|
var ctx = { worksheet: 'Worksheet', table: table };
|
|
|
|
|
var a = document.createElement('a');
|
|
|
|
|
document.body.appendChild(a);
|
|
|
|
|
a.hreflang = 'zh';
|
|
|
|
|
a.charset = 'utf8';
|
|
|
|
|
a.type = "application/vnd.ms-excel";
|
|
|
|
|
a.href = uri + Base64.encode(format(template, ctx));
|
|
|
|
|
a.target = '_blank';
|
|
|
|
|
a.download = fileName + '.xls';
|
|
|
|
|
a.click();
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
window.grid2Excel = function (grid, fileName) {
|
|
|
|
|
// var columns = grid.initialConfig.columns || [],
|
|
|
|
|
var columns = grid.columns || [],
|
|
|
|
|
store = grid.getStore(),
|
|
|
|
|
headLevel1 = [], headLevel2 = [], headLevel = 1, isGroup = false,
|
|
|
|
|
dataIndex = [], tableStr = '<table><thead>{thead}</thead><tbody>{tbody}</tbody></table>';
|
|
|
|
|
|
|
|
|
|
columns.forEach(function (column) {
|
|
|
|
|
if ((column.columns&&column.columns.length!=0)|| (column.items&&column.items.length!=0)){
|
|
|
|
|
isGroup = true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
if (isGroup) {
|
|
|
|
|
headLevel = 2; //只支持二级表头
|
|
|
|
|
}
|
|
|
|
|
columns.forEach(function (column) {
|
|
|
|
|
if (column.hidden!=true){
|
|
|
|
|
if (column.columns==undefined&&column.items.length==0) {
|
|
|
|
|
column.colspan = 1;
|
|
|
|
|
column.rowspan = headLevel;
|
|
|
|
|
headLevel1.push(column);
|
|
|
|
|
dataIndex.push(column);
|
|
|
|
|
} else {
|
|
|
|
|
if (column.columns!=undefined){
|
|
|
|
|
var items = column.columns || [];
|
|
|
|
|
} else items = column.items.items || [];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
column.rowspan = 1;
|
|
|
|
|
headLevel1.push(column);
|
|
|
|
|
var colspan=0;
|
|
|
|
|
items.forEach(function (item) {
|
|
|
|
|
if (item.hidden!=true){
|
|
|
|
|
item.colspan = 1;
|
|
|
|
|
item.rowspan = 1;
|
|
|
|
|
headLevel2.push(item);
|
|
|
|
|
dataIndex.push(item);
|
|
|
|
|
colspan=colspan+1;
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
column.colspan =colspan;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
var headLevel1Str = '<tr>';
|
|
|
|
|
headLevel1.forEach(function (head) {
|
|
|
|
|
headLevel1Str += '<th colspan = "' + head.colspan +
|
|
|
|
|
'" rowspan="' + head.rowspan + '">' + head.text + '</th>';
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
headLevel1Str += '</tr>';
|
|
|
|
|
|
|
|
|
|
var headLevel2Str = '';
|
|
|
|
|
if (headLevel2.length > 0) {
|
|
|
|
|
headLevel2Str += '<tr>';
|
|
|
|
|
headLevel2.forEach(function (head) {
|
|
|
|
|
headLevel2Str += '<th colspan = "' + head.colspan +
|
|
|
|
|
'" rowspan="' + head.rowspan + '">' + head.text + '</th>';
|
|
|
|
|
});
|
|
|
|
|
headLevel2Str += '</tr>'
|
|
|
|
|
}
|
|
|
|
|
var theadStr = headLevel1Str + headLevel2Str,
|
|
|
|
|
tbodyStr = '', defRenderer = function (value) {
|
|
|
|
|
return value;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
store.each(function (r) {
|
|
|
|
|
tbodyStr += '<tr>';
|
|
|
|
|
dataIndex.forEach(function (c) {
|
|
|
|
|
var renderere = c.renderer || defRenderer;
|
|
|
|
|
tbodyStr += '<td>' + renderere.call(r, r.get(c.dataIndex)) + '</td>'
|
|
|
|
|
});
|
|
|
|
|
tbodyStr += '</tr>'
|
|
|
|
|
});
|
|
|
|
|
tableStr = format(tableStr, {
|
|
|
|
|
thead: theadStr,
|
|
|
|
|
tbody: tbodyStr
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tableToExcel(tableStr, fileName);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
})();
|
|
|
|
|
|
|
|
|
|
function SetFormReadOnly(form, readOnly) {
|
|
|
|
|
var fields = form.getForm().getFields();
|
|
|
|
|
for (var i = 0, len = fields.length; i < len; i++) {
|
|
|
|
|
fields.items[i].setReadOnly(readOnly);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function BoxSelectgetStrValue(list) {
|
|
|
|
|
var _list = [];
|
|
|
|
|
for (var _i = 0; _i < list.length; _i++) {
|
|
|
|
|
_list.push("'" + list[_i] + "'");
|
|
|
|
|
}
|
|
|
|
|
return _list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getStoreFieldCount(store, fieldname) {
|
|
|
|
|
var _List = [];
|
|
|
|
|
for (var i = 0; i < store.getCount(); i += 1) {
|
|
|
|
|
var member = store.getAt(i);
|
|
|
|
|
var _fieldvalue = member.get(fieldname);
|
|
|
|
|
if (_List.indexOf(_fieldvalue) >= 0) {
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
_List.push(member.get(fieldname));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _List.length;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetDirty (store1, Delstore1) {
|
|
|
|
|
var changelines = store1.getModifiedRecords();
|
|
|
|
|
var delcount = Delstore1.length;
|
|
|
|
|
var changecount = changelines.length;
|
|
|
|
|
|
|
|
|
|
if (delcount == 0 && changecount == 0)
|
|
|
|
|
{ return false; }
|
|
|
|
|
else { return true; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetDirty1 (store1) {
|
|
|
|
|
var changelines = store1.getModifiedRecords();
|
|
|
|
|
if (changelines == 0)
|
|
|
|
|
{ return false; }
|
|
|
|
|
else { return true; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isNullorEmpty(exp) {
|
|
|
|
|
if (typeof (exp) == "undefined" || exp === undefined) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else if (exp == null) {
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
var reg = /^\s*$/;
|
|
|
|
|
return reg.test(exp);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetDateStr(datetime) {
|
|
|
|
|
if (!isNullorEmpty(datetime) && datetime.length >= 10) {
|
|
|
|
|
return datetime.substring(0, 10);
|
|
|
|
|
} else {
|
|
|
|
|
return datetime;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetDateStr_Month(datetime) {
|
|
|
|
|
if (!isNullorEmpty(datetime) && datetime.length >= 7) {
|
|
|
|
|
return datetime.substring(0, 7);
|
|
|
|
|
} else {
|
|
|
|
|
return datetime;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetDateStr_Minute(datetime) {
|
|
|
|
|
if (!isNullorEmpty(datetime) && datetime.length >= 16) {
|
|
|
|
|
return datetime.substring(0, 16);
|
|
|
|
|
} else {
|
|
|
|
|
return datetime;
|
|
|
|
|
}
|
|
|
|
|
}
|