Stimulsoft Web版中如何动态修改Json数据源的Url

在Stimulsoft Report(目前我使用的是2022.1.2版本)中,可以支持从JSON文件或者在线URL作为数据源。

当设计完报表之后,一般要连接正式的服务器URL,所以我希望能动态的修改这个URL。

我照着官方示例写了如下代码,虽然能够工作,但我觉得不是很简洁。

// 从Json获取数据        
StiJsonDatabase jsonDatabase = new StiJsonDatabase
{
    Alias = "JSON",
    Key = "",
    Name = "JSON",
    PathData = "myPath?action=ExpenseByStore&CompanyCode=101&CurrentYear=2022"
};
report.Dictionary.Databases.Clear();
report.Dictionary.Databases.Add(jsonDatabase);

后来从官方支持获得如下写法,果然简洁!不得不说Stimulsoft的中文资料太少,这也是我开始在博客写下一些填过坑的原因。

var newUrl = "myPath?action=ExpenseByStore&CompanyCode=101&CurrentYear=2022";
(report.Dictionary.Databases[0] as StiJsonDatabase).PathData = newUrl;

另外呢,今天收到新版的更新通知了,感兴趣的小伙伴可以下载更新了。

U盘克隆/复制/对拷/拷贝工具,不妨试试这款:WinImage

近期有个需求,要从一个U盘对拷出一个完全一样的U盘内容,带一些隐藏文件及系统引导功能。并且U盘的容量有如下两种情况:

1、容量完全一样
2、新U盘的容量大

通过微信群里的兄弟,了解到这款WinImage,官方网站:http://www.winimage.com/download.htm,真得很好用,特别推荐给有类似需要的朋友。

什么是 WinImage?

WinImage 是一个成熟的磁盘映像套件,用于轻松创建、读取和编辑多种映像格式和文件系统,包括 DMF、VHD、FAT、ISO、NTFS 和 Linux。磁盘映像是物理磁盘(软盘、CD-ROM、硬盘、USB、VHD 磁盘等)或保留原始结构的分区的精确副本。使用 WinImage,您可以在硬盘驱动器或其他媒体上重新创建磁盘映像、查看其内容、提取基于映像的文件、添加新文件和目录、更改格式以及对映像进行碎片整理。所有这些以及更多功能都在一个直观的用户界面中提供,该界面可立即实现成像。

该程序在家庭和办公室中有许多实用用途。作为一名认真的 PC 用户,您可能拥有大量旧但仍然有用的软盘。使用 WinImage,您可以将它们转换为磁盘映像,这些映像可以存储在硬盘驱动器上并在需要时重新创建。结合 CD 创建工具,WinImage 可以帮助您创建自己的带有硬件诊断或病毒清除软件的自定义启动盘,使有问题的 PC 备份并运行,而无需在 Windows 中运行。作为硬盘备份方案,WinImage 允许您在经历过硬盘崩溃或软件损坏的机器上恢复系统和配置时节省数小时甚至数天。与家庭和办公室一样,这种能力是培训课程的必备条件,在这种情况下,快速恢复损坏的 PC 配置至关重要。

WinImage 有很多很酷的功能!

从可移动驱动器(如 USB 驱动器)、CD-ROM、软盘、从磁盘映像中提取文件,创建空磁盘映像,
将文件和目录注入现有的磁盘映像中,
更改磁盘映像格式,
对磁盘映像进行碎片整理,
强大的“批处理助手”模式,让你自动化多项操作,
还有很多!

WinImage 使用现代、尖端的 Windows 界面,可用于 Windows 95/98 和 Windows NT/2000/XP/2003 服务器/Windows 7/Windows 10等的英语、法语、德语、意大利语、葡萄牙语和西班牙语、中文等。

WinImage 是一个共享软件程序。

WinImage 是共享软件。您可以在 30 天的试用期内对其进行评估。30 天后,如果您想继续使用 WinImage,您需要注册。单击 此处下载 WinImage

Bartender标签设计打印软件中使用Visual Basic脚本自定义组合数据

Bartender软件很强大,近期有用户需要在一个二维码中展示多个数据库字段的组合信息,使用Visual Basic脚本的方式,非常容易就达成了。

另外,用于显示动态的年、月、日、季度,当年第几天等这种信息,直接使用Visual Basic自带的函数就可以搞定。

如何解决Newtonsoft.Json的版本冲突

在调用金蝶云星空的时候,引用的其C# SDK,但是他使用的是低版本的Newtonsoft,本来想要反编译,然后引用新的版本。后来问了群里的朋友,其实有一个简单的办法。

未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)的错误解决方案

System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

那就是在Web.config(WebApplicaiton/WebAPI)下或者App.config(Winform)下的runtime节点增加以下代码。

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

这个方法可以解决所有的引用DLL中的第三方DLL的版本问题。

Infor ERP LN中序号被占用怎么解决?

如果你遇到系统断线等异常情形,可能会出现如下类似的报错。

大概的意思是某个号码被占用了。

