低代碼 – 共好plm系統(tǒng) http://www.thetouzi.cn PDM產(chǎn)品數(shù)據(jù)管理軟件、項目管理系統(tǒng) Fri, 05 Jun 2026 03:15:09 +0000 zh-Hans hourly 1 https://wordpress.org/?v=7.1.3 http://www.thetouzi.cn/wp-content/uploads/2022/11/cropped-plmico512-32x32.png 低代碼 – 共好plm系統(tǒng) http://www.thetouzi.cn 32 32 簡單好用的進銷存軟件 – 外協(xié)通 http://www.thetouzi.cn/3253/ Fri, 05 Jun 2026 03:15:09 +0000 http://www.thetouzi.cn/?p=3253 一、進銷存系統(tǒng)定位與背景

外協(xié)通是一款專為小微制造業(yè)企業(yè)打造的進銷存出入庫管理系統(tǒng)。它聚焦從 BOM(物料清單)下發(fā)?到?零件入庫后領(lǐng)出?的核心業(yè)務(wù)環(huán)節(jié),解決傳統(tǒng)人工表格管理帶來的效率低、易出錯、數(shù)據(jù)割裂等問題。

企業(yè)普遍面臨外購?fù)鈪f(xié)件進度失控、交貨不及時、質(zhì)量下降等痛點,外協(xié)通以進銷存為基礎(chǔ)骨架,結(jié)合采購、供應(yīng)商協(xié)同、庫房管理,實現(xiàn)從項目創(chuàng)建 → BOM生成 → 采購申請 → 訂單審批 → 合同管理 → 供應(yīng)商執(zhí)行 → 收貨入庫 → 領(lǐng)料出庫的全流程閉環(huán)。

系統(tǒng)基于低代碼平臺(魔盒)開發(fā),具備高擴容性,可根據(jù)企業(yè)需求快速定制響應(yīng)

二、進銷存核心業(yè)務(wù)閉環(huán)

外協(xié)通的進銷存邏輯貫穿三個核心環(huán)節(jié):采購進貨 → 庫存管理 → 生產(chǎn)/項目領(lǐng)料出庫,并擴展至供應(yīng)商協(xié)同與財務(wù)/合同管理。

 

進銷存產(chǎn)品演示

 

1. 采購進貨管理(進)

    • 自動下單:根據(jù)審批通過的采購申請,按物料指定的供應(yīng)商、采購價格、最小起訂量、可用庫存數(shù)自動生成采購訂單。
    • 合同生成與管理:
    • 自動生成合同文本,支持打印蓋章后與供應(yīng)商簽訂正式合同。
    • 采購方可上傳已蓋章簽字的原始合同,實現(xiàn)原合同電子化管理。
    • 訂單跟催:系統(tǒng)支持自動按節(jié)點跟催供應(yīng)商執(zhí)行進度。
    • 退訂操作:下單后如遇需求變化,支持退訂物料。

2. 庫存管理(存)

    • 自動入庫:庫房接收供應(yīng)商送貨單后,系統(tǒng)自動將貨物入庫,并實時提醒項目組到貨。
    • 退庫操作:已領(lǐng)用物料如未使用完畢或存在質(zhì)量問題,支持退庫。
    • 庫存數(shù)據(jù)聯(lián)動:系統(tǒng)在采購下單時自動計算可用庫存數(shù),避免重復(fù)采購或庫存積壓。

3. 出庫與領(lǐng)料(銷——內(nèi)部消耗)

    • 項目組領(lǐng)料:物料到貨入庫后,項目組可根據(jù)需求發(fā)起領(lǐng)料出庫。
    • 補貨機制:支持因甲方驗收或?qū)嵤諗?shù)量不足時,供應(yīng)商補貨并再次入庫。

三、進銷存全流程業(yè)務(wù)模塊說明

(1)基礎(chǔ)數(shù)據(jù)維護(系統(tǒng)管理員)

    • 維護人員組織機構(gòu)、部門角色
    • 維護供應(yīng)商、客戶基礎(chǔ)信息
    • 維護物料與A/B供應(yīng)商的指定關(guān)系,并設(shè)置物料采購價格

