Quando si distribuisce un report SSRS genera il seguente errore:C'è un errore sulla linea 58 del codice personalizzato: [BC30201] Espressione previsto
There is an error on line 58 of custom code: [BC30201] Expression expected
Tuttavia, la relazione funziona bene su modalità di anteprima e visualizza il campo correttamente.
Il segmento di codice personalizzato qui è anche scritto e testato in studio visivo.
Ecco il codice personalizzato:
If (evaluationDate.Day = 31) Then '* affected line
returnValue.Append(String.Format("{0}{1:dd.MM}{2}", _
If(index = 2, " und ", String.Empty), _
New DateTime(evaluationDate.Year, evaluationDate.Month, lastDayOfMonthDictionary(evaluationDate.Month)), _
If(index = 2, ".", String.Empty)))
End If
Come si può vedere, il problema è da un blocco IF..THEN. evaluationDate è di tipo DateTime e il valore è uguale all'argomento DateTime startdate
o sei mesi prima di startDate
- che è un argomento datetime nella firma della funzione.
Non riesco a vedere cosa c'è di sbagliato in questo e ho bisogno di sapere cosa posso fare per risolvere questo problema. Qualche idea?
6 mesi avanti è giugno (che ha 30 giorni), quindi istintivamente mi fisserei su quel numero magico 31 giorni lì per iniziare il debug con. Non sono sicuro se sia questa la causa principale. –
Rimuovere '()' attorno all'istruzione? 'Se evaluationDate.Day = 31 Then' –
@VisualVincent l'ho provato. L'errore è diventato 'definizione non valida'. @NathanTuggy, l'ho scritto e testato in Visual Studio, quando la data era il 31 dicembre in "inizio" e sono stati aggiunti 6 mesi, la data di valutazione era il 30 giugno - che non causava problemi. come ho detto, questo errore si verifica solo durante la distribuzione. in Anteprima, funziona correttamente – Eon