常见问题及解决办法001

一、
错误提示:找不到表或视图
这是因为没有更新数据库的原因
可以在业务建模工具里面选中相关的单据,右键选择‘更新数据库’
之后重新打开就可以使用了格式
二、
在onload()方法里面设置界面上显示的东西需要在super.onLoad()方法之后
要不然调用父类的方法之后,他又会重新再加载一遍界面,原来添加的东西就会不显示。
三、
将数据添加到分录entryInfo中:首先我们已经将分录中的字段,为新创建的entryInfo对象赋值,然后通过这张单据的info绑定entryInfo,info.getEntry().add(entryInfo);

4:
StringBuffer sql = new StringBuffer();
sql.setLength(0);
目的是是清空StringBuffer后重新写入
https://blog.csdn.net/wyp_810618/article/details/80709628
5:
F7里面存放的都是id,所以插入的时候需要插入id
update CT_BAS_CustomerRelationEntry t2 set CFCusName = (select t1.Fname_l2 from T_BD_Customer t1 where t1.fNumber=t2.CFQHCActualNum)
6:
更改标准单据Dep列表界面的顺序:

打上勾

然后:

调整顺序就行了

设置分录中的列隐藏
this.kdtAssEntrys.getColumn(“house”).getStyleAttributes().setHided(isHide);

删除分录中的空白行
int count=this.kdtImmuneEntrys.getRowCount();
for(int rowIndex=0;rowIndex<count;) {
//领用量,使用量,批号都为空
if(UIRuleUtil.isNull(kdtImmuneEntrys.getCell(rowIndex,“vaccineGetQty”).getValue())&&UIRuleUtil.isNull(kdtImmuneEntrys.getCell(rowIndex,“vaccineUsedQty”).getValue())&&UIRuleUtil.isNull(kdtImmuneEntrys.getCell(rowIndex,“lot”).getValue())) {
this.kdtImmuneEntrys.removeRow(rowIndex);
}else{
rowIndex++;
}
count=this.kdtImmuneEntrys.getRowCount();
}

单据的editUI界面只适合将字段展示给大家,并不会忘数据库中存放,如果想要存放到数据库需要在 业务建模界面添加控件

分录设置某个字段隐藏
kdtEntrys.getCell(e.getRowIndex(), “inBatch”).getStyleAttributes().setHided(true);
分录字段必录
((KDBizPromptBox)kdtEggEntry.getCell(e.getRowIndex(),“farmer”).getEditor().getComponent()).setRequired(true);
分录字段设置背景颜色
kdtEggEntry.getCell(e.getRowIndex(), “farmer”).getStyleAttributes().setBackground(new Color(252,251,223));

最新备份的权限项表:
T_PM_PermItem20181030
T_WFR_Assign 工作流表
T_BOT_Mapping 单据规则定义表

提示这个信息,需要设置这个扩展属性

如果没有的话,就需要重新设置Entity
找到这个entity然后右键打开文件所在位置

复制一份到桌面,然后填入以下信息

这里又重新建了一个Query:StockingBatchHouseEntryF7Query

然后把这个文件先保存,覆盖到原来的位置就有了

根据bostype查找实体
select * from T_PF_BOSOBJECT where fbostype = ‘3BC1156D’

设置字段的显示格式小数位数表头字段
this.kdtEntrys.getColumn(“unitQty”).getStyleAttributes().setNumberFormat("#.00");
txtpunishAmt.setPrecision(6);
bos改变页签顺序

只需要改变这三个的顺序就可以改变页签的顺序

除法,小数保留位数
kdtEntrys.getCell(e.getRowIndex(),“costPrice”).setValue(costAmount.divide(receiveQty,3,BigDecimal.ROUND_HALF_DOWN));

设置文字在控件中的位置,靠左,居中靠右
txtfodderTransMiles.setHorizontalAlignment(JTextField.RIGHT);
设置编辑界面的标题