以前的BaaN 5时代可以直接找到First Free Number这个Session,在LN中需要从Numbers Group的Session中找到相应的序列,并修改其First Free Number。

Flowportal.Net BPM 6.7虚拟机安装环境准备

如果你想评估Flowportal.Net BPM的更新

  1. VMWare虚拟机
    a. 提前安装VMWare Work Station 16版
    b. 官网地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
  2. 安装Windows 2019 CN中文版虚拟机
    a. 提前下载ISO镜像文件
    b. 官网地址:https://www.microsoft.com/zh-cn/windows-server
    c. 180天授权
  3. 安装MSSQL 2019数据库
    a. 提前从微软官网下载安装包
    b. 官网地址:https://www.microsoft.com/zh-cn/sql-server/sql-server-2019
    c. SQL Server 2019 Developer 版本是一个全功能免费版本,许可在非生产环境下用作开发和测试数据库。
  4. 安装IIS
    a. 勾选.NET必要的版本
    b. 勾选所有认证类的协议支持
  5. 安装FlowPortal BPM
    a. 提前从官网下载安装包:http://www.flowportal.com/foundation/

FlowPortal BPM版本6升级中表单处理相关URL更新

在从版本4到版本6升级的过程中,有关表单处理(发起、处理、查看)的URL发生了变更,主要是路径中增加了/YZSoft/

发起:http://bpm.yourdomain.com.cn/Forms/post.aspx?pn=%E5%87%BA%E5%B7%AE%E7%94%B3%E8%AF%B7%20-%20Travel%20Application

处理:http://bpm.yourdomain.com.cn/Forms/Process.aspx?tid=<%=Context.Current.Task.TaskID%>&pid=<%=Context.Current.Step.StepID%>

查看:http://bpm.yourdomain.com.cn/Forms/Read.aspx?tid=<%=Context.Current.Task.TaskID%>&pid=<%=Context.Current.Step.StepID%>


发起:http://bpm.yourdomain.com.cn/YZSoft/Forms/post.aspx?pn=%E5%87%BA%E5%B7%AE%E7%94%B3%E8%AF%B7%20-%20Travel%20Application

处理:http://bpm.yourdomain.com.cn/YZSoft/Forms/Process.aspx?tid=<%=Context.Current.Task.TaskID%>&pid=<%=Context.Current.Step.StepID%>

查看:http://bpm.yourdomain.com.cn/YZSoft/Forms/Read.aspx?tid=<%=Context.Current.Task.TaskID%>&pid=<%=Context.Current.Step.StepID%>

给FlowPortal BPM 6提个改进需求:用户自定义表单打开方式

FlowPortal BPM的6版本中,默认打开表单的时候是Tab的方式,而4版本的时候默认是新窗口。

我能猜到为啥用Tab,不仅是Tab是现代浏览器的标配,更主要是新打开窗口很多浏览器默认是禁止的。

好吧,但还是以用户需求为主,我觉得这里作为标准功能,应该让最终用户来选择比较好,系统可以默认,但系统级别可以设置,用户级别也可以设置,以用户级别的为最高优先级为好。

希望官方看到后,能在新版本中加上此优化功能。

我等不及了,先把此处的功能恢复为4版本的默认方式了。

找到Web\YZSoft\Core\Scripts\YZSoft.Ext.js文件,修改全局设置为Window。

其实我更喜欢Dialog方式。

可选参数如下:
Window - 在新窗体中打开表单
Tab - 内容窗口中增加一个Tab
Dialog - 打开div + iframe窗体对话框
ModelessDialog - 无模式对话框
ModalDialog - 模式对话框

升级VS2019 16.11.5引起的error CS0246: The type or namespace name ‘FieldDescription’ could not be found (are you missing a using directive or an assembly reference?)

昨晚上看到VS2022的新的Preview版本发布,就连同VS2019一起升级到了最新版。

可没想到的是,我有个项目中的DLL引用就开始编译报错了。

昨晚上弄了几个小时,删掉引用,重新添加也不行。从GitHub上下载老版本同样编译报错。

找同事试了一下,他用的老版本的VS 2019,没有编译问题。

那可以肯定的是我本地VS2019的问题!

于是上午用VS2022打开编译,同样也是报错。

后来我就到Project属性当中看到Reference Path,以前也没关注过这个的。尝试着增加了我外部引用的DLL路径。

你猜怎么着?

没报错了!

我看了一个修改后的GitHub的Git Changes提示也没有,原来这个设置是保存在了csproj.user文件中。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectView>ShowAllFiles</ProjectView>
  </PropertyGroup>
  <PropertyGroup>
    <ReferencePath>E:\Github\DotNet.WangCaiSoft\src\DLL\DotNet\</ReferencePath>
  </PropertyGroup>
</Project>

难道是我的ToolsVersion为Current的缘故?

哪位高手如果碰到类似情况,不让忘记这个error CS0246的报错,看看你的Reference Path增加上是否就解决了。

我还有一个猜测,就是我同时也安装了VS2022预览版的缘故?