(2)企業(yè)內(nèi)部采購業(yè)務(wù)

1 項目組 創(chuàng)建項目及項目內(nèi)包含的產(chǎn)品
2 技術(shù)部 設(shè)計產(chǎn)品(可部分完成),上傳產(chǎn)品BOM及圖紙
3 技術(shù)部 選擇項目,匯總產(chǎn)品BOM生成項目BOM,提交采購申請
4 領(lǐng)導(dǎo) 審批并通過采購申請
5 采購 自動生成采購訂單(基于物料指定供應(yīng)商、最小起訂量、可用庫存、價格)
6 領(lǐng)導(dǎo) 審批并通過采購訂單
7 采購 自動生成合同文本,打印蓋章后與供應(yīng)商簽訂
8 采購 上傳蓋章簽字的原始合同,進行合同管理
9 采購 系統(tǒng)自動跟催訂單執(zhí)行
10 采購 支持退訂物料操作
11 供應(yīng)商 根據(jù)訂單生成送貨單并發(fā)送
12 庫管 根據(jù)送貨單驗收及入庫,可以發(fā)起補貨申請
13 項目組 根據(jù)到貨情況,發(fā)起領(lǐng)料
14 庫管 接收領(lǐng)料單,并出庫

 

(3)供應(yīng)商業(yè)務(wù)協(xié)同

    • 供應(yīng)商登錄系統(tǒng)查看訂單對應(yīng)的物料明細及圖紙
    • 按訂單交付節(jié)點自動分解時間,回報合同執(zhí)行狀態(tài)
    • 發(fā)出送貨單
    • 支持因甲方驗收或?qū)嵤詹蛔愫蟮难a貨發(fā)貨

(4)企業(yè)庫房與項目組業(yè)務(wù)

庫房:

    • 接收送貨單,確認實收及補貨信息
    • 貨物自動入庫并通知項目組
    • 處理退庫操作

項目組:

    • 接收到貨信息后發(fā)起領(lǐng)料
    • 支持退料

四、進銷存系統(tǒng)價值與適用對象

核心價值

    • 消除數(shù)據(jù)孤島:采購、庫存、財務(wù)、項目數(shù)據(jù)一體化聯(lián)動。
    • 提升效率:從手工表格轉(zhuǎn)為自動下單、自動跟催、自動入庫。
    • 減少錯誤:系統(tǒng)計算可用庫存、最小起訂量,避免人為失誤。
    • 進度可控:供應(yīng)商回報節(jié)點、自動跟催,降低交貨延誤風(fēng)險。
    • 質(zhì)量保障:全流程追溯,圖紙與物料一一對應(yīng),減少因溝通不清導(dǎo)致的質(zhì)量問題。

適用企業(yè)

    • 小微制造業(yè)(機械組裝、電子組裝、非標設(shè)備生產(chǎn)等)
    • 當(dāng)前依賴Excel、紙質(zhì)單據(jù)管理BOM和外協(xié)采購的企業(yè)
    • 希望以低成本、輕量化方式過渡到ERP管理的團隊

 

 

]]>
項目型小微制造業(yè)企業(yè)輕量級ERP – 外協(xié)通 http://www.thetouzi.cn/3242/ Mon, 01 Jun 2026 08:19:54 +0000 http://www.thetouzi.cn/?p=3242 項目型小微制造業(yè)企業(yè):背景與核心訴求

小微制造業(yè)企業(yè)業(yè)務(wù)范圍從BOM下發(fā)到零件入庫后領(lǐng)出。由于業(yè)務(wù)流程依賴人工和表格,效率低下且易出錯;財務(wù)、庫存、銷售數(shù)據(jù)割裂,非常希望有輕量級ERP來解決從BOM下發(fā)到外購?fù)鈪f(xié)件入庫這個過程中缺少關(guān)注、進度失控、交貨不及時,導(dǎo)致項目時間延誤、產(chǎn)品質(zhì)量下降等普遍存在的問題。

