2

我正在使用Adempiere哪个有数据库Oracle

我从名为Stock Code的表中调用了窗口M_StockCode

字段是CodeDescription

目前,Code数据类型 isNumberDescriptionisVarchar2

我想SparepartCode 01和输入Body RepairCode 02

当我在 Adempiere 中输入数据并保存时,将显示的是(不SparepartCode 1前导零)

我试过把LPAD功能,但它仍然失败。

如何将 01 同时放入 Adempiere 界面和数据库中?

任何建议将不胜感激:)

4

2 回答 2

3

NUMBER不能有前导零,STRING可以

  1. 如果要在数据库表中存储前导零的代码,则必须使用VARCHAR2而不是NUMBER

  2. 如果您只想显示带有前导零的数字,则使用TO_CHAR将数字转换为字符串。

例如,

SQL> SELECT TO_CHAR(1, '00') FROM DUAL;

TO_
---
 01

您也可以使用LPAD,但请记住,结果的数据类型将是字符串而不是数字。

例如,

SQL> SELECT LPAD(1, 2, '0') FROM DUAL;

LP
--
01
于 2015-10-10T07:27:28.197 回答
0

在 Adempiere 中,您通过Application Dictionary管理模型,它相当于关系数据库使用的 Data Dictionary。

  1. 以系统管理员身份登录 Adempiere。
  2. 选择菜单选项Application Dictionary->Table & Column
  3. 选择M_StockCode表并在其窗口中单击Columns选项卡。
  4. 在这里,选择代码列,如果需要切换到表单视图
  5. 现在,从下拉列表中选择字符串的参考值并将长度设置为2。
  6. 最后,点击Synchronize Column按钮让 Admepiere 修改数据库。

如果此代码是某种分类,则在应用程序字典中创建新的引用类型可能很有用,然后您可以将列指向它;这将确保一致性,为用户提供选择而不是输入值。参考可以是列表类型,这对于短列表很方便,也可以是驱动,当分类更不稳定并且需要由用户维护时很有用。

于 2015-10-13T09:44:12.567 回答