级做a爰片久久毛片潮喷网站,永久免费看黄网站入口,久久精品视频98国产 http://www.2715333.com 免費合同管理系統(tǒng),好用的合同管理軟件 Fri, 09 Dec 2022 01:31:15 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.7.1 http://www.2715333.com/wp-content/uploads/2021/05/cropped-mobox512-32x32.png 腳本 – 共好合同 http://www.2715333.com 32 32 合同評審后合同打印模版設(shè)置 http://www.2715333.com/1502/ Sat, 03 Sep 2022 03:08:59 +0000 http://www.2715333.com/?p=1502 合同評審后合同打印模版設(shè)置

 

共好合同系統(tǒng)支持在合同做好并通過評審后,可以有合同相關(guān)人員自動生成合同的電子文檔。目前這個自動生成的文檔格式是 docx!

實現(xiàn)過程

  • 我們利用企業(yè)現(xiàn)有的合同模版,對里面的:甲方、乙方、采購清單、單價、總價等內(nèi)容先變量化。我們稱之為:格式化合同模版
  • 將定義到格式化合同模版,上傳到共好合同系統(tǒng)的支撐文檔下面的某一個文檔柜里面。舉例如:合同模版
  • 有開合信息公司的技術(shù)支持,幫助定義合同打印功能

1)3000功能點

2)增加打印功能

3)配置打印時用的支撐文檔柜

  • 合同評審?fù)瓿珊螅x擇合同,進(jìn)行合同打印

Word文檔:格式化合同模版 截圖參考

需要定義word模版,必須存儲為 docx

1、變量定義方式

主表變量:{S_KA_NAME}???? 對應(yīng)的是:客戶名稱

這里的 {S_KA_NAME} 變量輸入(最好的方法)

1)在 notepad 中,將變量輸入后,復(fù)制;

2)到word 里面進(jìn)行 粘貼

若不采用這個方法,直接在word里面輸入這個變量,有的時候word對這個變量會做特殊處理。從而在打印的時候造成,變量無法賦值

 

2、合同中的子表:

其中,購買產(chǎn)品是一個采購清單,屬于合同的關(guān)聯(lián)表,其變量定義解釋

舉例:產(chǎn)品名稱 字段 ,變量:

{TN_0012*S_PO_CODE*S_GDS_NAME*2}

關(guān)聯(lián)表變量解釋:

其中:所有這些表名、字段名等都需要系統(tǒng)管理 在后臺進(jìn)行查看

3、打印效果圖

Word模版可能存在的問題:

帶來的問題:

設(shè)置正確后:

打印的word 顯示會正常:

]]>
為合同管理系統(tǒng)創(chuàng)建數(shù)據(jù)庫 http://www.2715333.com/1444/ Mon, 20 Jun 2022 09:00:25 +0000 http://www.2715333.com/?p=1444 為合同管理系統(tǒng)導(dǎo)入數(shù)據(jù)庫

在SQLserver? 服務(wù)安裝成功后,運行 數(shù)據(jù)庫生成程序

點擊 Htdbcreate.exe? 右鍵 “以管理員身份運行”

運行后,數(shù)據(jù)庫文件會存放到 c:\sqldata 目錄下 (這個目錄現(xiàn)在不能修改),若需要將數(shù)據(jù)庫文件放到別的目錄,這個需要咨詢廠家技術(shù)人員

這樣,合同系統(tǒng)的數(shù)據(jù)庫就已經(jīng)安裝了

我們進(jìn)入SQL管理器能看到:

]]>
SQLExpress 2008R2 安裝說明 http://www.2715333.com/1427/ Mon, 20 Jun 2022 08:46:52 +0000 http://www.2715333.com/?p=1427 SQLserver 安裝 (列子:安裝的是SQLExpress)

事先現(xiàn)在Sqlexpress 服務(wù)安裝程序及管理器安裝程序,接下來進(jìn)行安裝

注意:采用 默認(rèn)實例 更好些。

注意:身份認(rèn)證模式必須選擇 混合模式; 為sa 的賬號輸入密碼,后面安裝的軟件的時候會用到

SQLserver Express的服務(wù)程序就安裝后了,一般還需要安裝一個SQLserver的管理器(不按照的話不影響系統(tǒng)部署,但無法對數(shù)據(jù)庫進(jìn)行維護(hù))。管理器主要是可以對數(shù)據(jù)庫進(jìn)行備份還原,修改字段等數(shù)據(jù)庫操作,是數(shù)據(jù)庫管理員的重要工具。

SQLExpress 2008 管理器,安裝前提需要本機(jī)安裝了 .Net 3.5; 這個需要自己事先安裝后,否則這個管理器將不能安裝。(開始安裝 SQL管理器)

 

 

 

]]>
共好合同管理系統(tǒng)免費版授權(quán)獲取過程 http://www.2715333.com/1424/ Mon, 20 Jun 2022 02:47:28 +0000 http://www.2715333.com/?p=1424 共好合同管理系統(tǒng)免費版,包含(AM8企業(yè)即時通80用戶、Mobox企業(yè)云盤5用戶、共好合同管理系統(tǒng)5用戶),