外協(xié)通實施部署輕快,無需昂貴硬件和漫長實施周期;功能模塊輕靈,聚焦進銷存、產(chǎn)品管理、供應(yīng)商管理等核心需求,避免冗余功能;操作體驗輕簡,界面友好,學(xué)習(xí)成本低。其核心價值在于以可承受的成本,快速實現(xiàn)關(guān)鍵業(yè)務(wù)流程的數(shù)字化、標準化和協(xié)同化,為企業(yè)的穩(wěn)健成長奠定數(shù)據(jù)基礎(chǔ)。

項目型小微企業(yè)輕量級ERP – 外協(xié)通核心功能

核心功能匹配度:是否覆蓋企業(yè)最迫切的業(yè)務(wù)場景(項目周期短、邊設(shè)計-邊采購,要確保項目按質(zhì)量如期交付),如項目管理、產(chǎn)品管理、采購訂單管理、庫存管理、供應(yīng)商管理、訂單節(jié)點自動提醒催辦。功能并非越多越好,而是貴在精準。

易用性與學(xué)習(xí)成本:界面是否直觀,流程是否貼合實際業(yè)務(wù)操作。能否讓業(yè)務(wù)人員經(jīng)過短期培訓(xùn)甚至自行摸索即可上手,是降低實施風(fēng)險的關(guān)鍵。

擴展性與集成能力:企業(yè)處于成長中,系統(tǒng)應(yīng)能隨業(yè)務(wù)增長而平滑擴展,系統(tǒng)基于魔盒低代碼平臺開發(fā),可以快速響應(yīng)企業(yè)個性需求。

系統(tǒng)特點功能:圖紙支持批量上傳、合同文檔能根據(jù)訂單自動生成、供應(yīng)商能實時查看CAD圖紙、項目組能全局實時查看項目物料進展狀況(項目數(shù)、申請數(shù)、采購數(shù)、送貨數(shù)、庫存數(shù)、領(lǐng)料數(shù)、退庫數(shù)等)、供應(yīng)商外協(xié)生產(chǎn)及時跟進及反饋。

項目型小微企業(yè)輕量級ERP-工作流程

 

產(chǎn)品演示

外協(xié)通-項目型小微企業(yè)輕量級ERP-適合哪些企業(yè)?

    • 自己不生產(chǎn)零件,主要外協(xié)與外購,只做組裝
    • 項目周期短,定制化強
    • 經(jīng)常邊設(shè)計、邊采購、邊外協(xié)
    • 受困于進度失控、交期延誤、質(zhì)量出錯
    • 希望減少一名員工,但讓效率翻倍
]]>
開合外協(xié)通-采購跟單管理系統(tǒng) http://www.thetouzi.cn/3233/ Thu, 28 May 2026 04:19:19 +0000 http://www.thetouzi.cn/?p=3233 外協(xié)通-采購跟單管理系統(tǒng)主要目的

聚焦企業(yè)和供應(yīng)商的外部溝通上,范圍從BOM下發(fā)到零件入庫后領(lǐng)出。解決從BOM下發(fā)到外購?fù)鈪f(xié)件入庫這個過程中缺少關(guān)注、進度失控、交貨不及時,導(dǎo)致項目時間延誤、產(chǎn)品質(zhì)量下降等普遍存在的問題。外協(xié)通依據(jù)上述企業(yè)困境其目標:為企業(yè)減少一人,但效率翻倍。

點擊查看產(chǎn)品演示

適合哪些企業(yè)?

    • 自己不生產(chǎn)零件,主要外協(xié)與外購,只做組裝
    • 項目周期短,定制化強
    • 經(jīng)常邊設(shè)計、邊采購、邊外協(xié)
    • 受困于進度失控、交期延誤、質(zhì)量出錯
    • 希望減少一名員工,但讓效率翻倍

系統(tǒng)功能模塊

功能描述

一、基礎(chǔ)數(shù)據(jù)維護(sysadmin/數(shù)據(jù)管理員)

  1. 維護人員與組織機構(gòu)(部門、角色、權(quán)限)
  2. 維護供應(yīng)商信息、客戶信息
  3. 維護物料主數(shù)據(jù),并指定每個物料的 A、B 供應(yīng)商(可設(shè)置首選/備選)
  4. 維護物料采購價格

