Error BC30451: Probleme Report-Engine - Druck im Hintergrund funktioniert nicht

aus_lt

Neues Mitglied
Folgende Fehlermeldung erhalte ich beim Druck über die Report Engine. Berechtigungen sind da.
C:\Windows\Temp\quvzryfe\quvzryfe.0.vb(474,0) : error BC30451: "dtsVKSubKopfLieferschein" ist nicht deklariert. Auf das Objekt kann aufgrund der Schutzstufe möglicherweise nicht zugegriffen werden.
C:\Windows\Temp\quvzryfe\quvzryfe.0.vb(474,0) : error BC30451: "dtsVKSubKopfLieferschein" ist nicht deklariert.
Aufruf über ReportViewerViewModel.PrintReport Funktion. Hat vielleicht jemand eine Idee woran es liegen könnte oder ob der Aufruf der Funktion aus einer Macro-Dll so überhaupt funktionieren kann?
 
_reportCaption = string.Format("{0} {1}", _belegArtDesc, _belegNummer);
_endpoint = ServerConfigurationProxy.GetSDataHttpsEndpoint(false, 0, 0);
_endpointComplete = String.Join("/", _endpoint.Address, "ol", "ControlCenterData", this.Mandant.DatasetName);

_password = myDllConfig.AppSettings.Settings["sagePassword"].Value;
_securePassword = new SecureString();
_password.ToList().ForEach(c => _securePassword.AppendChar(c));
getDefaultNamedParameter();

getReportNamedParameter(_belId, "D", _reportCaption, Convert.ToInt16(Sagede.OfficeLine.Wawi.Tools.Erfassungsart.Verkauf), "", false, false, false, 0, false);

var standardPrinterParameter = _namedParameters.TryGetItem(standardPrinterParameterName);
if (standardPrinterParameter == null)
{
standardPrinterParameter = new NamedParameter
{
Name = standardPrinterParameterName,
DataType = Enumerations.DataTypeSimple.String
};
_namedParameters.Add(standardPrinterParameter);
}
standardPrinterParameter.Value = emailPrinterName;
_viewModel.WaitForPrintCommand = true;

_viewModel.PrintReport(_endpointComplete, myDllConfig.AppSettings.Settings["sageUser"].Value, _securePassword, "Abf",
_config.DruckbelegEMail??"rptVKRechnung.Sage.Wawi", _namedParameters, "de", false, null, string.Empty);

private void getDefaultNamedParameter()
{
_namedParameters = new NamedParameters
{
new NamedParameter
{
Name = "$SuppressDefaultPrint",
DataType = Enumerations.DataTypeSimple.Boolean,
Value = "-1"
},
new NamedParameter
{
Name = "$StandardPrinter",
DataType = Enumerations.DataTypeSimple.String,
Value = String.Empty
},
new NamedParameter
{
Name = "$PaperBin2Printer",
DataType = Enumerations.DataTypeSimple.String,
Value = String.Empty
},
new NamedParameter
{
Name = "$PaperBin3Printer",
DataType = Enumerations.DataTypeSimple.String,
Value = String.Empty
},
new NamedParameter
{
Name = "$PaperBin1",
DataType = Enumerations.DataTypeSimple.Integer,
Value = String.Empty
},
new NamedParameter
{
Name = "$PaperBin2",
DataType = Enumerations.DataTypeSimple.Integer,
Value = String.Empty
},
new NamedParameter
{
Name = "$PaperBin3",
DataType = Enumerations.DataTypeSimple.Integer,
Value = String.Empty
},
new NamedParameter
{
Name = "$Copies",
DataType = Enumerations.DataTypeSimple.Integer,
Value = "1"
}
};
}
private void getReportNamedParameter(int belegHandle, string sprache, string
reportBezeichnung, short erfassungsart, string variante, bool istKopie, bool istInfodruck,
bool istArchivdruck, int aenderungsNr, bool istSchlussrechnungInErfassung)
{
_namedParameters.Add(new NamedParameter()
{
Name = "BelegHandle",
DataType =
Enumerations.DataTypeSimple.Integer,
Value = belegHandle.ToString()
});
_namedParameters.Add(new NamedParameter()
{
Name = "Erfassungsart",
DataType =
Enumerations.DataTypeSimple.Integer,
Value = ConversionHelper.ToString(erfassungsart)
});
_namedParameters.Add(new NamedParameter()
{
Name = "Variante",
DataType =
Enumerations.DataTypeSimple.String,
Value = variante
});
_namedParameters.Add(new NamedParameter()
{
Name = "$AccessCaption",
DataType =
Enumerations.DataTypeSimple.String,
Value = reportBezeichnung
});
_namedParameters.Add(new NamedParameter()
{
Name = "$Language",
DataType =
Enumerations.DataTypeSimple.String,
Value = sprache
});
_namedParameters.Add(new NamedParameter()
{
Name = "rpKopieText",
DataType =
Enumerations.DataTypeSimple.Integer,
Value = istKopie ? "-1" : "0"
});
_namedParameters.Add(new NamedParameter()
{
Name = "Infodruck",
DataType =
Enumerations.DataTypeSimple.Integer,
Value = istInfodruck ? "-1" : "0"
});
_namedParameters.Add(new NamedParameter()
{
Name = "Archivdruck",
DataType =
Enumerations.DataTypeSimple.Integer,
Value = istArchivdruck ? "-1" : "0"
});
_namedParameters.Add(new NamedParameter()
{
Name = "AenderungsNr",
DataType =
Enumerations.DataTypeSimple.Integer,
Value = ConversionHelper.ToString(aenderungsNr)
});
_namedParameters.Add(new NamedParameter()
{
Name = "NoSelection",
DataType =
Enumerations.DataTypeSimple.Integer,
Value = "-1"
});
_namedParameters.Add(new NamedParameter()
{
Name = "rpConnId",
DataType =
Enumerations.DataTypeSimple.Integer,
Value = "0"
});
_namedParameters.Add(new NamedParameter()
{
Name = "rpCountry",
DataType =
Enumerations.DataTypeSimple.Integer,
Value = ConversionHelper.ToString(this.Mandant.CountryId)
});
_namedParameters.Add(new NamedParameter()
{
Name = "VKIstSchlussrechnungInErfassung",
DataType = Enumerations.DataTypeSimple.Integer,
Value = istSchlussrechnungInErfassung ? "-1" : "0"
});
}
 
