ExtJS 6.5.3学习笔记

个性开发admin 发表了文章 • 0 个评论 • 430 次浏览 • 2018-05-12 18:13 • 来自相关话题

最近需要实现一个数据透视表功能,找了许多组件都不好用,如jqwidgets5.7.2等,最后采用了最新版的 ExtJS 6.5.3 的 PivotGrid 控件,集成效果见另一篇文章。
 
下面保存一下 ExtJS6的使用笔记:
 

--ExtJS GPL版,到这里下载:
https://www.sencha.com/legal/gpl/

--ExtJS试用版到这里下载:
https://www.sencha.com/products/evaluate/


Sencha Cmd 6.5.3 使用指南如下:
http://docs.sencha.com/extjs/6 ... .html
下面是创建应用的步骤:

--1、绑定SDK
sencha config --prop sencha.sdk.path=C:\D\Apache2.2\htdocs\ext-6.5.3 --save

--2、先新建一个文件夹,然后进入此文件夹再创建初始应用
sencha app init --modern PivotExp --移动模式
sencha app init --ext@6.2.0 --modern PivotExp --带中间参数报错 

sencha app init --classic PivotExp --经典模式

--sencha -sdk D:\extjs\ext-6.5.3 generate app -modern Demo D:\demo

--3、启动应用
sencha app watch

--4、调试应用URL
http://localhost:1841/ 


http://docs.sencha.com/extjs/6 ... orter
http://localhost/ext-6.5.3/bui ... -grid

--使用pivot_grid控件,总是提示找不到 pivot 包,需要下载 ext-addons-6.5.3-trial.zip ,在试用版申请邮件中有一行:
Pivot Grid, D3 Adapter, Calendar, and Exporter add-ons
下载链接类似 https://cdn.sencha.com/ext/tri ... xxxxx

--创建 sencha ExtJS 6 项目的几种方法
https://blog.csdn.net/lovelyel ... 77616

--怎么去掉顶部的 Ext JS Trial 字样
--把项目文件夹 *.scss 全文查找 'd',替换为 '' 为就可以了;
--或者 PivotExp-all_1.css 文件中的 content: 'd' 替换为 content: ''

--应用打包为发布版
sencha app build production

--发布版执行时报错 TypeError: c is not a constructor app.js 
--解决方案如下: https://www.cnblogs.com/icyhoo/p/8295162.html

--应用打包为测试版
sencha app build testing

--一般是因为 requires 类不够造成的,可以构建测试通过后在构建产品;
现在可以看到具体错误,因为无法创建 plugin.viewport,这个时候找到相关的类或文件,在Application.js  requires加入 Ext.container.Viewport
  查看全部
最近需要实现一个数据透视表功能,找了许多组件都不好用,如jqwidgets5.7.2等,最后采用了最新版的 ExtJS 6.5.3 的 PivotGrid 控件,集成效果见另一篇文章。
 
下面保存一下 ExtJS6的使用笔记:
 

--ExtJS GPL版,到这里下载:
https://www.sencha.com/legal/gpl/

--ExtJS试用版到这里下载:
https://www.sencha.com/products/evaluate/


Sencha Cmd 6.5.3 使用指南如下:
http://docs.sencha.com/extjs/6 ... .html
下面是创建应用的步骤:

--1、绑定SDK
sencha config --prop sencha.sdk.path=C:\D\Apache2.2\htdocs\ext-6.5.3 --save

--2、先新建一个文件夹,然后进入此文件夹再创建初始应用
sencha app init --modern PivotExp --移动模式
sencha app init --ext@6.2.0 --modern PivotExp --带中间参数报错 

sencha app init --classic PivotExp --经典模式

--sencha -sdk D:\extjs\ext-6.5.3 generate app -modern Demo D:\demo

--3、启动应用
sencha app watch

--4、调试应用URL
http://localhost:1841/ 


http://docs.sencha.com/extjs/6 ... orter
http://localhost/ext-6.5.3/bui ... -grid

--使用pivot_grid控件,总是提示找不到 pivot 包,需要下载 ext-addons-6.5.3-trial.zip ,在试用版申请邮件中有一行:
Pivot Grid, D3 Adapter, Calendar, and Exporter add-ons
下载链接类似 https://cdn.sencha.com/ext/tri ... xxxxx

