714
edits
mNo edit summary Tag: 2017 source edit |
(→附加字段) |
||
| Line 11: | Line 11: | ||
{{Template用户手册}} | {{Template用户手册}} | ||
= 附加字段 = | =附加字段= | ||
附加字段允许您向标准Dolibarr数据库模式中添加更多数据。自版本3.2开始引入,附加字段现在在大多数业务对象中得以实现: | |||
*合作方 & 联系人 | |||
*用户 | |||
*事件 | |||
*报价单 | |||
*客户发票 | |||
*订单 | |||
*供应商报价单 | |||
*供应商发票 | |||
*供应商订单 | |||
*产品 & 服务 | |||
*会员 & 会员类型 | |||
*项目 & 项目任务 (自 3.4 起) | |||
*类别 | |||
*费用报销单 | |||
==技术实现方式== | |||
== | 每个对象在数据库中都有一个表用于存储ExtraFields的值。 | ||
==数据表的附加字段表的模板== | |||
llx_''BaseTableNAme''_extrafields | llx_''BaseTableNAme''_extrafields | ||
| Line 42: | Line 43: | ||
用于在对象上实现 ExtraFields 的MySQL定义文件示例: | |||
create table llx_place_room_extrafields | create table llx_place_room_extrafields | ||
| Line 52: | Line 53: | ||
) ENGINE=innodb; | ) ENGINE=innodb; | ||
== | ==加载ExtraFields类== | ||
要使用ExtraFields,所有页面必须包括: | |||
<syntaxhighlight lang="PHP"> | <syntaxhighlight lang="PHP"> | ||
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; | require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | ==将ExtraField数组加载到对象中== | ||
<syntaxhighlight lang="PHP"> | <syntaxhighlight lang="PHP"> | ||
$extrafields = new ExtraFields($db); | $extrafields = new ExtraFields($db); | ||
| Line 64: | Line 66: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
$extralabels | $extralabels 将是一个包含extrafields代码和标签的数组。此代码必须放在类中,例如放在“write_file”函数中。 | ||
== | ==在对象中加载ExtraField== | ||
把ExtraFields加载到数组 $object->array_options 中。 | |||
<syntaxhighlight lang="PHP"> | <syntaxhighlight lang="PHP"> | ||
| Line 77: | Line 77: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
此代码应放在上述代码之后。 | |||
== 显示附加字段于 PDF 或 HTML == | ==显示附加字段于 PDF 或 HTML== | ||
加载附加字段后 | 加载附加字段后 | ||
| Line 94: | Line 94: | ||
此处 XXX 为附加字段代码 | 此处 XXX 为附加字段代码 | ||
== 显示附加字段列表于 PDF or HTML == | ==显示附加字段列表于 PDF or HTML== | ||
加载附加字段后 | 加载附加字段后 | ||
| Line 110: | Line 110: | ||
== 调用 $object->create() 或 $object->update()之前 == | ==调用 $object->create() 或 $object->update()之前== | ||
表单发送的附加字段的值需要取回。为此,使用此方法: | 表单发送的附加字段的值需要取回。为此,使用此方法: | ||
| Line 117: | Line 117: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 内部编辑页面显示附加字段 == | ==内部编辑页面显示附加字段== | ||
| Line 128: | Line 128: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 内部显示页面显示附加字段 == | ==内部显示页面显示附加字段== | ||
<syntaxhighlight lang="PHP"> | <syntaxhighlight lang="PHP"> | ||
| Line 138: | Line 138: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 对象类的 fetch 方法之后 == | ==对象类的 fetch 方法之后== | ||
<syntaxhighlight lang="PHP"> | <syntaxhighlight lang="PHP"> | ||
require_once(DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'); | require_once(DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'); | ||
| Line 169: | Line 169: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 对象类的delete方法之后 == | ==对象类的delete方法之后== | ||
<syntaxhighlight lang="PHP"> | <syntaxhighlight lang="PHP"> | ||
// Removed extrafields | // Removed extrafields | ||
| Line 191: | Line 191: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==修复数据库 == | ==修复数据库== | ||
Search and find definition of $listofmodulesextra add the new extrafield declaration | Search and find definition of $listofmodulesextra add the new extrafield declaration | ||
<syntaxhighlight lang="PHP"> | <syntaxhighlight lang="PHP"> | ||
| Line 200: | Line 200: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 如何在使用模型时更改列的标签 (propals, etc.) == | ==如何在使用模型时更改列的标签 (propals, etc.)== | ||
在该模型的PHP代码中,您可以通过"_tableau(...)"的函数来更改附加字段的标签。 | 在该模型的PHP代码中,您可以通过"_tableau(...)"的函数来更改附加字段的标签。 | ||
edits