授權(quán)獲取過程

  • 安裝共好合同管理系統(tǒng) (參考安裝手冊)

機(jī)器碼獲取:

  • 公司名稱+聯(lián)系人+電話+機(jī)器碼 提交給 (郵箱:1026001618@qq.com; 微信:13805711962

 

  • 開合信息 會將正式合同系統(tǒng)免費版發(fā)送給你。

 

  • 你收到授權(quán)文件后,進(jìn)行軟件注冊

  • 注冊后,重啟所有服務(wù)

 

重啟涉及好多個服務(wù),需要等待一段時間

]]>
在共好合同系統(tǒng)的Grid配置行列顯示背景色 http://www.2715333.com/1303/ Sun, 20 Feb 2022 14:06:38 +0000 http://www.2715333.com/?p=1303 關(guān)于如何在Grid中配置行列顯示背景色的問題的說明

1 背景

在實施過程中經(jīng)常會遇到客戶提這樣的要求:要求顯示業(yè)務(wù)數(shù)據(jù)時能根據(jù)不同的狀態(tài)顯示不同顏色,有的要求一行全部用紅色顯示,也有要求某些列的數(shù)據(jù)顯示紅色,當(dāng)然什么時候顯示紅色是有一定要求的。

如下圖:

例1

上面這個例子中要求對捷途產(chǎn)品線的小計數(shù)據(jù)行背景高亮顯示

例2:

上面這個例子要求月計劃已完成的用綠色背景,只顯示狀態(tài)這個列的背景,進(jìn)行中的灰色,延期的紅色背景
如上圖中的 執(zhí)行人,監(jiān)督人用腰子型按鈕顯示 ,任務(wù)標(biāo)識這里本來是一個GUID碼,如果有GUID就顯示一個 + 這樣的圖標(biāo)(用什么樣的圖標(biāo)是實施人員自己定)這些都可以根據(jù)客戶的需求來定義。

2 如何實現(xiàn)

2.1 限制

首先目前mobox、gungho支持Grid顯示樣式自定義的功能點是有下面這些

3000

3019

3025

2.2 配置顯示前事件

Grid行背景色配置是在 3000 功能點顯示前事件里完成的。系統(tǒng)發(fā)現(xiàn)我們在3000功能點配置了 顯示前事件,如下圖

在這里要配置 顯示前執(zhí)行什么腳本。

2.3 顯示前事件腳本的處理

腳本的處理分下面3個步驟

2.3.1 獲取當(dāng)前顯示頁中的數(shù)據(jù)

其中獲取的 strRetInfo 就是前端給腳本的數(shù)據(jù),格式j(luò)son,如下:

[

{“id”:”XXX”,”attrs”:[{“attr”:””,”value”:””},….]},

..

]

其中id 是這一行顯示的數(shù)據(jù)對象標(biāo)識

Attrs是Grid中沒列的數(shù)據(jù)和值

2.3.2 輪詢獲取行數(shù)據(jù)

根據(jù)獲取的屬性值來判斷是否要改變行列的顯示樣式

2.3.3 返回給前端用重新組織后的數(shù)據(jù)刷新頁面

注意:

Action = reset_data_attr

2.3.4 行列控制

在我們返回的Json格式中每行,列的屬性可以改變前端Grid的顯示樣式

前面我們介紹了,前端過來的Grid Row的數(shù)據(jù)是這樣的

{“id”:”xxxx”,”attrs”:[ {“attr”:”S_CMN”,”value”:”M”},..]}

如果需要S_CMN列顯示背不同的景色,那么就要把數(shù)據(jù)設(shè)置為:

{“id”:”xxxx”,”attrs”:[ {“attr”:”S_CMN”,”value”:”M”,”bk_color”:”#28FF28″,”text_color”:”#000000″},..]}

注意紅色文字部分就是控制這一行,這一列的背景、前景色

如果是要整行都變顏色:

{“id”:”xxxx”,”row_bk_color”:”#F9F900″, “row_text_color”:”#272727″, “attrs”:[ {“attr”:”S_CMN”,”value”:”M”},..]}

3 備注

常用十六進(jìn)制顏色對照表代碼查詢

https://www.cnblogs.com/summary-2017/p/7504126.html

 

]]>
合同談判成功的方法及策略 http://www.2715333.com/1215/ Tue, 16 Nov 2021 08:23:25 +0000 http://www.2715333.com/?p=1215 合同談判成功的方法及策略

1、裝一點小氣

讓步要緩,而且還要顯得很勉強(qiáng),爭取用最小的讓步去換取對自己最有利的協(xié)議。

2、運用競爭的力量

即使賣主認(rèn)為他提供的是獨門生意,也不妨告訴對方,自己還有買新產(chǎn)品或買二手貨的路子。要顯示自己還可以在買或不買、要或不要之間做選擇,以造成一種競爭的態(tài)勢。

3、可以帶一點狂

審時度勢,必要時可以提高嗓門,逼視對方,甚至跺腳,表現(xiàn)一點嚇唬的情緒,以顯示自己的決心,使對手氣餒。

4、要有耐性、韌性。

不要期望對方立即接受自己的新構(gòu)思。堅持、忍耐,對方或許最終會接納意見。

5、給自己留一定的余地

提出比自己的預(yù)期目標(biāo)更高一些的要求,這樣就等于給自己妥協(xié)時留下了一些余地。目標(biāo)定得高,收獲便可能更多。

6、不要以“大權(quán)在握”的口吻去談判

而要經(jīng)常說:“如果我能作主的話﹍”。要告訴對方,自己還不能做最后的決定,或說自己的最后決定權(quán)有限。這樣,就更有回旋的余地,使自己有推后思考的時間和摸清對方底牌的時間。

7、不要輕易亮出底牌

要使對手對自己的動機(jī)、權(quán)限以及最后期限知道越少越好,而自己在這方面應(yīng)對對方的情況知道得越多越好。

8、不要急于成交

除非自己的準(zhǔn)備工作十分充分,而對方卻毫無準(zhǔn)備,或者自己握有百分之百的主動權(quán),否則,不必也不能不加思考就亮出自己的底牌。要有足夠的時間去考慮談判的各種細(xì)節(jié)。

9、可以伺機(jī)喊“暫?!?/p>

如果談判陷入僵局,不妨喊“暫?!?,告訴對方:自己要找合伙人、老板或?qū)<掖枭?。這就既可以使對方有時間重新考慮其立場,又可以使自己有機(jī)會研究對策,或者以一點小的讓步重回談判桌旁。

10、小利也爭

小利也是利,有時一個小利就是幾千、幾萬元,因而也值得一爭。

11、改變方法,出其不意

有時要突然改變方法、論點或步驟,使對方措手不及、陷入混亂而做出讓步。如改變說話的聲調(diào)、語氣、表情至生氣等,都可能使對方改變立場和態(tài)度。

12、間接求助戰(zhàn)略

可以說:“我真的喜歡你的產(chǎn)品,也真的有此需要,可惜我沒有能力負(fù)擔(dān)?!边@樣可以滿足對方自負(fù)的心理,因而讓步。

13、不要逼得對方走投無路,要給人留點余地,顧及對方的面子和利益

成功的談判是使雙方都有好處、雙方都愉快地離開談判桌的談判。談判的原則是:沒有哪一方是失敗者,而且每一方都是勝利者。這就是所謂的“雙贏”。

14、談判須有完整的記錄,記錄要正確無誤。談完后,還須雙方認(rèn)同簽字

]]>
財務(wù)專用:阿拉伯?dāng)?shù)字轉(zhuǎn)中文大寫金額(支持小數(shù)) http://www.2715333.com/1200/ Fri, 15 Oct 2021 14:44:08 +0000 http://www.2715333.com/?p=1200 財務(wù)專用:阿拉伯?dāng)?shù)字轉(zhuǎn)中文大寫金額(支持小數(shù))
— 金額小寫數(shù)字 整數(shù)元 轉(zhuǎn)換 中文大寫
function? yuan_zh(szNum)
? ? —阿拉伯?dāng)?shù)字轉(zhuǎn)中文大寫
? ? local szChMoney = “”
? ? local iLen = 0
? ? local iNum = 0
? ? local iAddZero = 0
? ? local hzUnit = {“”, “拾”, “佰”, “仟”, “萬”, “拾”, “佰”, “仟”, “億”,”拾”, “佰”, “仟”, “萬”, “十”, “百”, “千”}
? ? local hzNum = {“零”, “壹”, “貳”, “叁”, “肆”, “伍”, “陸”, “柒”, “捌”, “玖”}
? ? if nil == tonumber(szNum) then
? ? ? ? return tostring(szNum)
? ? end
? ? iLen =string.len(szNum)
? ? if iLen > 10 or iLen == 0 or tonumber(szNum) < 0 then
? ? ? ? return tostring(szNum)
? ? end
? ? for i = 1, iLen? do
? ? ? ? iNum = string.sub(szNum,i,i)
? ? ? ? if iNum == 0 and i ~= iLen then
? ? ? ? ? ? iAddZero = iAddZero + 1
? ? ? ? else
? ? ? ? ? ? if iAddZero > 0 then
? ? ? ? ? ? szChMoney = szChMoney..hzNum[1]
? ? ? ? end
? ? ? ? ? ? szChMoney = szChMoney..hzNum[iNum + 1] –//轉(zhuǎn)換為相應(yīng)的數(shù)字
? ? ? ? ? ? iAddZero = 0
? ? ? ? end
? ? ? ? if (iAddZero < 4) and (0 == (iLen – i) % 4 or 0 ~= tonumber(iNum)) then
? ? ? ? ? ? szChMoney = szChMoney..hzUnit[iLen-i+1]
? ? ? ? end
? ? end
? ? local function removeZero(num)
? ? ? ? –去掉末尾多余的 零
? ? ? ? num = tostring(num)
? ? ? ? local szLen = string.len(num)
? ? ? ? local zero_num = 0
? ? ? ? for i = szLen, 1, -3 do
? ? ? ? ? ? szNum = string.sub(num,i-2,i)
? ? ? ? ? ? if szNum == hzNum[1] then
? ? ? ? ? ? ? ? zero_num = zero_num + 1
? ? ? ? ? ? else
? ? ? ? ? ? ? ? break
? ? ? ? ? ? end
? ? ? ? end
? ? ? ? num = string.sub(num, 1,szLen – zero_num * 3)
? ? ? ? szNum = string.sub(num, 1,6)
? ? ? ? — 開頭的 “一十” 轉(zhuǎn)成 “十” , 貼近人的讀法
? ? ? ? if szNum == hzNum[2]..hzUnit[2] then
? ? ? ? ? ? num = string.sub(num, 4, string.len(num))
? ? ? ? end
? ? ? ? return num
? ? end
? ? return removeZero(szChMoney)..”圓”
end
— 金額小數(shù)點 角、分轉(zhuǎn)換 中文大寫
function jiaofen_zh(szNum)
? ? local szChMoney = “”
? ? local iLen = 0
? ? local iNum = 0
? ? local iAddZero = 0
? ? local hzUnit = {“分”, “角”}
? ? local hzNum = {“零”, “壹”, “貳”, “叁”, “肆”, “伍”, “陸”, “柒”, “捌”, “玖”}
? ? if nil == tonumber(szNum) then
? ? ? ? return ‘請輸入金額’
? ? end
? ? iLen =string.len(szNum)
? ? if iLen > 15 or iLen == 0 or tonumber(szNum) < 0 then
? ? ? ? return “請輸入金額”
? ? end
? ? local i = 0
? ? for i = 1, iLen do
? ? ? ? iNum = string.sub(szNum,i,i)
? ? ? ? if iNum == 0 then
? ? ? ? ? ? iAddZero = iAddZero + 1
? ? ? ? else
? ? ? ? ? ? if iAddZero > 0 then
? ? ? ? ? ? ? ? szChMoney = szChMoney..hzNum[1]
? ? ? ? ? ? end
? ? ? ? ? ? szChMoney = szChMoney..hzNum[iNum + 1] –//轉(zhuǎn)換為相應(yīng)的數(shù)字
? ? ? ? ? ? iAddZero = 0
? ? ? ? end
? ? ? ? if iNum ~=0 or iLen-i==3 or iLen-i==11 or ((iLen-i+1)%8==0 and iAddZero<4) then
? ? ? ? ? ? szChMoney = szChMoney..hzUnit[iLen-i+1]
? ? ? ? end
? ? end
? ? return szChMoney
end
— 對字符串進(jìn)行 拆分 ,目的是 將 1309.21 拆分為 1309 及 21 兩個字符串
function split(str,delimiter)
? ? local dLen = string.len(delimiter)
? ? local newDeli = ”
? ? for i=1,dLen,1 do
? ? ? ? newDeli = newDeli .. “[“..string.sub(delimiter,i,i)..”]”
? ? end
? ? local locaStart,locaEnd = string.find(str,newDeli)
? ? local arr = {}
? ? local n = 1
? ? while locaStart ~= nil
? ? do
? ? ? ? if locaStart>0 then
? ? ? ? ? ? arr[n] = string.sub(str,1,locaStart-1)
? ? ? ? ? ? n = n + 1
? ? ? ? end
? ? ? ? str = string.sub(str,locaEnd+1,string.len(str))
? ? ? ? locaStart,locaEnd = string.find(str,newDeli)
? ? end
? ? if str ~= nil then
? ? ? ? arr[n] = str
? ? end
? ? return arr
end
— 需要判斷,金額是否包含小數(shù)點,若 包含小數(shù)點,需要將小數(shù)點前 設(shè)置為:strYuan ; 小數(shù)點后 設(shè)置為:strJiaoFen
local strYuan,strJiaoFen,strDaxie,strOldjine
strOldjine = “104567096”? — 將來這個數(shù)字賦值的時候,小數(shù)點要保留2位,最好小數(shù)第二是0要處理一下
t = split(strOldjine, “.”)? ? ?— 將 124567.09 拆分為 124567 及 09 兩個字符串
— 給 金額 整數(shù)元 賦值; 給 金額 角分 賦值
local strY = t[1]
local strJ = t[2]
–小數(shù)點前整數(shù) 元(需獨立獲?。?/div>
strYuan = yuan_zh(strY)
— 金額 的小數(shù)點前的 大寫
strDaxie = strYuan
–strJ小數(shù)點后 角分 (需獨立獲取)
if strJ ~= nil then
? ? strJiaoFen = jiaofen_zh(strJ)
? ? — 完整大寫金額 拼接后完成
? ? strDaxie = strDaxie..strJiaoFen
end
— for i = 1 ,200 do
? ?print(strDaxie)
— end
]]> 數(shù)據(jù)對象的編號生成 http://www.2715333.com/1187/ Tue, 12 Oct 2021 06:34:04 +0000 http://www.2715333.com/?p=1187 數(shù)據(jù)對象的編號生成

