1、一个类C实现两个接口A和B,A中有方法public void m() {},而B中有方法public double m() {};在main函数中调用这个类的对象的m方法结果编译通不过.
|
原因:首先接口里只能声明方法,而不能实现它,那么在C里就必须要实现这两个m方法;
其次一个类里面不能有方法名和参数类型、个数完全相同的多个方法存在,此处必须要实现两个接口里的抽象方法。
所以:编译程序认为是两个同名方法,会报错。
2、在一个java类中定义多个class的情况下,如果有main方法的那个类必须是public,并且一个文件中有且只能有一个public class,但是可以有多个class。
还有就是文件名要和这个public class类名一致。
3、工作:今天做了一个任务。
(1) 在“折扣”后面增加字段“已结算”字段,数值型文本框,只读,动态取值状态为已审的而销售结算中“单位名称+客户姓名+凭证单号”与本单据“单位名称+客户姓名+凭证单号”相同的销售结算的编辑页面主表的“金额”值。(编辑页面)
在编辑主表的data标签中:
<input-field virtual="1" name="jsje" table="a" caption="已结算" datatype="number" type="text" readonly="1" />
js脚本:
//已结算的取值
getJsje();
function getJsje(){
var dwtxid = getObjectValue(document.all['dwtxid']);
var pzdh = getObjectValue(document.all['pzdh']);
var khmc = getObjectValue(document.all['thr']);
var datasets = DataSet_LoadXMLUrl(getRelativeURL("/sale/sale_retail_send_jsje.vw?dwtxid="+dwtxid+"&pzdh="+pzdh+"&khmc="+khmc));
var dsData = datasets['jsje.sql'];
if(dsData.getValue('jsje') != 0){
setObjectValue(document.all['jsje'],dsData.getValue('jsje'));
}
};
<!--已结算金额取值-->
<view path="/sale/sale_retail_send_jsje.vw" title="零售发货单" pagecode="sale_retail_send">
<set-attribute key="useAttribute">1</set-attribute>
<set-attribute key="sqlKeys">jsje.sql</set-attribute>
<set-attribute key="jsje.sql"><![CDATA[
SELECT sum(a.je) jsje FROM cw_xsjs a WHERE a.zt in(1) and a.dwtxid='{dwtxid}' AND a.pzdh='{pzdh}' AND a.khmc='{khmc}'
]]></set-attribute>
<forward page="/sqltoxml.do"/>
</view>
(2) 在“欠款”后面增加“已结算”字段,取值编辑页面主表的“已结算”字段值 (列表页面)。
在列表页面的data标签中:
<field name="jsje" table="a" caption="已结算" datatype="number" format="#0.00"/>
jsje的取值:
SELECT sum(a.je) jsje,a.dwtxid FROM cw_xsjs a,xs_td x
WHERE a.zt in(1) AND a.dwtxid=x.dwtxid AND a.pzdh=x.pzdh AND a.khmc=x.thr GROUP BY a.dwtxid
“现金”自动计算,等于金额合计值-抹零,可编辑。
写js脚本方法,用onchange属性调用脚本即可。