二、項目與設(shè)計階段(項目組 + 技術(shù)部門)

  1. 項目組創(chuàng)建項目,并定義項目內(nèi)包含的產(chǎn)品(產(chǎn)品清單)
  2. 技術(shù)部門 設(shè)計產(chǎn)品(允許部分完成),上傳產(chǎn)品 BOM 及產(chǎn)品圖紙
  3. 技術(shù)部門 選擇項目,將該項目下所有產(chǎn)品的 BOM 匯總生成?項目 BOM(支持邊設(shè)計邊匯總)
  4. 技術(shù)部門 提交采購申請(可一鍵提交,也可分批提交)

三、采購申請審批(領(lǐng)導(dǎo))

  1. 領(lǐng)導(dǎo)審批采購申請(支持移動端審批)
  2. 審批通過后,采購申請轉(zhuǎn)為可下單狀態(tài);不通過則退回技術(shù)部門修改

四、采購下單(采購員)

  1. 采購員 根據(jù)已批準的采購申請,系統(tǒng)自動按“物料-供應(yīng)商”關(guān)系生成采購訂單(草稿)
  2. 系統(tǒng)自動計算:
    • 可用庫存數(shù)量
    • 最小起訂量(MOQ)
    • 建議采購數(shù)量 = max(需求數(shù)量 – 可用庫存, MOQ)
  1. 采購員 確認采購數(shù)量及價格,生成正式采購訂單

? ?外協(xié)通增強:支持庫存占用與自動扣減,避免重復(fù)采購。

五、采購訂單審批(領(lǐng)導(dǎo))

  1. 領(lǐng)導(dǎo) 審批采購訂單
  2. 審批通過后,訂單生效;不通過退回采購修改

六、合同生成與簽署(采購員)

  1. 采購員?根據(jù)生效的采購訂單,一鍵生成合同文本(可配置模板)
  2. 打印蓋章后,與供應(yīng)商簽署正式合同
  3. 采購員?將蓋章簽字的原始合同掃描上傳至系統(tǒng),進行電子合同歸檔管理

七、訂單自動跟催(系統(tǒng)自動 + 采購員人工)

  1. 系統(tǒng)根據(jù)項目倒排計劃,自動為每個采購訂單分解關(guān)鍵節(jié)點:

30% / 60% / 90% /100% 生成時間節(jié)點

  1. 自動催單規(guī)則:
    • 節(jié)點到期前24小時,系統(tǒng)自動推送提醒給供應(yīng)商(微信/短信/郵件)
    • 節(jié)點超時后,系統(tǒng)自動升級預(yù)警,通知采購員及項目組
  1. 采購員 可在后臺一鍵“強制催單”或人工介入
  2. 支持退訂物料:若因設(shè)計變更或項目取消需要退訂,采購員發(fā)起退訂申請,通知供應(yīng)商停止生產(chǎn)/發(fā)貨

八、供應(yīng)商業(yè)務(wù)(供應(yīng)商端)

? ?外協(xié)通提供供應(yīng)商專屬門戶(無需安裝,手機/電腦可訪問)

  1. 供應(yīng)商 登錄后查看待處理訂單,查看每個訂單的物料明細及對應(yīng)圖紙(最新版本)
  2. 供應(yīng)商 按系統(tǒng)分解的節(jié)點時間,自主回報執(zhí)行狀態(tài):
  3. 供應(yīng)商 發(fā)貨時,在系統(tǒng)內(nèi)創(chuàng)建?送貨單(可打印或電子發(fā)貨)
  4. 若因甲方驗收不合格或?qū)嵤諗?shù)量不足,供應(yīng)商可發(fā)起補貨(關(guān)聯(lián)原訂單,生成補貨送貨單)

完善點:補貨流程與原始訂單關(guān)聯(lián),不影響項目BOM總量,且自動更新到貨進度。

