Files
ctbjrj/tools/fix_anchor.py
T

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)