--创建 sencha ExtJS 6 项目的几种方法
https://blog.csdn.net/lovelyel ... 77616

--怎么去掉顶部的 Ext JS Trial 字样
--把项目文件夹 *.scss 全文查找 'd',替换为 '' 为就可以了;
--或者 PivotExp-all_1.css 文件中的 content: 'd' 替换为 content: ''

--应用打包为发布版
sencha app build production

--发布版执行时报错 TypeError: c is not a constructor app.js 
--解决方案如下: https://www.cnblogs.com/icyhoo/p/8295162.html

--应用打包为测试版
sencha app build testing

--一般是因为 requires 类不够造成的,可以构建测试通过后在构建产品;
现在可以看到具体错误,因为无法创建 plugin.viewport,这个时候找到相关的类或文件,在Application.js  requires加入 Ext.container.Viewport
 

有没有qq群或者啥讨论组?

回复

开发工具bennygreat 发起了问题 • 1 人关注 • 0 个回复 • 143 次浏览 • 2018-05-12 10:38 • 来自相关话题

Java-Mail 用QQ邮箱发送邮件时报错

回复

个性开发admin 回复了问题 • 1 人关注 • 1 个回复 • 375 次浏览 • 2018-04-14 10:52 • 来自相关话题

怎么写点击事件后出现一个输入性对话框的Inc

回复

个性开发呦北花花 发起了问题 • 1 人关注 • 0 个回复 • 170 次浏览 • 2018-04-07 09:08 • 来自相关话题

配置审批单中显示部门印章与个人签名的效果

开发工具admin 发表了文章 • 1 个评论 • 301 次浏览 • 2018-04-04 19:15 • 来自相关话题

效果如下:





 
配置手册见附件。
 
效果如下:

效果.png

 
配置手册见附件。
 

在一个功能中通过弹出窗口的方式打开另一个功能的表格或者表单

个性开发admin 发表了文章 • 0 个评论 • 251 次浏览 • 2018-03-30 16:44 • 来自相关话题