九、企業(yè)庫房業(yè)務(wù)(庫管? + 項目組)

  1. 庫管?收到貨物后,根據(jù)供應(yīng)商的送貨單進行?收貨確認:
    • 掃碼比對物料編碼、數(shù)量、BOM版本、圖紙版本
    • 若與訂單一致,錄入實收數(shù)量;若不一致,可拒收或部分實收
  1. 庫管 確認收貨后,貨物自動增加庫存,并實時通知項目組(系統(tǒng)消息/微信)
  2. 項目組 收到到貨通知后,隨時發(fā)起?領(lǐng)料申請(可按項目/產(chǎn)品/工單)
  3. 庫管?根據(jù)領(lǐng)料單出庫,扣減庫存
  4. 項目組 若領(lǐng)料后有多余或不合格物料,可發(fā)起?退庫:
    • 退庫物料重新入庫(質(zhì)檢后可再利用)
    • 退庫操作同步更新項目成本

? ?外協(xié)通增強:領(lǐng)料與退庫自動更新項目物料消耗統(tǒng)計,為成本核算提供依據(jù)

查看演示

點擊查看:產(chǎn)品演示

總結(jié)

外協(xié)通:專為“只組裝不生產(chǎn)”的項目型企業(yè)打造 | 邊設(shè)計、邊采購、邊外協(xié),項目確保項目按時交付。

]]>
mobox3 格式化日期 http://www.thetouzi.cn/3144/ Thu, 16 Jan 2025 07:04:46 +0000 http://www.thetouzi.cn/?p=3144  

–[[ 格式日期 2024-03-25T16:00:00.000Z 格式化為 2024-03-25?]]

function DayFromat(dateTimeStr)

local formattedDateStr =""
if (dateTimeStr == "" or dateTimeStr==nil ) then
return formattedDateStr
end

dateTimeStr = string.gsub(dateTimeStr, "T", " ")
print(dateTimeStr)

-- 使用模式匹配提取日期和時間部分
local dateStr, timeStr = dateTimeStr:match("(%d+-%d+-%d+) (%d+:%d+:%d+)")

if (dateStr == nil) then
formattedDateStr ="Date Format Error"
return formattedDateStr
end

-- 提取日期部分的年、月、日
local year, month, day = dateStr:match("(%d+)-(%d+)-(%d+)")

-- 將提取的月、日格式化為兩位數(shù)的字符串
month = string.format("%02d", tonumber(month))
day = string.format("%02d", tonumber(day))

-- 組合格式化后的日期和原始時間部分
local formattedDateStr = string.format("%s-%s-%s", year, month, day)
local formattedDateTime = string.format("%s %s", formattedDateStr, timeStr)

return formattedDateStr
end

— 示例使用
local date = “2024-03-25T16:00:00.000Z”
local formattedDate = DayFromat(date)
print(formattedDate) — 輸出: 2024-03-25

]]>
lua for mobox3二次開發(fā)一些經(jīng)驗 http://www.thetouzi.cn/3119/ Sun, 06 Oct 2024 04:40:45 +0000 http://www.thetouzi.cn/?p=3119 1、建議任何調(diào)用函數(shù),都需要做執(zhí)行保護

nRet, strOBJInfo = mobox.objAttrToObjJson (‘PMS001’, strRetInfo )

沒有對執(zhí)行做保護(原先理解是 絕對不會出錯的,實際上是錯了),執(zhí)行后報錯

這個錯誤爆出,我們根本無法判斷問題所在。所以在任何情況下調(diào)用函數(shù)都需要做 出錯保護,加入

?if (nRet ~= 0) then

mobox.error(strLuaDEID, “PMS001數(shù)據(jù)庫沒有對應(yīng)字段 “)

return

end

2、在Debug 函數(shù)里面不能包含表類型的變量

Debug( strLuaDEID, debug.getinfo(1), ‘keynode創(chuàng)建’,tbNote[1])

里面的 tbNote[1]是一個表類型的變量,debug 不支持這個格式

nRet, strOBJInfo = mobox.objAttrToObjJson (‘JS003’, strRetInfo )

 

 

]]>
MBC客戶端擴展視圖功能配置過程 http://www.thetouzi.cn/3087/ Sat, 14 Sep 2024 06:56:25 +0000 http://www.thetouzi.cn/?p=3087 MBC是可以為企業(yè)即時通訊AM、企業(yè)文檔管理系統(tǒng)Mobox、項目管理系統(tǒng)Gungho多系統(tǒng)的前端表現(xiàn)端。在企業(yè)業(yè)務(wù)擴展的情況下甚至可以將mobox3定義的功能點擴展到 MBC客戶端

