25 lines
1.2 KiB
Python
25 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""修 paste_optimize.py 中图号行触发器的锚点(适配现签名),并加开关条件。"""
|
|
import io
|
|
|
|
p = r"C:\Users\099978\Documents\SharpDevelop Projects\成套报价软件\tools\paste_optimize.py"
|
|
s = io.open(p, encoding="utf-8").read()
|
|
|
|
old = (
|
|
'\' "_u AFTER UPDATE OF \\\\"" + 图号输入列[0] + "\\\\"" ON \\\\"" + 图号表名 + "\\\\"" FOR EACH ROW WHEN NEW.\\\\\"内部ID\\\\\"=\'" +\n'
|
|
"\t\t\t\t图号ID.Replace(\"'\", \"''\") + \"' BEGIN UPDATE \\\\\"\" + 图号表名 + \"\\\\\" SET \" + thSetNew +"
|
|
)
|
|
# 直接用朴素文本定位(避免转义嵌套):找 'BEGIN UPDATE' 紧邻 thSetNew 的那一行对
|
|
lines = s.split("\n")
|
|
done = False
|
|
for i, l in enumerate(lines):
|
|
if "FOR EACH ROW WHEN NEW." in l and "图号输入列[0]" in l and i + 2 < len(lines):
|
|
if "' BEGIN UPDATE" in lines[i + 2] and "thSetNew" in lines[i + 2]:
|
|
lines[i + 2] = lines[i + 2].replace("' BEGIN UPDATE", "' AND \" + 开关条件 + \" BEGIN UPDATE", 1)
|
|
done = True
|
|
print("锚点行已改:", lines[i + 2].strip()[:80])
|
|
break
|
|
if done:
|
|
io.open(p, "w", encoding="utf-8").write("\n".join(lines))
|
|
print("done", done)
|