@Override
public void initUIContentLayout() {

super.initUIContentLayout();
setUITitle("期间设置");
btnOK.setEnabled(true);
btnCancel.setEnabled(true);

setUITitle(“期间设置”);
编辑界面保存方法
editData.getEntrys().clear();
editData.getBreedEntry().clear();
editData.getFodderEntry().clear();
editData.getBreedEntry().clear();
editData.getDrugEntry().clear();

设置默认初始时间
objectValue.setBizDate(new Date());

设置默认财务组织,为当前公司
objectValue.setCompany(SysContext.getSysContext().getCurrentFIUnit());
获取当月第一天
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String first = format.format(c.getTime());
System.out.println("===============first:"+first);
获取当月最后一天
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
String last = format.format(ca.getTime());
System.out.println("===============last:"+last);

设置分录中新增行,插入行,删除行分录行的 控件不可用
public void onLoad() throws Exception {
// TODO Auto-generated method stub
super.onLoad();
this.kdtShopCommEntrys.setEnabled(false);
//设置分录中新增,插入,删除分录行的 控件不可用
kdtEntrys_detailPanel.getAddNewLineButton().setVisible(false);
kdtEntrys_detailPanel.getInsertLineButton().setVisible(false);
kdtEntrys_detailPanel.getRemoveLinesButton().setVisible(false);

	kdtSalerCommEntrys_detailPanel.getAddNewLineButton().setVisible(false);
	kdtSalerCommEntrys_detailPanel.getInsertLineButton().setVisible(false);
	kdtSalerCommEntrys_detailPanel.getRemoveLinesButton().setVisible(false);
	
	kdtShopCommEntrys_detailPanel.getAddNewLineButton().setVisible(false);
	kdtShopCommEntrys_detailPanel.getInsertLineButton().setVisible(false);
	kdtShopCommEntrys_detailPanel.getRemoveLinesButton().setVisible(false);

}

设置字段的显示格式
kdtEntrys.getColumn(“allReceiveQty”).getStyleAttributes().setNumberFormat("#");

服务器日志路径

新建或者是修改Query的时候,如果单据是有分录得,一定要把分录的id也一并导入

更新数据中心的时候datacenter.xml文件的内容也会更改

获取当前会计期间
String sq = “/dialect/select t3.fid periodid from T_BD_SystemStatusCtrol t1 " +
" inner join T_ORG_Company t2 on t2.fid=t1.FCompanyID” +
" inner join T_BD_Period t3 on t3.fid=t1.FCurrentPeriodID" +
" inner join T_BD_SystemStatus t4 on t4.fid=t1.FSystemStatusID" +
" where t1.FIsStart=1 and t4.fname=6" +
" and t2.fid=’"+defaultCompanyid+"’";

界面状态oprtState
if(OprtState.EDIT.equals(this.getOprtState()) && isFirstLoad)
return;
}

-提交时校验附件不能为空

	// TODO Auto-generated method stub

	List<Integer> selectList = new ArrayList<Integer>();
	selectList = getSelectList();
	for(int i=0,size=selectList.size();i<size;i++){
		//提交时添加校验----如果附件为空弹出提示
		String listBillid = tblMain.getCell(selectList.get(i),"id").getValue().toString();
		String sql = "/*dialect*/ select fid from T_BAS_BoAttchAsso t1 where t1.FBoID='"+listBillid+"'";
		IRowSet rs = SQLExecutorFactory.getRemoteInstance(sql).executeSQL();
		if(rs.next()){
			String billid = rs.getString("fid");
			if(billid == null){
				MsgBox.showWarning("附件不能为空,不允许提交!");
				SysUtil.abort();
			}
		}else{
			MsgBox.showWarning("附件为空,禁止提交!");
			SysUtil.abort();
		}
		super.actionSubmit_actionPerformed(e);
	}

字符串是否包含某个字符
if(colJson.getString(“name”).toLowerCase().contains(“id”)){
col.setHided(true);bostype
}

根据单据id获取单据的bostype
BOSObjectType bosType = BOSUuid.read(sourceId).getType();

根据bostype获取单据的数据库表名
String tableName = FMIsqlFacadeFactory.getRemoteInstance().getTableNameByBosType(bosType);
System.out.println(tableName);