1.在日常工作中,編號用處有很多地方,以下是一個編號的生成代碼:
標(biāo)號規(guī)則:1、對象類型 2、按照年份排序 3、刪除不影響編號順序

–[[

Code: SD-1701

Author:hanxun Create Date: 2021-10-5

Version:V1.0

功能:

1) 生成一個用戶反饋編號

–]]

json = require (“json”)

mobox = require (“OILua_JavelinExt”)

function BeforeDataObjCreate ( strLuaDEID )

local nRet,strRetInfo

local setAttr

— 需要自動創(chuàng)建 類似 FB-202110050001 (就是 FB-年月日4位順序號)

local strHead = os.date(“%Y%m%d”)

— 注意 這個變量strHead ,是編碼的前綴,其長度不能超過8位

nRet,strRetInfo = mobox.getSerialNumber( “反饋編號”,strHead , 4 )

if ( nRet ~=0 or strRetInfo == ” ) then

mobox.error( strLuaDEID, “反饋編號序號獲得失敗! “..strRetInfo )

return

end

strRetInfo=’FB-‘..strRetInfo

setAttr = ‘[{“attr”:”S_REQUES_CODE”,”value”:”‘..strRetInfo..'”}]’

— 針對上面賦值語句 解釋:A+B+C (其中B 是變量 strRetInfo)

mobox.setCurEditDataObjAttr( strLuaDEID,setAttr )

if ( nRet ~=0 or strRetInfo == ” ) then

mobox.error( strLuaDEID, “S_REQUES_CODE設(shè)置賦值錯誤 “..strRetInfo )

return

end

end

]]>
合同的采購清單修改后應(yīng)該自動更新合同總價 http://www.2715333.com/1175/ Sat, 09 Oct 2021 06:40:58 +0000 http://www.2715333.com/?p=1175 合同的采購清單修改后應(yīng)該自動更新合同總價