mobox3的功能點擴展的MBC客戶端的配置實現(xiàn)方式

1、人員管理里面需要定義 應(yīng)用程序

需要定義 3個應(yīng)用 (應(yīng)用名稱 不能變)

MOBOX3

OIOrgSAPI

OIMoboxSAPI

OIDataSAPI

其它2個服務(wù)類似

 

pack)20241113
增加? OIDataSAPI 的配置, MBC客戶端也需要更換。 解決 MBC與Mobx3網(wǎng)頁集成的時候,獲取當(dāng)前客戶端的 MAC地址

2、mobox3定義的功能領(lǐng)域可以發(fā)布到 MBC客戶端

3、MBC客戶端效果圖

 

4、MBC客戶端若連接mobox2 環(huán)境,擴展配置參考截圖

需要配置上述服務(wù)參數(shù)

 

]]>
mobox3自定義參數(shù)的定義及獲取 http://www.thetouzi.cn/3084/ Sun, 08 Sep 2024 06:42:31 +0000 http://www.thetouzi.cn/?p=3084 mobox3運行過程中系統(tǒng)可以定義很多運行參數(shù)。這種運行參數(shù)可以匹配企業(yè)個性化需求。在這個基礎(chǔ)上mobox3開放了一些非系統(tǒng)參數(shù)自定義配置方式。舉例

這個用戶部署了 Gungho系統(tǒng) ,而這個系統(tǒng)需要使用微信小程序。所以系統(tǒng)就會用到 gunghoAPI服務(wù)。(這個服務(wù)不是系統(tǒng)默認安裝的服務(wù),需要手工單獨部署過)

這個服務(wù)部署后,我們客戶端怎樣去調(diào)用這個服務(wù),我們就可以通過定義一個自定義參數(shù)來描述 gunghoAPI的的 IP及端口,方便客戶端調(diào)用

配置過程如下

這樣,我們就定義了一個編號為 9001 的參數(shù)。 這個參數(shù)可以通過 lua腳本來獲取

lua 獲取自定義編號的參數(shù)定義

nRet, strCanSu= mobox.getParameter(strLuaDEID, ‘9001’)

 

]]>
mobox3對excel導(dǎo)入(表頭帶分組) http://www.thetouzi.cn/3079/ Thu, 05 Sep 2024 07:26:12 +0000 http://www.thetouzi.cn/?p=3079 mobox3對excel數(shù)據(jù)導(dǎo)入是一個非常重要的及常見的工作。但用戶為了excel更直觀,有可能會對excel表頭設(shè)置分組。參考下圖

我們可以看到,excel第一行是分組行(項目基礎(chǔ)信息,P1,P2)

在P1 下面有 計劃日期;在P2下面也有 計劃日期 ,2個字段名稱是一樣的。我們做讀取數(shù)據(jù)的時候必須要依賴分組 P1、P2的定義才能區(qū)分

我們在做excel導(dǎo)入的時候,針對這類表格。我們需要如下處理

1、導(dǎo)入按鈕設(shè)置

 

2、在導(dǎo)入腳本的地方主要通過分組屬性來區(qū)分字段

?if (strAttr == ‘計劃日期’) then
?strValue = ProcessDayTimeStr(strValue) –日期格式轉(zhuǎn)換
?if (ext_col_info[1]==”P0″) then? ? ? ? ? — 判斷是哪個分組的
strP0 = strValue
strAddAttr = strAddAttr .. ‘{“attr”:”D_PX”,”value”:”‘ .. strP0 .. ‘”},’
elseif (ext_col_info[1] == ‘P1’) then
strP1 = strValue
strAddAttr = strAddAttr .. ‘{“attr”:”D_P1″,”value”:”‘ .. strP1 .. ‘”},’
end
end
]]>
mobox3 lua 開發(fā)過程中數(shù)據(jù)獲取及Json格式處理 http://www.thetouzi.cn/3069/ Tue, 03 Sep 2024 05:53:26 +0000 http://www.thetouzi.cn/?p=3069 lua 開發(fā)過程中,我們需要對當(dāng)前窗體的數(shù)據(jù)進行獲取,之后進行二次開發(fā)演變?yōu)槲覀冃枰臄?shù)據(jù),并重新給窗體的各字段賦值。