--在表格中选择某条记录,打开一个弹出窗口,显示另一个功能的表单界面,表格的INC示列代码如下:
--参考功能:功能设计器 -- 更多 -- 扩展页面定义config.eventcfg = {
setFunext: function(){
var records = this.grid.getSelectionModel().getSelections();
if (!JxUtil.selectone(records)) return;
var selfunid = records[0].get('fun_base__fun_id');

//加载Form数据
var hdcall = function(page) {
//设置外键键
page.getForm().fkName = 'fun_ext__fun_id';
page.getForm().fkValue = selfunid;

//加载显示数据
var options = {
where_sql: 'fun_ext.fun_id = ?',
where_type: 'string',
where_value: selfunid,
callback: function(data) {
//如果没有数据则执行新增
if (data.length == 0) {
page.formNode.event.create();
} else {
var r = page.formNode.event.newRecord(data[0]);

page.getForm().myRecord = r;
page.getForm().loadRecord(r);
}
}
};
Jxstar.queryData('fun_ext', options);
};

//显示数据
var define = Jxstar.findNode('fun_ext');
Jxstar.showData({
filename: define.formpage,
title: define.nodetitle,
width: 500,
height: 250,
callback: hdcall
});
}
}
--在表单打开一个弹出窗口,显示另一个功能的表单界面,表单的INC示列代码如下:config.eventcfg = {
setFunext: function(){
var keyid = this.getPkField().getValue();--取主键值
var myform = this.form;
var selfunid = myform.get("fun_base__fun_id");

--打开表单的方法同上
...
}
}
--在表格中打开一个弹出窗口,显示另一个功能的布局页面,双击表格记录可以切换到表单,表格的INC示列代码如下:config.eventcfg = {
mywin: function(){
var records = this.grid.getSelectionModel().getSelections();
if (!JxUtil.selectone(records)) return;
//var selfunid = records[0].get('fun_base__fun_id');

//加载Form数据
var hdcall = function(layout) {
//过滤条件
var where_sql = 'store_in.in_id like ?';
var where_type = 'string';
var where_value = '%';//查询条件根据实际情况修改

//加载数据
JxUtil.delay(500, function(){
var grid = layout.getComponent(0).getComponent(0);
if (!grid) {
alert('没有找到表格对象!'); return;
}
Jxstar.loadData(grid, {where_sql:where_sql, where_value:where_value, where_type:where_type});
});
};

//显示数据
var define = Jxstar.findNode('store_in');
Jxstar.showData({
nodedefine: define,
filename: define.layout,
title: define.nodetitle,
width: 900,
height: 650,
callback: hdcall
});
}
}
--在表格中打开一个弹出窗口,显示另一个功能的表格,表格的INC示列代码如下:
--参考功能:系统设置 -- 权限设置 -- 用户注册 -- “所属角色”按钮config.eventcfg = {
setRole: function(){
var records = this.grid.getSelectionModel().getSelections();
if (!JxUtil.selectone(records)) return;

var pkcol = this.define.pkcol;
var seluserid = records[0].get(pkcol);

//过滤条件
var where_sql = 'sys_user_role.user_id = ?';
var where_type = 'string';
var where_value = seluserid;

//加载数据
var hdcall = function(grid) {
//显示数据
JxUtil.delay(500, function(){
//设置外键值
grid.fkValue = where_value;
Jxstar.loadData(grid, {where_sql:where_sql, where_value:where_value, where_type:where_type});
});
};

var srcDefine = Jxstar.findNode('sys_user_role');
//显示数据
Jxstar.showData({
filename: srcDefine.gridpage,
title: srcDefine.nodetitle,
pagetype: 'subgrid',
nodedefine: srcDefine,
callback: hdcall
});
}
}; 查看全部
--在表格中选择某条记录,打开一个弹出窗口,显示另一个功能的表单界面,表格的INC示列代码如下:
--参考功能:功能设计器 -- 更多 -- 扩展页面定义
config.eventcfg = {
setFunext: function(){
var records = this.grid.getSelectionModel().getSelections();
if (!JxUtil.selectone(records)) return;
var selfunid = records[0].get('fun_base__fun_id');

//加载Form数据
var hdcall = function(page) {
//设置外键键
page.getForm().fkName = 'fun_ext__fun_id';
page.getForm().fkValue = selfunid;

//加载显示数据
var options = {
where_sql: 'fun_ext.fun_id = ?',
where_type: 'string',
where_value: selfunid,
callback: function(data) {
//如果没有数据则执行新增
if (data.length == 0) {
page.formNode.event.create();
} else {
var r = page.formNode.event.newRecord(data[0]);

page.getForm().myRecord = r;
page.getForm().loadRecord(r);
}
}
};
Jxstar.queryData('fun_ext', options);
};

//显示数据
var define = Jxstar.findNode('fun_ext');
Jxstar.showData({
filename: define.formpage,
title: define.nodetitle,
width: 500,
height: 250,
callback: hdcall
});
}
}

--在表单打开一个弹出窗口,显示另一个功能的表单界面,表单的INC示列代码如下:
config.eventcfg = {
setFunext: function(){
var keyid = this.getPkField().getValue();--取主键值
var myform = this.form;
var selfunid = myform.get("fun_base__fun_id");

--打开表单的方法同上
...
}
}

--在表格中打开一个弹出窗口,显示另一个功能的布局页面,双击表格记录可以切换到表单,表格的INC示列代码如下:
config.eventcfg = {
mywin: function(){
var records = this.grid.getSelectionModel().getSelections();
if (!JxUtil.selectone(records)) return;
//var selfunid = records[0].get('fun_base__fun_id');

//加载Form数据
var hdcall = function(layout) {
//过滤条件
var where_sql = 'store_in.in_id like ?';
var where_type = 'string';
var where_value = '%';//查询条件根据实际情况修改

//加载数据
JxUtil.delay(500, function(){
var grid = layout.getComponent(0).getComponent(0);
if (!grid) {
alert('没有找到表格对象!'); return;
}
Jxstar.loadData(grid, {where_sql:where_sql, where_value:where_value, where_type:where_type});
});
};

//显示数据
var define = Jxstar.findNode('store_in');
Jxstar.showData({
nodedefine: define,
filename: define.layout,
title: define.nodetitle,
width: 900,
height: 650,
callback: hdcall
});
}
}