Die Variante sollte für einen Lieferschein den Wert "Lieferschein", sonst wird die Datenquelle dtsVKSubKopfLieferschein aus dem Bericht entfernt und es kommt es zum oben genannten Fehler. Im obigen Code wird für Variante ein Leer-String übergeben.
 
Mögliche Werte für Variante sind Lieferschein für einen Lieferschein und Colli für einen Packzettel.
Die Variante war auf jeden Fall ein wichtiger Hinweis. Der Druck klappt damit zumindest einmal. In andere Fällen aber immer noch nicht und ich habe ein Beispielprojekt an den Sage-Support gesendet. Vielen Dank für eure Unterstützung.
 
Hallo,

ich kämpfe auch fürchterlich mit der Aufgabe aus einer DLL heraus z.B. Gutschriften zu drucken.
Dabei habe ich mir zum beseren Verständnis sogar das SimpleSample aus der DevKon 2014 zur 6.2 geholt.
Aber auch da passiert nach oder in Funktion _viewModel.PrintReport nichts mehr.
Auch wenn ich _viewModel.Export vor oder nachschalte passiert kein Export oder Druck.
Kann man eventuell das oben erwähnte Beispiel bekommen, oder hier als CodeSnipes posten.

Gruß Reiner
 
Sie sollten immer das Beispiel-Projekt verwenden, das zu Ihrer Sage 100 Version passt. Der 2014er Code wird mit neueren Versionen der Sage 100 nicht funktionieren. Das jeweilige Beispiel ist über das ISV/Developer Programm erhältlich.
 
Hallo Herr Müller,
vielen Dank für die Info.
Wie genau komme ich dahin "Beispiel ist über das ISV/Developer Programm"?
Ich habe mich im Developer Bereich angemeldet und in der Wissensdatenbank nach Report-Engine gesucht.
Leider bekomme ich da nichts was mir weiterhilft.
Wonach muss ich suchen, bzw. muss ich dazu den Dev-Support direkt anschreiben?
Die aktuelle Version des SimpleSample Beispiel würde mir eventuell weiter helfen.
Allerdings habe ich das alte Beispiel natürlich mit den neuen Verweisen versehen.
Gruß R.Liebold
 
Ich weiß leider auch nicht, wo das für Sie zugänglich abgelegt wird. Daher ist es wohl das Beste den Dev-Support direkt anzuschreiben.
Die Verweise in einem 6.2er-Beispiel neu zusetzen, reicht nicht aus, da sich der asynchrone Mechanismus zu einer 7er Version geändert hat.
 
Zurück
Oben