系统参数设置
管理员登录—》进入系统工具的 参数设置—》F12就可以新增了
T_BAS_Param–参数设置在数据库中对应的表
对应表:
/dialect/
select t2.FValue_l2 paramValue, t3.fname_l2 companyName,t3.fnumber companyNumber
from T_BAS_Param t1
inner join T_BAS_ParamItem t2 on t2.FKeyID=t1.fid
inner join T_ORG_BaseUnit t3 on t3.fid=t2.FOrgUnitID
where t1.fnumber = ‘GL_117’

根据单据编码获取实体
方法1:
PayRequestBillInfo payRequestBillInfo = (PayRequestBillInfo)BillProertiesConvertor.getValueObject(payReqNum, PayRequestBillInfo.class, null, ctx);

方法2:
IMaterialGroup imsgs = MaterialGroupFactory.getLocalInstance(ctx);
EntityViewInfo ev=new EntityViewInfo();
FilterInfo filter=new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo(“groupStandard.id”,“dR8lnQEPEADgAAWKwKgSxZeb4R8=”,CompareType.EQUALS));
filter.getFilterItems().add(new FilterItemInfo(“number”,MaterialGroupNum,CompareType.EQUALS));
ev.setFilter(filter);
MaterialGroupCollection cols = imsgs.getMaterialGroupCollection(ev);
MaterialGroupInfo mginfo = cols.get(0);
info.setMaterialGroup(mginfo);

获取当前财务组织
ContextUtil.getCurrentFIUnit(ctx)

单据设置系统编码规则:

	CtrlUnitInfo  cuInfo = SysContext.getSysContext().getCurrentCtrlUnit();
	objectValue.setCU(cuInfo);

☐ 弹出确认框
if(rs.next()){
int n = JOptionPane.showConfirmDialog(null, “该基础资料已被引用,确定修改吗?”, “确定”, JOptionPane.YES_NO_OPTION);
if (n == JOptionPane.YES_OPTION) {
super.actionEdit_actionPerformed(e);
} else {
SysUtil.abort();
}
}

或者:
if(MsgBox.showConfirm2(“即将执行所选期间的成本计算操作,耗时较长,是否继续?”)!=MsgBox.YES){
SysUtil.abort();
}

☐ 显示执行中
LongTimeDialog dialog = new LongTimeDialog( (Frame) SwingUtilities.getWindowAncestor(this));
dialog.setLongTimeTask(new ILongTimeTask() {
public Object exec() throws Exception {
Object obj = “sunx”;
// 查询的数据赋值与表格
CKCostCalFacadeFactory.getRemoteInstance().calCost(companyID, periodID);
return obj;
}
public void afterExec(Object result) throws Exception {
MsgBox.showInfo(“成本计算完成!”);
}
});
Component[] cps=dialog.getContentPane().getComponents();
for(Component cp:cps){
if(cp instanceof JLabel){
((JLabel) cp).setText(“成本计算执行中…”);
}
}
dialog.show();

☐ 重新设置分录header的名称
kdtEntrys.getHeadRow(0).getCell(“num1Feed”).setValue(feedWithHisNumberInfo.getNum1().getName());
kdtEntrys.getHeadRow(0).getCell(“num2Feed”).setValue(feedWithHisNumberInfo.getNum2().getName());
kdtEntrys.getHeadRow(0).getCell(“num3Feed”).setValue(feedWithHisNumberInfo.getNum3().getName());
kdtEntrys.getHeadRow(0).getCell(“num4Feed”).setValue(feedWithHisNumberInfo.getNum4().getName());
kdtEntrys.getHeadRow(0).getCell(“num5Feed”).setValue(feedWithHisNumberInfo.getNum5().getName());

☐ 设置上下文(写接口的时候切记要对上下文进行处理)context
//设置上下文的当前公司
ContextUtil.setCurrentFIUnit(ctx, paymentBillInfo.getCompany());
//设置上下文的当前CU
ContextUtil.setCurrentCtrlUnit(ctx, paymentBillInfo.getCU());

//获取菜单参数
Object obj = getUIContext().get(“UIClassParam”) ;
if(“1”.equals(UIRuleUtil.getString(obj))){
bizType=WeighBizType.Pur;
}else if(“2”.equals(UIRuleUtil.getString(obj))){
bizType=WeighBizType.localPur;
this.prmtMaterial.setEnabled(true);
this.prmtSupplier.setEnabled(true);

	}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值