找回密码
 立即注册

QQ登录

只需一步,快速开始

weisheng

注册会员

3

主题

30

帖子

126

积分

注册会员

积分
126

微信认证勋章

最新发帖
weisheng
注册会员   /  发表于:2016-11-16 10:22  /   查看:3935  /  回复:6
/// <summary>
        /// Use to Create the PrintPreview dialog.<br></br>
        /// </summary>
        /// <param name="oflexGrid">the FlexGrid Control.</param>
        /// <param name="szGridTitle">the FlexGrid Title.</param>
        static public void CreatePrintViewDialog(C1FlexGrid oflexGrid, string szGridTitle,bool isLandscape)
        {
            try
            {
                if (oflexGrid == null) throw new NullReferenceException();
                bool bReturn = PrinterSettings.InstalledPrinters.Count > 0 ? true : false;
                if (!bReturn)
                {
                    throw new Exception(MultiLanUtility.GetString("Install printer firstly"));
                }
                string _risDefaultPrinter = ClientFrameworkBuilder.Instance.ConfigDicManager.GetConfigDicValue("DefaultPrinter", "0000");
                if (_risDefaultPrinter.Length > 0) // use the GCRIS default printer settings
                {
                    PrintDocument pd = new PrintDocument();
                    pd.PrinterSettings.PrinterName = _risDefaultPrinter;
                    if (pd.PrinterSettings.IsValid)
                    {
                        oflexGrid.PrintParameters.PrintDocument.PrinterSettings.PrinterName = _risDefaultPrinter;                        
                    }
                    else
                    {
                        throw new Exception(MultiLanUtility.GetString("NotValidPrinter"));
                    }
                }
                oflexGrid.PrintParameters.PrintDocument.PrinterSettings.DefaultPageSettings.Landscape = isLandscape;
                oflexGrid.PrintParameters.PrintDocument.PrinterSettings.DefaultPageSettings.Margins = new Margins(50, 50, 50, 50);
                oflexGrid.PrintParameters.PrintDocument.DefaultPageSettings.Landscape = isLandscape;
                oflexGrid.PrintParameters.PrintDocument.DefaultPageSettings.Margins = new Margins(50, 50, 50, 50);
                oflexGrid.Font  = new Font(oflexGrid.Font.FontFamily, oflexGrid.Font.Size * 3/2);
                oflexGrid.AutoSizeCols();
                DataTable flexGridDataSource = null;
                if (oflexGrid.DataSource is DataTable)
                {
                    flexGridDataSource = (DataTable)oflexGrid.DataSource;
                }
                else if (oflexGrid.DataSource is DataView)
                {
                    flexGridDataSource = ((DataView)oflexGrid.DataSource).Table as DataTable;
                }
                if (flexGridDataSource != null)
                {
                    oflexGrid.PrintGrid("PrintFlexGridData", PrintGridFlags.FitToPageWidth, "\t" + szGridTitle + "  ", "\t\tPage {0} of {1}");
                }
                //C1FlexGridPrintable oC1FlexGridPrintable = new C1FlexGridPrintable(oflexGrid);
                //const string c_tag_t = "\\t";
                //oC1FlexGridPrintable.PrintInfo.PageHeader = c_tag_t + szGridTitle;
                //oC1FlexGridPrintable.PrintPreview();
            }
            catch (Exception ex)
            {
                //ClientFrameworkBuilder.Instance.CommonManager.ShowMsgBox(ex.Message);
                LogFacility.Instance.Logger.Error((int)ModuleEnum.Statistic_Client, ModuleInstanceName.Statistic, 0,
                    ex.Message, string.Empty, new StackFrame(true).GetFileName(),
                                    new StackFrame(true).GetFileLineNumber());
                ClientFrameworkBuilder.Instance.CommonManager.ShowMsgBox(ex.Message);
            }
        }


6 个回复

倒序浏览
weisheng
注册会员   /  发表于:2016-11-16 10:24:13
沙发
debug如图所示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-16 14:35:31
板凳

我这里无法重现您的问题。
请问您使用的是什么版本,因为旧版本曾经有过类似的bug。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
weisheng
注册会员   /  发表于:2016-11-16 14:40:50
地板
就是用即将购买的最新版本。
回复 使用道具 举报
weisheng
注册会员   /  发表于:2016-11-16 16:36:42
5#
我注释了oflexGrid.AutoSizeCols();
在下面这句程序挂起了。
oflexGrid.PrintGrid("PrintFlexGridData", PrintGridFlags.FitToPageWidth, "\t" + szGridTitle + "  ", "\t\tPage {0} of {1}");
如图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
weisheng
注册会员   /  发表于:2016-11-16 17:04:32
6#
stack trace:
   at #s5.#nhb.#khb(Int32 #lq)
   at #s5.#nhb.#7gb(Int32 #j)
   at #s5.#2fb.GetDataDisplay(Int32 #j, Int32 #l)
   at #s5.#2fb.GetDataDisplay(Int32 #j, Int32 #l, Image& #Ak, CheckEnum& #bdb)
   at C1.Win.C1FlexGrid.C1FlexGridBase.GetDataDisplay(Int32 row, Int32 col, Image& img, CheckEnum& chk)
   at C1.Win.C1FlexGrid.C1FlexGridBase.AutoSizeCols(Graphics g, Int32 row1, Int32 col1, Int32 row2, Int32 col2, Int32 extra, AutoSizeFlags flags)
   at C1.Win.C1FlexGrid.C1FlexGrid.AutoSizeCols(Graphics g, Int32 row1, Int32 col1, Int32 row2, Int32 col2, Int32 extra, AutoSizeFlags flags)
   at C1.Win.C1FlexGrid.C1FlexGridBase.AutoSizeCols(Int32 topRow, Int32 leftCol, Int32 bottomRow, Int32 rightCol, Int32 extraSpace, AutoSizeFlags flags)
   at C1.Win.C1FlexGrid.C1FlexGridBase.AutoSizeCols(Int32 extraSpace)
   at C1.Win.C1FlexGrid.C1FlexGridBase.AutoSizeCols()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-11-17 09:06:05
7#
weisheng 发表于 2016-11-16 17:04
stack trace:
   at #s5.#nhb.#khb(Int32 #lq)
   at #s5.#nhb.#7gb(Int32 #j)

非常感谢您的反馈。
麻烦您提供可以重现问题的简单Demo,我这里需要测试重现问题。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部