普通填報表 只對使用者修改行更新建立人編號

2021-08-31 18:11:29 字數 1066 閱讀 8634

具體需求:

普通填報表  要求頁面上修改了那行資料,那麼就將從外部接收到的建立人編號 更新到資料庫中對應修改行的指定欄位中

難點:如果在 update 中直接指定修改  會將所有記錄均修改,指令碼如下:

a1.update@uk(employee:employee_old, 員工表, 編號, 部門, 姓名:aa, 性別, 出生日期, 入職日期, 籍貫, 工資; 編號)

這樣就與客戶想要實現的效果不太一樣。

解決思路:

在執行 update 前  對要更新的資料提前處理,大致思路是通過對比新舊物件的記錄來實現,如果新舊物件不同,則在新物件中保留不同的記錄供後面更新使用,如果新舊物件一致則不參與執行更新,以此達到客戶想要的部分更新效果

以填報教程示例 2.1.sht 為例    資料**指令碼不做任何修改,資料去向指令碼修改如下:

指令碼部分注釋:

b1  c1 指明新舊物件參與比較的欄位名稱;

2-3 行  使用 for 迴圈  對比新舊物件記錄並從 employee 中刪除新舊物件中相同的記錄

a5 中 aa 為模擬外部傳入的建立人  showinput.jsp 定義如下:

按照如上操作即可實現部分更新

修改前展現效果

修改後未提交展現效果

提交更新後展現效果

通過上述效果可以看到僅將修改行的姓名更換為了建立人編號

普通填報表 只對使用者修改行更新建立人編號

具體需求 普通填報表 要求頁面上修改了那行資料,那麼就將從外部接收到的建立人編號 更新到資料庫中對應修改行的指定欄位中 難點 如果在 update 中直接指定修改 會將所有記錄均修改,指令碼如下 a1.update uk employee employee old,員工表,編號,部門,姓名 aa,性...

V5填報表只更新修改資料

潤幹v5填報儲存時是根據指令碼中的新舊物件進行判斷,然後通過update函式進行更新,目前是對裡邊的所有資料進行操作,也就是後所頁面中展現10條記錄,如果只修改一行的話,那麼儲存時10條就都會進行更新,一方面效率有些差,另外,有可能資料表中會有一些最後修改人等字段,只要求對該條資料修改的字段進行更新...

如何用日誌記錄VSS中的使用者修改行為

如何用日誌記錄vss中的使用者修改行為 可看到所人的進出vss的的記錄 check in add delete等 方法如下 1.在共享資料庫 含有 ini 檔案的目錄下建立乙個文字檔案 切記 可取名vsslog 2.進入vss admin 3.tool options,在log all action...