下面的代码是我用来为Crystal Report设置选择公式的代码。
Dim dateTo As Date
dateTo = dtpCRTo.Value.ToShortDateString
dateTo = Format(dateTo, "dd/MM/yyyy")
If cmbCRSupplier.Value = "" Then
selectionFormula = "{Sales_Headers.Stage} = '6' AND {Sales_Lines.PaymentDate} <= #" & dateTo & "#"
我遇到的问题是,我正在测试的数据的Sales_Headers.Stage
值为6,这很好,Sales_Lines.PaymentDate
值为30/11/2016(In但是,即使我使用的dd/MM/yyyy
显示在2016年12月11日,英国DateTimePicker
格式也是如此,dateTo
的值将在12/11/2016返回,即{ {1}}格式,因此报告不显示数据,因为该日期早于付款日期。
为什么日期以这种格式返回,即使我正在格式化它?
修改
此外,在我将格式化部分放入并在选择公式中使用MM/dd/yyyy
之前,它仍然做了同样的事情。
对于日期部分小于13的任何日期,它将该部分视为一个月,但一旦该部分为13或更多时工作正常......
编辑2:
我现在的查询如下:
dtpCRTo.Value.ToShortDateString
这适用于所有日期,除非选择每个月的最后一天。如果我选择1月31日,则 Dim dateTo As Date = dtpCRTo.Value.AddDays(1).Date
dateTo = Format(dateTo, "dd/MM/yyyy")
If cmbCRSupplier.Value = "" Then
selectionFormula = "{Sales_Headers.Stage} = '6' AND {Sales_Lines.PaymentDate} < #" & dateTo & "#"
值将变为02/01(2月2日),在公式中将其视为1月2日。有办法解决这个问题吗?
答案 0 :(得分:0)
格式属性:
$namdetailsArray = array();
foreach ($names as $name => $desc) {
$personArray = array();
foreach ($desc as $key => $value) {
$personArray[] = array($key, $value);
}
$namdetailsArray[$name] = $personArray;
}
代码背后:
1. DatePicker > Properties > CustomFormat > (Enter format you want here)
2. Properties > Format > Custom
要么在“属性”或“代码隐藏”中进行格式化。