1、獲取當(dāng)前窗體上所需字段的數(shù)值

nRet, strRetInfo = mobox.getCurEditDataObjAttr(strLuaDEID, “G_PRJ_ID”, “S_PRJ_CODE”, “S_PRJ_NAME”, “S_PM_NAME”, “S_PD_NAME”)

2、得到Json字符串(strRetInfo)內(nèi)容描述(暫且我們稱之為 mobox3 格式)

[

{

“attr”: “G_PRJ_ID”,

“value”: “”

},

{

“attr”: “S_PRJ_CODE”,

“value”: “PM-0002”

},

{

“attr”: “S_PRJ_NAME”,

“value”: “pcy 0999 hard”

},

{

“attr”: “S_PM_NAME”,

“value”: “金振興”

},

{

“attr”: “S_PD_NAME”,

“value”: “”

}
]

3、將得到的Json字符串(strRetInfo)轉(zhuǎn)變?yōu)镴son標準的表格式(strOBJInfo )

nRet, strOBJInfo = mobox.objAttrToObjJson (‘JS001’, strRetInfo )

注意:strOBJInfo 得到其實還是一個Json字符串,但其是一個標準的Json表格式表達

具體 objAttrToObjJson 函數(shù)怎么用查看手冊

4、得到Json表字符串(strOBJInfo )(是一種 json對表的標準格式)

{

“cls”: “JS001”,

“ver”: 1,

“G_PRJ_ID”: “”,

“S_PRJ_CODE”: “PM-0002”,

“S_PRJ_NAME”: “pcy 0999 hard”,

“S_PM_NAME”: “金振興”
}

注意:這個Json格式是標準表格式字符串表達。

5、我們需要將這個字符串轉(zhuǎn)為表(tbOBJ)

local tbOBJ = json.decode (strOBJInfo)

注,只有變成表后,我們可以這樣來理解這個表:

字段名 cls ver G_PRJ_ID S_PRJ_CODE S_PRJ_NAME S_PM_NAME
數(shù)值 JS001 1 PM-0002 pcy 0999 hard 金振興

6、數(shù)據(jù)取值與賦值

取值方法:

local strPMName

strPMName = tbOBJ.S_PRJ_NAME

賦值方法:

tbOBJ.S_PRJ_NAME = ‘潘元元’

 

完整代碼

local strRetInfo , strOBJInfo

local tbOBJ ={}

 

— 得到當(dāng)前窗體上指定字段的json字符串
nRet, strRetInfo = mobox.getCurEditDataObjAttr(strLuaDEID, “G_PRJ_ID”, “S_PRJ_CODE”, “S_PRJ_NAME”, “S_PM_NAME”, “S_PD_NAME”)

— 將json字符串(mobox3)格式轉(zhuǎn)為 json標準表格式
nRet, strOBJInfo = mobox.objAttrToObjJson (‘JS001’, strRetInfo )

–將json字符串轉(zhuǎn)變?yōu)楸?br /> tbOBJ = json.decode (strOBJInfo)

 

— 獲取表字段內(nèi)容及設(shè)置表字段值
local strPMName
strPMName = tbOBJ.S_PM_NAME
tbOBJ.S_PM_NAME = ‘潘元元’

 

若需要將數(shù)據(jù)轉(zhuǎn)會mobox3數(shù)據(jù)格式

–將表轉(zhuǎn)變?yōu)閖son字符串(標準格式)
strOBJInfo = json.encode (tbOBJ)

