小编Big*_*Pin的帖子

是否可以通过脚本更新Word文档中的表单域

这可能会提出很多问题,所以我会尝试尽可能具体.我负责支持我的工作使用的第三方应用程序.此应用程序执行的功能之一是从.dot文件中提取word文档,其中包含来自数据库的信息.它使用MERGEFIELD字段执行此操作.当这个数据被拉入时,它允许保留正常的日期字段和printdate字段,但是创建(我需要的那个)和保存的字段完全搞砸了.它将原始模板创建日期保留在那里,而不是像模板通常那样插入今天的日期作为文档创建日期,并使字段无效,使其为纯文本而不是创建字段,因此您无法更新它.当创建的字段与邮件合并一起使用时,我无法找到关于这是否是标准行为的确切答案.我会使用普通日期,但这些文件可以在几天内编辑,最后将其转换为PDF以获得"永久"副本.如果您从程序创建文档然后第二天打开它,它会自动更新日期...不是我们想要的,需要在它打开的第一天.

我有一个顿悟,使用powershell脚本来更新模板本身的创建.使用以下三行进行管理:

$a = Get-Date
$b = Get-Item "Q:\CUSTOM\DATETEST.dot"
$b.CreationTime = $a
Run Code Online (Sandbox Code Playgroud)

此脚本运行良好,文件信息已更新.但是,要获取文档中的实际单词以反映这一点,您必须进入Word,使用F9刷新表单中的字段,然后保存它.即使使用更新的创建日期,单词文档文本仍会显示在Word中或从其他应用程序中提取文档时的旧日期,直到您刷新并手动保存模板为止.这些表格不受保护,因此不是问题.我看到了一些用于编辑word文件的powershell脚本,但是无法找到一个用于刷新日期字段的脚本.我尝试使用修改日期和在表单中使用savedate字段的脚本,但这也需要进入并实际保存表单.有没有一种方法在powershell或批处理(或任何脚本语言,在这一点上不关心),这将使我能够刷新文档中的表单字段,然后保存它们,或者任何人都可以想到任何其他方式?我有几个文档需要这样做,所以每天早上手动操作也是不切实际的.

编辑:我发现以下代码,如下所述.在这段代码中我还发现我需要将Documents.Add更改为Documents.Open.我会注意到,这对于按照我需要的方式操作保存日期起作用,但创建仍然是一个谜.

$word=new-object -com Word.Application 
$doc=$word.Documents.Add($filename) 
$word.Visible=$False 
$word.ActiveDocument.Fields.Update() 
$doc.SaveAs([REF]$filename) 
$doc.Close() 
$word.Quit()
Run Code Online (Sandbox Code Playgroud)

powershell ms-word batch-file form-fields

5
推荐指数
1
解决办法
6070
查看次数

Azure Devops 指定的登录会话不存在

我们使用 Azure Devops 作为 git 存储库,之前我们经常遇到一个问题,即我们会收到“终端提示已禁用”错误。当我们升级到 Visual Studio (2019) 版本 16.8.1 时,这个问题就消失了,一切看起来都很好。然而,在这个版本大约两周后,我和我们的其他一些开发人员现在收到了这个错误:

Failed to push to the remote repository. See the Output window for more details.
Updating 7df912b..b4954c1
Git failed with a fatal error.
Failed to write item to store. [0x520]
A specified logon session does not exist. It may already have been terminated
POST git-upload-pack (909 bytes)
remote: Azure Repos        
remote: 
remote: Found 12 objects to send. (9 ms)        
From https://dev.azure.com/myOrg/_git/myApp
   7df971b..b4958c1  master     -> origin/master
Run Code Online (Sandbox Code Playgroud)

有时它也会说失败并检查输出窗口。当我去检查错误时,它会在输出窗口本身中显示“检查输出窗口”,而没有进一步的错误消息。我尝试清除 AppData 中的 git …

git azure azure-devops visual-studio-2019

5
推荐指数
2
解决办法
4495
查看次数

库列表的IBM .NET数据提供程序连接字符串问题

我试图在C#程序中使用DB2 .Net Data Provider而不是依赖ODBC.下面的连接字符串可以工作,但只适用于一个库(比如我的库是test1和test2).

Data Source=xxx.xxx.xxx.xxx;User Id=testuser;Password=testpassword;
Naming=SQL;Default Collection=test1;
Run Code Online (Sandbox Code Playgroud)

如果我添加"Library List = test1,test2;" (我已尝试过几种变体)连接字符串,它不允许我访问其他库,只允许访问defaultcollection中定义的库.我也尝试过不指定默认收集,但这导致查询根本不起作用.我需要做什么才能运行可以在同一连接上访问这两个库的查询?

c# db2 connection-string ibm-midrange

2
推荐指数
2
解决办法
1859
查看次数