--在表格中打开一个弹出窗口,显示另一个功能的表格,表格的INC示列代码如下:
--参考功能:系统设置 -- 权限设置 -- 用户注册 -- “所属角色”按钮
config.eventcfg = {
setRole: function(){
var records = this.grid.getSelectionModel().getSelections();
if (!JxUtil.selectone(records)) return;

var pkcol = this.define.pkcol;
var seluserid = records[0].get(pkcol);

//过滤条件
var where_sql = 'sys_user_role.user_id = ?';
var where_type = 'string';
var where_value = seluserid;

//加载数据
var hdcall = function(grid) {
//显示数据
JxUtil.delay(500, function(){
//设置外键值
grid.fkValue = where_value;
Jxstar.loadData(grid, {where_sql:where_sql, where_value:where_value, where_type:where_type});
});
};

var srcDefine = Jxstar.findNode('sys_user_role');
//显示数据
Jxstar.showData({
filename: srcDefine.gridpage,
title: srcDefine.nodetitle,
pagetype: 'subgrid',
nodedefine: srcDefine,
callback: hdcall
});
}
};


主表单新增保存后,子表格的按钮还是灰色的

回复

个性开发admin 发起了问题 • 1 人关注 • 0 个回复 • 218 次浏览 • 2018-03-30 11:14 • 来自相关话题

给没有图标的按钮统一添加一个图标

开发工具admin 发表了文章 • 0 个评论 • 121 次浏览 • 2018-03-29 09:59 • 来自相关话题

update fun_event set iconcls = 'fa-bookmark-o' where show_type = 'tool' and client_method > ' ' and is_hide = '0' and iconcls is null
and event_code not in (select event_code from fun_event where fun_id in ('sysevent', 'queryevent', 'login')) 查看全部
update fun_event set iconcls = 'fa-bookmark-o' where show_type = 'tool' and client_method > ' ' and is_hide = '0' and iconcls is null 
and event_code not in (select event_code from fun_event where fun_id in ('sysevent', 'queryevent', 'login'))

定义一个快速新建功能的菜单

开发工具admin 发表了文章 • 0 个评论 • 175 次浏览 • 2018-03-24 14:08 • 来自相关话题

用下面的代码保存到一个js文件中,如:/demo/store/pub/create_store_in.js
新建一个功能ID,如:store_in_new,功能名称为“新建入库单”,用上面的js文件作为布局页面文件。
这样点击“新建入库单”菜单时,打开的就是一个新增入库单状态的表单界面。 
 Jxstar.currentPage = function(define, pageParam) {
var param = {};
param.whereSql = 'store_in.auditing = ?';//要改为目标功能的表名
param.whereValue = '0';
param.whereType = 'string';
param.isfast = true;
param.funTitle = define.nodetitle;
Jxstar.createNode('store_in', param);//要改为目标功能ID
}; 查看全部
用下面的代码保存到一个js文件中,如:/demo/store/pub/create_store_in.js
新建一个功能ID,如:store_in_new,功能名称为“新建入库单”,用上面的js文件作为布局页面文件。
这样点击“新建入库单”菜单时,打开的就是一个新增入库单状态的表单界面。 
 
Jxstar.currentPage = function(define, pageParam) {
var param = {};
param.whereSql = 'store_in.auditing = ?';//要改为目标功能的表名
param.whereValue = '0';
param.whereType = 'string';
param.isfast = true;
param.funTitle = define.nodetitle;
Jxstar.createNode('store_in', param);//要改为目标功能ID
};

微信服务号消息没有提醒声音

移动开发admin 发表了文章 • 0 个评论 • 195 次浏览 • 2018-03-23 15:58 • 来自相关话题

进入微信公众平台管理界面:https://mp.weixin.qq.com 
 
菜单:安全中心 -- 风险操作提醒 -- 启用,这样服务号发送的消息就会有声音提醒了。
 
但已经关注这个服务号的用户如果收到的消息还是没有提醒声音,就需要先取消关注,
 
然后再关注一下,就有声音了。 查看全部
进入微信公众平台管理界面:https://mp.weixin.qq.com 
 
菜单:安全中心 -- 风险操作提醒 -- 启用,这样服务号发送的消息就会有声音提醒了。
 
但已经关注这个服务号的用户如果收到的消息还是没有提醒声音,就需要先取消关注,
 
然后再关注一下,就有声音了。