1 maintain页面编写注意事项(1)
2 maintain页面编写注意事项(2)
3 和瑞系统查询驾驶员相关信息SQL
select
d.name as 姓名,
v.licenseplate as 车牌号,
d.phone as 联系电话,
case when d.sex = 1 then '男' when d.sex = 2 then '女'end as 性别,
d.politicalstatus as 政治面貌,
d.idcard as 身份证号码,
d.classtype as 班类别,
d.contractstarttime as 合同开始日期,
d.nativeplace 籍贯地址,
d.presentaddress 现地址
from driver_information d
left join vehicle_info v on v.id = d.vehicleinfo_id
left join TEAM t on t.id = d.team_id
where 1 = 1
4 待研究
wlOA-计划管理-计划维护项-计划立项页面
1.计划立项新建:
选中一条状态为打开的记录,点击修改按钮,若当前用户是创建这条记录的创建人,则可以修改如下图所示的修改页面:
若当前用户不是该记录的创建人,则不可修改如下图所示不可修改的计划立项页面:
5 更新代码,页面显示还是旧内容的问题
开发或者测试中,有时会碰到更新了代码,但是进入系统中发现显示的还是旧的内容,这时进行下面2步操作:
- 清理浏览器的缓存。
- 清理Eclipse的工作空间。
6 提示标识符无效的问题
有时查看页面时,发现如下问题:
解决方法:出现这种问题的原因推测是数据库中没有某一列,比如本例中的是表V_INVENTORY
中没有名为REMARK
的这一列。我们只需要在V_INVENTORY表
添加名为REMARK
的列即可。
7 系统与HTML的整合
7.1 超链接按钮开发
有时我们需要在页面中点击某个按钮,跳转到另外一个页面。这是就要编写在页面中关于点击按钮跳转到html页面的开发了。
举例:整车系统(vehicle)中-经销商分配统计-调度按钮。点击“调度”跳转到一个新的页面。
点击“调度”,跳转到页面如下所示:
这里我们具体讲解开发以上功能的步骤:
- 1 在maintain页面进行如下配置:
上图中的代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<pages>
<maintainPage id="mainVdealerAssPage" title="mainVdealerAssPage" autoQuery="true" width="800" heigh="400" entityClass="com.yz.wms.server.model.shipping.VdealerAss" displayRowCount="300">
<datasource><![CDATA[SELECT
dealerAss.id,
dealerAss.consigneeCode,
dealerAss.consigneeName,
dealerAss.assignQty,
dealerAss.unAssignQty,
dealerAss.province,
dealerAss.city,
dealerAss.fromShipLoc,
dealerAss.toShipLoc,
dealerAss.warehouseName,
dealerAss.id as operation
from VdealerAss dealerAss
where 1=1
and (dealerAss.warehouseId = #{SESSION_WAREHOUSE} or dealerAss.companyCode = #{SESSION_COMPANY_CODE} and #{SESSION_WAREHOUSE} in('99','100'))]]></datasource>
<columns>
<column id="dealerAss.id" title="dealerAss.id" visible="false"/>
<column id="dealerAss.consigneeCode" title="dealerAss.consigneeCode" visible="true" dataType="string"/>
<column id="dealerAss.consigneeName" title="dealerAss.consigneeName" visible="true" dataType="string"/>
<column id="dealerAss.assignQty" title="dealerAss.assignQty" visible="true" dataType="interger" width="80"/>
<column id="dealerAss.unAssignQty" title="dealerAss.unAssignQty" visible="true" dataType="interger" width="80"/>
<column id="dealerAss.province" title="dealerAss.province" visible="true" dataType="string" width="80"/>
<column id="dealerAss.city" title="dealerAss.city" visible="true" dataType="string"/>
<column id="dealerAss.fromShipLoc" title="dealerAss.fromShipLoc" visible="true" dataType="string"/>
<column id="dealerAss.toShipLoc" title="dealerAss.toShipLoc" visible="true" dataType="string"/>
<column id="dealerAss.warehouseName" title="dealerAss.warehouseName" visible="true" dataType="string" format="hValue"/>
<column id="operation" title="operation" visible="true" dataType="string" sortable="false" format="operationVdealerFormatter"/>
</columns>
</maintainPage>
</pages>
- 2 编写XXXFormatter类
编写一个名为XXXFormatter的类,本例中需要编写OperationVdealerFormatter类,具体代码如下:
package com.yz.wms.server.service.formatter;
import java.util.List;
import com.vtradex.thorn.server.format.Formatter;
/**
* 经销商分派统计页面-调度操作链接
* @author WL20180732
*
*/
public class OperationVdealerFormatter implements Formatter{
public String format(String property, Object cellValue, List origenData,
String referenceModel, String locale) {
Long id = (Long) origenData.get(0);
String s = null ;
s = "<a href='dist/views/orderView/orderView3.html?vdealerAssIds="+id+"' target='_black' style='text-decoration:none;font-weight: bold;font-size:14px;color:blue;'>调度</a>";
return s;
}
public String exportFormat(String property, Object cellValue,
List origenData, String referenceModel, String locale) {
return cellValue == null ? "" : cellValue.toString();
}
}
- 3 配置formatContext.xml
接着,我们要在formatContext.xml文件中对XXXFormatter.java进行配置
<bean id="operationVdealerFormatter" class="com.yz.wms.server.service.formatter.OperationVdealerFormatter"/>
到这里基本配置就完成了,具体业务逻辑还需要自己接着开发和完善。
7.2 maintain页面是HTML页面的开发
还有一种点击目录中的某个页面跳转到html页面的。如整车系统-可视化管理-道口预约可视化如下图:
点击“道口预约可视化”,会把当前道口的预约信息展示出来,还可以点击预约道口按钮进行道口的预约。
我们以道口预约可视化来讲解这种页面的开发步骤,具体如下:
- 1 编写maintain页面:
<?xml version="1.0" encoding="UTF-8"?>
<pages>
<customPage id="mainVdockOrderPage" title="mainVdockOrderPage" className="com.yz.wms.client.view.VdocOrder"/>
</pages>
maintain页面代码讲解如下:
- 2 编写java文件
本例中要编写VdocOrder类:
package com.yz.wms.client.view;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.rpc.IsSerializable;
import com.google.gwt.user.client.ui.Frame;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.layout.FitLayout;
import com.vtradex.thorn.client.template.BaseCustomMaintainTemplate;
public class VdocOrder extends BaseCustomMaintainTemplate implements IsSerializable{
public void draw(Panel content) {
content.setMargins(0, 0, 0, 0);
content.setBorder(false);
Panel container = new Panel();
container.setLayout(new FitLayout());
container.setMargins(0);
Frame frame = new Frame("docOrder.html");
frame.removeStyleName(frame.getStyleName());
DOM.setElementPropertyInt(frame.getElement(), "frameBorder", 0);
DOM.setElementPropertyInt(frame.getElement(), "margin-top", 0);
frame.setSize("100%", "100%");
frame.getElement().setAttribute("style", "border: 0px");
container.add(frame);
content.setMargins(0);
content.add(container);
}
}
8 方法调试
在开发过程中,如果写好了某个方法,但是前台又没有某个按钮可用来调试。这时我们需要用以下方法进行方法调试:
上图中还有个按钮“执行TASK”,此时,我们只需要从数据库表’thorn_tasks’中的查找我们要执行的那个task的id放到订阅者中,然后保存调试即可。
9 常见的页面过滤条件
系统中分有很多仓库、公司、用户等,比如在切换仓库时,要求页面只展示当前仓库的相关数据,把不属于该仓库的数据过滤掉。这就要求在编写页面数据显示的HQL语句时必须要加上相关的过滤条件。下面列举一些常见的页面过滤条件:
- 1 过滤仓库:#{SESSION_WAREHOUSE}
例如:
- 2 过滤当前登录用户:
- 3 过滤公司:#{SESSION_COMPANY_CODE}
9 Oracle数据库中给表中字段添加注释
在Oracle数据库中,有时为了更加清楚的知道表中每个字段代表的含义,需要给表的字段添加注释,此时可以通过以下SQL语句:
comment on column 表名.字段名 is '注释内容';
例如:给表W_RECEIVE_MES的字段Create_Time添加注释:
comment on column W_RECEIVE_MES.Create_Time is '创建时间';
10 数据库违反完整约束条件异常
此时使用下面语法:
SELECT * FROM user_constraints u WHERE u.constraint_name LIKE '%违反完整约束条件后面的内容如:FKD6D345E1540B5FFC%';
这个异常的原因是,想要删除数据库中的某一条记录,但是该记录在另一个表中作为外键引入,索引会删除失败。