— 將json標準表格式格式轉(zhuǎn)為 json字符串(mobox3)
nRet, strRetInfo = mobox.objJsonToObjAttr (‘JS001’, strOBJInfo )

 

 

 

 

]]>
lua 對回車(%3Cbr%3E)處理方法 http://www.thetouzi.cn/2537/ Thu, 11 Apr 2024 05:02:28 +0000 http://www.thetouzi.cn/?p=2537 我們在Gird列出數(shù)據(jù)的時候,若數(shù)據(jù)內(nèi)帶%3Cbr%3E,其實是回車的意思,若grid讀出數(shù)據(jù)不做任何處理,那么就會影響系統(tǒng)表達

為了解決這個問題,我們可以編輯一個lua腳本,將這個數(shù)據(jù)做處理后再顯示(在顯示前事件里面定義這個lua腳本)

腳本列子

–[[
? ? 功能說明:
? ? ? ? 1) 顯示前做一些字段的處理
? ? ? ? 2)前端導(dǎo)入,新增有換行符號 %%3Cbr%%3E  ,替換成 <br> 前端html支持的換行內(nèi)容
? ? ? ? 3)內(nèi)容中有&,替換成 & 前端解析 &不支持,最好在輸入時進行替換
–]]
json = require(“json”)
mobox = require(“OILua_JavelinExt”)
require(“oi_basestrfunc”)
function BeforeGridShow(strLuaDEID)
? ? local nRet, strRetInfo
? ? local arobjs, attrs, success
? ? — 獲取輸入的DataJson數(shù)據(jù)包
? ? nRet, strRetInfo = mobox.getCurEditDataPacket(strLuaDEID)
? ? if (nRet ~= 0) then
? ? ? ? mobox.error(strLuaDEID, “無法獲取數(shù)據(jù)包!”)
? ? ? ? return
? ? end
? ? if (strRetInfo == ” or strRetInfo == nil) then
? ? ? ? return
? ? end
? ? — 解析數(shù)據(jù)包,數(shù)據(jù)包格式
? ? — [{“id”:””,”attrs”:[{“attr”:””,”value”:””},..]},..]
? ? local n, nCount
? ? success, arobjs = pcall(json.decode, strRetInfo)
? ? if (success == false) then
? ? ? ? mobox.error(strLuaDEID, “非法的JSON格式!”)
? ? ? ? return
? ? end
? ? nCount = #arobjs
? ? if (nCount == 0) then
? ? ? ? return
? ? end
? ? local obj, attrs
? ? local nattr_count
? ? local strRow, strAttr, strItem
? ? local strDataJson
? ? local id, strValue
? ? local strAttrs
? ? strDataJson = ‘[‘
? ? local seg = {}
? ? local nSegCount = 0
? ? for n = 1, nCount do
? ? ? ? obj = arobjs[n]
? ? ? ? attrs = obj.attrs
? ? ? ? nattr_count = #attrs
? ? ? ? id = obj.id
? ? ? ? strAttrs=”
? ? ? ? — 開始過濾顯示數(shù)據(jù)對象屬性
? ? ? ? for nIndex = 1, nattr_count do
? ? ? ? ? ? strAttr = attrs[nIndex].attr
? ? ? ? ? ? strValue = attrs[nIndex].value
? ? ? ? ? ? strValue = strValue:gsub(“%%3Cbr%%3E”, “<br>”)
? ? ? ? ? ? strValue = strValue:gsub(“&”, “&”)
? ? ? ? ? ? strItem = ‘{“attr”:”‘ .. strAttr .. ‘”,”value”:”‘ .. strValue .. ‘”},’
? ? ? ? ? ? strAttrs = strAttrs .. strItem
? ? ? ? end
? ? ? ? — 取消最后一個,號
? ? ? ? strAttrs = trim_laster_char(strAttrs)
? ? ? ? strRow = ‘{“id”:”‘ .. id .. ‘”,”attrs”:[‘ .. strAttrs .. ‘]},’
? ? ? ? strDataJson = strDataJson .. strRow
? ? end
? ? — 取消最后一個,號
? ? strDataJson = trim_laster_char(strDataJson)
? ? strDataJson = strDataJson .. ‘]’
? ? local strAction = ‘[{“action_type”:”reset_data_attr”,”value”:’ .. strDataJson .. ‘}]’
? ? mobox.setAction(strLuaDEID, strAction)
end
這個列子也可以用于別的一些非法字符串的處理
]]>