# `Sp_Create_sControlFaceNameTableThree` (procedure) > 插入ControlFaceName - **Type:** PROCEDURE - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `p_sControlFaceName` | `longtext` | | 2 | IN | `p_iArrangeSrcValue` | `int` | | 3 | OUT | `p_iOut` | `int` | | 4 | IN | `p_sControlFacesCharDefalut` | `varchar(255)` | | 5 | IN | `p_sControlFacesTitleFirst` | `varchar(255)` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURE `Sp_Create_sControlFaceNameTableThree`'`._ ## Narrative **Business context:** 生产排程 → 印刷拼版/折页清单展开 — variant 3 of the `Sp_Create_sControlFaceNameTable` dispatcher family that materialises the temp table `sControlFaceName_tmp` from a 控面 (control-face) descriptor string. This variant handles the `【A+B-C+D】` pattern — a 合版 (gang-up) print spec where pairs of pages run together and 折页 splits them into separate 贴 entries. **What it does:** Parses `p_sControlFaceName` (e.g. `1+2-9+10`) into start/end + `+`-count, computes the per-iteration title (e.g. `贴` suffix logic via `Fun_GetGb`/`Fun_GetNum`/`Fn_split_string`), then loops inserting one row per 贴 into `sControlFaceName_tmp(iIndex, sControlFaceNameNum, sControlFacesChar, sId)`. Two branches: `p_iArrangeSrcValue=2` (折页) emits concatenated multi-page rows (`1+2`, `3+4`, ...); otherwise emits one row per individual page. Edge case: if the `+` pair before the `-` is symmetric (e.g. `2A+2B`), it delegates to `Sp_Create_sControlFaceNameTableFive` and leaves the loop. **Invocation:** Called by `Sp_Create_sControlFaceNameTable` (the dispatcher) when the control-face descriptor contains both `-` and `+` and no `,`. The dispatcher chain is reached from `Sp_Manufacture_InsertMftPlanSlave` during 生产计划/排程 row-creation. No form-master, gdsmodule hook, or Java caller — purely an internal helper.