UFDouble a = qgrad.multiply(new UFDouble(100).sub(mt)).div(new UFDouble(100).sub(mad));
比较:compareTo() 例:qbad < 16700
qbad.compareTo(new UFDouble(16700)) < 0
16700 =< qbad < 25100
qbad.compareTo(new UFDouble(16700)) >= 0 && qbad.compareTo(new UFDouble(25100)) < 0
取模:mod() 5=5,因为5被10除,商是0,余数是5 取模就是取余数
new UFDouble(2).mod(new UFDouble(4)) 的结果是2
指数:UFDouble可初始化为new UFDouble(2.001, 3),2.001是值,3是指数, 结果为2.001
如果写成new UFDouble(2.001, 2) 则结果为2.00
17功能:根据币种主键,单据日期 设置汇率小数位数及
是否可编辑 算法: 、单据处理时币种、汇率的控制: ¨1单主币币种体系:本币汇率、原币金额、本币金额
/**
* 功能:根据币种主键,单据日期 设置汇率小数位数及是否可编辑 算法: 、单据处理时
币种、汇率的控制: ¨1单主币币种体系:本币汇率、原币金额、本币金额
* ?币种为外币时:用户录入原币金额,本币汇率取外币对本币的汇率档案值,本币金额
由原币金额和本币汇率算出,本币金额字段不能处理。
* ?币种为本币时:用户录入原币金额,本币汇率取1且不能更改,本币金额等于原币金
额,本币金额字段不能处理。 ?
* ¨1主辅币币种体系:辅币汇率、本币汇率、原币金额、辅币金额、本币金额 * ?币种为外币时:用户录入原币金额,辅币汇率取外币对辅币的汇率档案值,辅币金额
由原币金额和辅币汇率算出且不能处理,本币汇率取辅币对本币的汇率档案值,本币金额由辅币金额和本币汇率算出且不能处理。
* ?币种为辅币时:用户录入原币金额,辅币汇率取1且不能处理,本币汇率取辅币对本
币的汇率档案值,本币金额由辅币金额和本币汇率算出且不能处理。
* ?币种为本币时:用户录入原币金额,辅币汇率为空且不能处理,本币汇率取1且不能
更改,本币金额等于原币金额且不能处理。
*
* //汇率小数位数:本币或辅币相对币种的汇率的小数位数 * @exception java.lang.Exception * 异常说明。 */
public UFDouble changeRate(String pk_currtype, int row) throws java.lang.Exception {
UFDouble rate = new UFDouble(0.00,2); if (pk_currtype == null)
String date =
return rate;
ClientEnvironment.getInstance().getDate().toString();
String pk_corp =
ClientEnvironment.getInstance().getCorporation().getPk_corp();
//0辅币 1本币
UFDouble[] hls = new UFDouble[]{null,null};
hls = Currency.getRateBoth(pk_corp, pk_currtype, date); int[] hldigs = Currency.getRateDigitBoth(pk_corp, pk_currtype); boolean[] hlenables = Currency.getRateModEnable(pk_corp,
pk_currtype);
if (hls==null||hls[1]==null) { }
// 设置汇率的小数位数
BillItem rateItem = getBillCardPanel().getBodyItem(\); // 设置单元格编辑状态
bzmcDlg(null);
getBillCardPanel().getBillModel().getRowAttribute(row).addCellEdit(\ate\, hlenables[1]);
}
rateItem.setDecimalDigits(hldigs[1]); rate = hls[1]; return rate;
private void bzmcDlg(String bzmc){
int num=0; if (null==bzmc) {
num =
this.showYesNoCancelMessage(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(\,\)/*@res \此币种与对应币种未设置汇率规则,是否继续操作\);
}else {
num =
this.showYesNoCancelMessage(nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(\,\)/*@res \币种\+bzmc + nc.vo.ml.NCLangRes4VoTransl.getNCLangRes().getStrByID(\,\)/*@res \与对应本币未设置汇率规则,是否继续操作\);
}
if (num != UIDialog.ID_YES) {
ExceptionHandler.createException(nc.vo.ml.NCLangRes4VoTransl.getN
CLangRes().getStrByID(\,\)/*@res \请设置该币种的汇率\);
}
}
18 全选按钮
BillModel billModel = getBillListPanel().getHeadBillModel(); int rowCount = billModel.getRowCount(); for(int i = 0; i < rowCount; i++){
billModel.setRowState(i, nc.ui.pub.bill.BillModel.SELECTED); }
getBillListPanel().revalidate(); getBillListPanel().repaint();
19 设置表头、表体字段为不可编辑
/**
* 功能:将表头表体字段 设置为不可编辑。
* 循环表头表体的显示字段,如果为可编辑字段,就将其设置为不可
编辑,并且将其key值 记录下来。
* 在 取消 或 保存后,根据key值,将表头表体字段 设置回可编辑
状态。
*/ // 表头
BillItem[] headItems =
this.getSelfUI().getBillCardPanel().getHeadShowItems();
for(int i=0;i if( headItems[i].isEnabled() ) { } headItems[i].setEnabled(false); EditItem_head.add( headItems[i].getKey() );