Comment créer un flux de délégués

la programmation


Bonjour, j’utilise VS2015 Winforms, VC++. C++/CLI Avec mon application, j’essaie d’imprimer le rapport rdlc. Et j’obtiens l’erreur ci-dessous.

ne peut pas prendre l’adresse de ‘PrintRDLCReport::CreateStream’ à moins de créer une instance de délégué.

	private: static Stream^ stream = gcnew MemoryStream();
		 
	public: static Stream^ CreateStream(String^ name, String^ fileNameExtension, Encoding^ encoding, String^ mimeType, bool willSeek){
		//Stream^ stream = gcnew MemoryStream();
		stream = gcnew MemoryStream();
		//stream = gcnew FileStream(name + "." + fileNameExtension,FileMode::Create);
		m_streams->Add(stream);
		return stream;
	}
	public: static System::Void Export(LocalReport^ report, bool print){
		PaperSize^ paperSize = m_pageSettings->PaperSize;
		Margins^ margins = m_pageSettings->Margins;
		print = true;
		
		String^ deviceInfo = String::Format(CultureInfo::InvariantCulture,
			"<DeviceInfo>" +
			"<OutputFormat>EMF</OutputFormat>" +
			"<PageWidth>{5}</PageWidth>" +
			"<PageHeight>{4}</PageHeight>" +
			"<MarginTop>{0}</MarginTop>" +
			"<MarginLeft>{1}</MarginLeft>" +
			"<MarginRight>{2}</MarginRight>" +
			"<MarginBottom>{3}</MarginBottom>" +
			"</DeviceInfo>",
			ToInches(margins->Top),
			ToInches(margins->Left),
			ToInches(margins->Right),
			ToInches(margins->Bottom),
			ToInches(paperSize->Height),
			ToInches(paperSize->Width));

		cli::array<Warning^>^ warnings;
		m_streams = gcnew List<Stream^>();
		

report->Render("Image", deviceInfo, CreateStream, warnings); ?????????????????????????

This above line CreateStream generates the error
can't take address of 'PrintRDLCReport::CreateStream' unless creating delegate instance	
 

		for each(Stream^ stream in m_streams) {
			stream->Position = 0;
		}
		if (print==true){
			Print();
		}
	}

Merci pour vos bons conseils, merci encore !

Ce que j’ai essayé :

Essayez d’imprimer le rapport RDLC directement sur l’imprimante

Solution 1

コメント

タイトルとURLをコピーしました