我正在制作一份报告,显示客户名单和一些数字值.我使用公式来对我的小组进行排序,具体如下:
if {Db.SortOrder} = 0 then
{Db.CostumerName}
else
ToText({Db.Value},'00000000',0,'')
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以按客户名称或值进行分组,问题是我需要对它们使用不同的排序顺序,当我按CostumerName分组时按升序排序,当按值分组时降序.我怎样才能实现这一目标?我使用crAscendingOrder,crDescendingOrder尝试了"按公式排序组",但它说我需要使用costant而不是变量(在我的情况下我使用了db.SortOrder)
在我的应用程序 (.NET Framework 4.5) 中,我渲染了一些 RDLC 报告 (50-60),以便将它们导出为单个 PDF。
不幸的是,似乎存在很大的内存泄漏,基本上每个都LocalReport不会被处理。
这是我的代码:
public void ProcessReport(ReportDataSource[] reportDS, string reportPath)
{
const string format = "PDF";
string deviceInfo = null;
string encoding = String.Empty;
string mimeType = String.Empty;
string extension = String.Empty;
Warning[] warnings = null;
string[] streamIDs = null;
Byte[] pdfArray = null;
using (var report = new LocalReport())
{
report.EnableExternalImages = true;
report.ReportEmbeddedResource = reportPath;
report.Refresh();
foreach (var rds in reportDS)
{
report.DataSources.Add(rds);
}
report.Refresh();
try
{
pdfArray = …Run Code Online (Sandbox Code Playgroud) 我试图创建一个数字序列中string的格式,一旦我达到"99999"我想用继续序列领先字母。
例子:
"00000" -> "00100" -> "99999" -> "A0001" -> "A9999" -> "B0001" -> "ZZZZZ"
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法来实现这一目标?
到目前为止,我尝试将我string的数字和字母分开,然后如果数字达到最大值,我会进行一些代码检查,如果达到可用的最大值,我会添加一个字母。对我来说看起来并不优雅。
我需要修改一个DataTable连接到a DataGridView使用a BindingSource而不改变网格.
这是我的代码:
dtBallaFroc = new DataTable();
//...Fill the datatable
bindingSource.DataSource = dtBallaFroc;
gridView.DataSource = bindingSource;
Run Code Online (Sandbox Code Playgroud)
稍后在代码中我需要编辑数据表:
DataTable dataTable = (DataTable)bindingSource.DataSource;
for (int i = 0; i < dataTable.Rows.Count; i++)
{
dataTable.Rows[i][5] = 0;
}
Run Code Online (Sandbox Code Playgroud)
它可以正常工作,但它也编辑我的datagridview,我该如何阻止它?