— 以下是代碼部分

–[[
? ? Code: SD-0404
? ? Author:han? ? ?Create Date:? 2021-8-11
? ? Version:V1.0
? ? 功能:
? ? ? ? 更新訂單中的價格 F_TOTAL
–]]
json? = require (“json”)
mobox = require (“OILua_JavelinExt”)
function AfterDataObjModify ( strLuaDEID )
? ? local nRet,strRetInfo, strPOCode
? ? — 獲取 訂單編號
? ? nRet, strRetInfo = mobox.getCurEditDataObjAttr( strLuaDEID, “S_PO_CODE”? )
? ? if ( nRet ~= 0 or strRetInfo == ” ) then
? ? ? ? mobox.error( strLuaDEID, “獲取價格信息失敗!” )
? ? ? ? return
? ? end
? ? local retAttrs = json.decode( strRetInfo )
? ? strPOCode = retAttrs[1].value
? ? — 獲取這個訂單下面的 總價
? ? local strCondition = “S_PO_CODE = ‘”..strPOCode..”‘”
? ? nRet, strRetInfo = mobox.getDataObjAttrSum( strLuaDEID, “采購清單”, strCondition, “F_SUBTOTAL” )
? ? if ( nRet ~= 0? ) then
? ? ? ? mobox.error( strLuaDEID, strRetInfo)
? ? ? ? return
? ? end
? ? local fSumTotal = 0
? ? local retValue = json.decode( strRetInfo )
? ? if ( retValue[1] ~= ”? ) then
? ? ? ? fSumTotal = tonumber( retValue[1] )
? ? end
? ? strCondition = “S_PO_CODE = ‘”..strPOCode..”‘”
? ? strSetAttr = “F_TOTAL = “..fSumTotal
? ? nRet, strRetInfo = mobox.updateDataAttrByCondition( strLuaDEID, “訂單”, strCondition, strSetAttr )
? ? if ( nRet ~= 0 ) then
? ? ? ? mobox.error( strLuaDEID, strRetInfo )
? ? ? ? return
? ? end
end
]]>
將個人網(wǎng)盤文件轉(zhuǎn)移(用戶A轉(zhuǎn)至用戶B指定目錄下) http://www.2715333.com/1030/ Sat, 26 Jun 2021 09:19:16 +0000 http://www.2715333.com/?p=1030 — 個人網(wǎng)盤用戶A 所有網(wǎng)盤數(shù)據(jù)都轉(zhuǎn)至 用戶B 根目錄下的一個目錄中(此目錄自動創(chuàng)建,名稱:轉(zhuǎn)自【用戶A】_YYYYmmdd)
BEGIN
? Declare @strUserLogin1 as nvarchar(32)
? Declare @strUserLogin2 as nvarchar(32)
? Declare @strUserName1 as nvarchar(64)
? Declare @strUserName2 as nvarchar(64)
? Declare @nUserIndex1 as int
? Declare @nUserIndex2 as int
? Declare @strTabIndex1 as nchar(1)
? Declare @strTabIndex2 as nchar(1)
? Declare @strCatalogID as nvarchar(36)
? Declare @strCatalogName as nvarchar(64)
? Declare @strSQL as nvarchar(1024)
? Declare @strOwner as nvarchar(32)
? Declare @strOwnerName as nvarchar(64)
? Declare @nNDIndex as int
? Declare @strDate as nvarchar(8)
? — 指定用戶A 與 用戶B 的登錄名,最好小寫
? Set @strUserLogin1 = N’用戶A’
? Set @strUserLogin2 = N’用戶B’
? Set @nUserIndex1 = -1
? Set @nUserIndex2 = -1
? — 申請游標(biāo),得到用戶個人網(wǎng)盤信息
? Declare userindex_cursor cursor for (SELECT Lower( CN_S_OWNER_ID ), CN_S_OWNER_NAME, CN_N_NDX FROM OI_ND_USER WHERE CN_S_OWNER_ID IN ( @strUserLogin1, @strUserLogin2 ) )
? — 打開游標(biāo)
? Open userindex_cursor
? — 開始循環(huán)游標(biāo)變量
? Fetch Next From userindex_cursor into @strOwner, @strOwnerName, @nNDIndex
? — FETCH 后的游標(biāo)狀態(tài)
? While @@FETCH_STATUS = 0
? Begin
? ? If @strOwner = @strUserLogin1
? ? Begin
? ? ? Set @nUserIndex1 = @nNDIndex
? ? ? Set @strUserName1 = @strOwnerName
? ? End
? ? Else
? ? Begin
? ? ? Set @nUserIndex2 = @nNDIndex
? ? ? Set @strUserName2 = @strOwnerName
? ? End
? ? — 轉(zhuǎn)到下一個游標(biāo)
? ? Fetch Next From userindex_cursor into @strOwner, @strOwnerName, @nNDIndex
? End
? — 關(guān)閉游標(biāo)
? Close userindex_cursor
? — 釋放游標(biāo)
? Deallocate userindex_cursor
? — 判斷用戶索引
? If @nUserIndex1 = -1 Or @nUserIndex2 = -1
? Begin
? ? Print N’指定的用戶不存在’
? ? Return
? End
? — 生成表索引
? Set @strTabIndex1 = Str( @nUserIndex1, 1 )
? Set @strTabIndex2 = Str( @nUserIndex2, 1 )
? — 在用戶B根目錄下創(chuàng)建存放轉(zhuǎn)移數(shù)據(jù)的目錄:轉(zhuǎn)自【用戶A】_YYYYmmdd
? Print N’創(chuàng)建轉(zhuǎn)移數(shù)據(jù)的目錄’
? Set @strCatalogID = NewID()
? Set @strDate = Left( Convert( char(8), GetDate(), 112 ), 8 )
? Set @strCatalogName = ‘轉(zhuǎn)自【’ + @strUserName1 + ‘】_’ + @strDate
? Set @strSQL = N’INSERT INTO OI_ND_CATALOG ( CN_S_ID, CN_S_NAME, CN_N_DOC_LIST_TYPE, CN_N_SHARE, CN_S_CREATOR_ID, CN_S_CREATOR, CN_T_CREATE, CN_N_ORDER, CN_S_PARENTID ) ‘ +
N’VALUES ( ”’ + @strCatalogID + ”’, ”’ + @strCatalogName + ”’, 0, 0, ”’ + @strUserLogin2 + ”’, ”’ + @strUserName2 + ”’, GetDate(), 0, ”” )’
? EXEC( @strSQL )
? — 索引值相同,直接替換
? If @nUserIndex1 = @nUserIndex2
? Begin
? ? Print N’用戶索引相同’
? ? — 個人文檔表
? ? Print N’個人文檔表’
? ? Set @strSQL = N’UPDATE OI_ND_DOC_’ + @strTabIndex1 + N’ SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’, CN_S_CREATOR = ”’ + @strUserName2 + N”’ WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? ? EXEC( @strSQL )
? ? — 根級目錄文檔
? ? Print N’根級目錄文檔’
? ? Set @strSQL = N’UPDATE OI_ND_CATALOG_HLINK_’ + @strTabIndex1 + N’ SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’, CN_S_CATALOG_ID = ”’ + @strCatalogID + N”’ WHERE (CN_S_CATALOG_ID IS NULL OR CN_S_CATALOG_ID = ””) AND CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? ? EXEC( @strSQL )
? ? — 子級目錄文檔
? ? Print N’子級目錄文檔’
? ? Set @strSQL = N’UPDATE OI_ND_CATATLOG_HLINK_’ + @strTabIndex1 + N’ SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’ WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? ? EXEC( @strSQL )
? End
? — 索引值不同,數(shù)據(jù)記錄遷移(記錄復(fù)制至 B用戶索引表,刪除A用戶索引表記錄)
? Else
? Begin
? ? Print N’用戶索引不相同’
? ? — 個人文檔表,復(fù)制
? ? Print N’個人文檔表,復(fù)制’
? ? Set @strSQL = N’INSERT INTO OI_ND_DOC_’ + @strTabIndex2 + N’ ( CN_S_ID, CN_S_FILE_NAME, CN_S_FILE_TYPE, CN_N_FILE_SIZE, CN_T_FILE_DATETIME, CN_S_FILE_MD5, CN_S_FILE_SERVER, CN_G_FILE_ID, CN_G_PDF_FILE_ID, CN_G_FLASH_FILE_ID, CN_G_THUMB_IMAGE_ID, CN_S_THUMB_URL, ‘ +
N’CN_S_CREATOR_ID, CN_S_CREATOR, CN_T_CREATE, CN_S_VERSION, CN_S_TAGS_NAME, CN_N_SHARE, CN_N_MOD, CN_S_NOTE, CN_S_SYS_NOTE ) ‘ +
N’SELECT CN_S_ID, CN_S_FILE_NAME, CN_S_FILE_TYPE, CN_N_FILE_SIZE, CN_T_FILE_DATETIME, CN_S_FILE_MD5, CN_S_FILE_SERVER, CN_G_FILE_ID, CN_G_PDF_FILE_ID, CN_G_FLASH_FILE_ID, CN_G_THUMB_IMAGE_ID, CN_S_THUMB_URL, ‘ +
N”” + @strUserLogin2 + N”’, ”’ + @strUserName2 + N”’, CN_T_CREATE, CN_S_VERSION, CN_S_TAGS_NAME, CN_N_SHARE, CN_N_MOD, CN_S_NOTE, CN_S_SYS_NOTE ‘ +
N’FROM OI_ND_DOC_’ + @strTabIndex1 +
N’ WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? ? EXEC( @strSQL )
? ? — 刪除
? ? Print N’個人文檔表,刪除’
? ? Set @strSQL = N’DELETE OI_ND_DOC_’ + @strTabIndex1 + N’ WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? ? EXEC( @strSQL )
? ? — 根級目錄文檔,復(fù)制
? ? Print N’根級目錄文檔,復(fù)制’
? ? Set @strSQL = N’INSERT INTO OI_ND_CATALOG_HLINK_’ + @strTabIndex2 + N’ ( CN_S_CREATOR_ID, CN_S_CATALOG_ID, CN_S_OBJ_ID, CN_S_DISPLAY_NAME, CN_S_FILE_TYPE, CN_N_FILE_SIZE, CN_S_THUMB_URL, CN_T_FILE_DATETIME, CN_S_EXTATTR, CN_N_SHARE, CN_T_LINK, CN_S_TAGS ) ‘ +
N’SELECT ”’ + @strUserLogin2 + N”’, ”’ + @strCatalogID + N”’, CN_S_OBJ_ID, CN_S_DISPLAY_NAME, CN_S_FILE_TYPE, CN_N_FILE_SIZE, CN_S_THUMB_URL, CN_T_FILE_DATETIME, CN_S_EXTATTR, CN_N_SHARE, CN_T_LINK, CN_S_TAGS ‘ +
N’FROM OI_ND_CATALOG_HLINK_’ + @strTabIndex1 +
N’ WHERE (CN_S_CATALOG_ID IS NULL OR CN_S_CATALOG_ID = ””) AND CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? ? EXEC( @strSQL )
? ? — 刪除
? ? Print N’根級目錄文檔,刪除’
? ? Set @strSQL = N’DELETE OI_ND_CATALOG_HLINK_’ + @strTabIndex1 + N’ WHERE (CN_S_CATALOG_ID IS NULL OR CN_S_CATALOG_ID = ””) AND CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? ? EXEC( @strSQL )
? ? — 子級目錄文檔,復(fù)制
? ? Print N’子級目錄文檔,復(fù)制’
? ? Set @strSQL = N’INSERT INTO OI_ND_CATALOG_HLINK_’ + @strTabIndex2 + N’ ( CN_S_CREATOR_ID, CN_S_CATALOG_ID, CN_S_OBJ_ID, CN_S_DISPLAY_NAME, CN_S_FILE_TYPE, CN_N_FILE_SIZE, CN_S_THUMB_URL, CN_T_FILE_DATETIME, CN_S_EXTATTR, CN_N_SHARE, CN_T_LINK, CN_S_TAGS ) ‘ +
N’SELECT ”’ + @strUserLogin2 + N”’, CN_S_CATALOG_ID, CN_S_OBJ_ID, CN_S_DISPLAY_NAME, CN_S_FILE_TYPE, CN_N_FILE_SIZE, CN_S_THUMB_URL, CN_T_FILE_DATETIME, CN_S_EXTATTR, CN_N_SHARE, CN_T_LINK, CN_S_TAGS ‘ +
N’FROM OI_ND_CATALOG_HLINK_’ + @strTabIndex1 +
N’ WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? ? EXEC( @strSQL )
? ? — 刪除
? ? Print N’子級目錄文檔,刪除’
? ? Set @strSQL = N’DELETE OI_ND_CATALOG_HLINK_’ + @strTabIndex1 + N’ WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? ? EXEC( @strSQL )
? End
? — 未分表的數(shù)據(jù)表,直接替換
? — 回收站,原根目錄文檔
? Print N’回收站,原根目錄文檔’
? Set @strSQL = N’UPDATE OI_ND_DOC_DELETE SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’, CN_S_CREATOR = ”’ + @strUserName2 + N”’, CN_S_DELETED_BY_ID = ”’ + @strUserLogin2 + N”’, CN_S_DELETED_BY = ”’ + @strUserName2 + N”’, CN_G_CATALOG_ID = ”’ + @strCatalogID + N”’ ‘ +
N’WHERE (CN_G_CATALOG_ID IS NULL OR CN_G_CATALOG_ID = ””) AND CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? EXEC( @strSQL )
? — 回收站,其它目錄文檔
? Print N’回收站,其它目錄文檔’
? Set @strSQL = N’UPDATE OI_ND_DOC_DELETE SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’, CN_S_CREATOR = ”’ + @strUserName2 + N”’, CN_S_DELETED_BY_ID = ”’ + @strUserLogin2 + N”’, CN_S_DELETED_BY = ”’ + @strUserName2 + N”’ ‘ +
N’WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? EXEC( @strSQL )
? — 歷史表
? Print N’歷史表’
? Set @strSQL = N’UPDATE OI_ND_DOC_HISTORY SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’, CN_S_CREATOR = ”’ + @strUserName2 + N”’, CN_S_OPERATOR_ID = ”’ + @strUserLogin2 + N”’, CN_S_OPERATOR = ”’ + @strUserName2 + N”’ ‘ +
N’WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? EXEC( @strSQL )
? — 根級目錄
? Print N’根級目錄’
? Set @strSQL = N’UPDATE OI_ND_CATALOG SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’, CN_S_CREATOR = ”’ + @strUserName2 + N”’, CN_S_PARENTID = ”’ + @strCatalogID + N”’ ‘ +
N’WHERE (CN_S_PARENTID IS NULL OR CN_S_PARENTID = ””) AND CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? EXEC( @strSQL )
? — 子級目錄
? Print N’子級目錄’
? Set @strSQL = N’UPDATE OI_ND_CATALOG SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’, CN_S_CREATOR = ”’ + @strUserName2 + N”’ ‘ +
N’WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? EXEC( @strSQL )
? — 共享出去信息替換
? Print N’共享出去信息替換’
? Set @strSQL = N’UPDATE OI_ND_SHARE_OUT SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’ WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? EXEC( @strSQL )
? — 刪除共享進(jìn)來 A -> B,B -> A 記錄
? Print N’刪除共享進(jìn)來 A -> B,B -> A 記錄’
? Set @strSQL = N’DELETE OI_ND_SHARE_IN WHERE (CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N”’ AND CN_S_SHARER_ID = ”’ + @strUserLogin2 + N”’) OR (CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’ AND CN_S_SHARER_ID = ”’ + @strUserLogin1 + N”’)’
? EXEC( @strSQL )
? — 共享進(jìn)來信息替換
? Print N’共享進(jìn)來信息替換’
? Set @strSQL = N’UPDATE OI_ND_SHARE_IN SET CN_S_CREATOR_ID = ”’ + @strUserLogin2 + N”’, CN_S_CREATOR = ”’ + @strUserName2 + N”’ WHERE CN_S_CREATOR_ID = ”’ + @strUserLogin1 + N””
? EXEC( @strSQL )
END
GO
]]>