2013-10-24 55 views
1

我想讓用戶在devexpress打印預覽中移動東西,並在完成後才能打印。如果有可能,我可以從哪些方向開始尋找? (我沒有時間去查看整個文檔,可能聽起來很懶,但是在短時間內,devx有點大)。有沒有辦法在DevX報表上重新排列對象?

回答

1

我不認爲你可以直接在打印預覽上做到這一點,但是你可以做的是提供一個按鈕來啓動XtraReports設計器並從當前顯示的文檔中傳入佈局。當用戶完成編輯後,您可以在打印預覽中重新加載文檔,根據需要加載其新的佈局。您可能需要大量定製設計師,除去各種選項限制用戶只能編輯某些方面 - 你可以隱藏很多的功能,包括數據源,組件托盤等:

designer video

designer documentation

hide options in designer

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); 
     } 
    } 
相關問題