1
我想讓用戶在devexpress打印預覽中移動東西,並在完成後才能打印。如果有可能,我可以從哪些方向開始尋找? (我沒有時間去查看整個文檔,可能聽起來很懶,但是在短時間內,devx有點大)。有沒有辦法在DevX報表上重新排列對象?
我想讓用戶在devexpress打印預覽中移動東西,並在完成後才能打印。如果有可能,我可以從哪些方向開始尋找? (我沒有時間去查看整個文檔,可能聽起來很懶,但是在短時間內,devx有點大)。有沒有辦法在DevX報表上重新排列對象?
我不認爲你可以直接在打印預覽上做到這一點,但是你可以做的是提供一個按鈕來啓動XtraReports設計器並從當前顯示的文檔中傳入佈局。當用戶完成編輯後,您可以在打印預覽中重新加載文檔,根據需要加載其新的佈局。您可能需要大量定製設計師,除去各種選項限制用戶只能編輯某些方面 - 你可以隱藏很多的功能,包括數據源,組件托盤等:
if(EditLayout(document))
RefreshDocument();
public static bool EditLayout(XtraReport document)
{
using (var designer = new XRDesignRibbonForm())
{
designer.OpenReport(document);
XRDesignPanel activePanel = designer.ActiveDesignPanel;
activePanel.AddCommandHandler(new DesignerCommandHandler(activePanel));
HideDesignerOptions(activePanel);
designer.ShowDialog();
changesMade = activePanel.Tag != null && (DialogResult)activePanel.Tag == DialogResult.Yes; //set this tag in your DesignerCommandHandler
activePanel.CloseReport();
}
return changesMade;
}
最後,改變文件的一些實用方法/報告佈局:
internal static byte[] GetLayoutData(this XtraReport report)
{
using (MemoryStream mem = new MemoryStream())
{
report.SaveLayoutToXml(mem);
return mem.ToArray();
}
}
internal static void SetLayoutData(this XtraReport report, byte[] data)
{
using (var mem = new MemoryStream(data))
{
report.LoadLayoutFromXml(mem);
}
}