コード例 #1
0
        }       //	createFromTable

        /// <summary>
        /// Create MPrintFormat for ReportView
        /// </summary>
        /// <param name="ctx">context</param>
        /// <param name="AD_ReportView_ID">AD_ReportView_ID</param>
        /// <param name="ReportName">optional Report Name</param>
        /// <returns>print format</returns>
        static public MPrintFormat CreateFromReportView(Ctx ctx, int AD_ReportView_ID, String ReportName)
        {
            int AD_Client_ID = ctx.GetAD_Client_ID();

            MPrintFormat pf = new MPrintFormat(ctx, 0, null);

            pf.SetAD_ReportView_ID(AD_ReportView_ID);

            //	Get Info
            String sql = "SELECT t.TableName,"
                         + " (SELECT COUNT(*) FROM AD_PrintFormat x WHERE x.AD_ReportView_ID=rv.AD_ReportView_ID AND x.AD_Client_ID=c.AD_Client_ID) AS Count,"
                         + " COALESCE (cpc.AD_PrintColor_ID, pc.AD_PrintColor_ID) AS AD_PrintColor_ID,"
                         + " COALESCE (cpf.AD_PrintFont_ID, pf.AD_PrintFont_ID) AS AD_PrintFont_ID,"
                         + " COALESCE (cpp.AD_PrintPaper_ID, pp.AD_PrintPaper_ID) AS AD_PrintPaper_ID,"
                         + " t.AD_Table_ID "
                         + "FROM AD_ReportView rv"
                         + " INNER JOIN AD_Table t ON (rv.AD_Table_ID=t.AD_Table_ID),"
                         + " AD_Client c"
                         + " LEFT OUTER JOIN AD_PrintColor cpc ON (cpc.AD_Client_ID=c.AD_Client_ID AND cpc.IsDefault='Y')"
                         + " LEFT OUTER JOIN AD_PrintFont cpf ON (cpf.AD_Client_ID=c.AD_Client_ID AND cpf.IsDefault='Y')"
                         + " LEFT OUTER JOIN AD_PrintPaper cpp ON (cpp.AD_Client_ID=c.AD_Client_ID AND cpp.IsDefault='Y'),"
                         + " AD_PrintColor pc, AD_PrintFont pf, AD_PrintPaper pp "
                         + "WHERE rv.AD_ReportView_ID='" + AD_ReportView_ID + "' AND c.AD_Client_ID='" + AD_Client_ID + "'"
                         + " AND pc.IsDefault='Y' AND pf.IsDefault='Y' AND pp.IsDefault='Y'";
            bool        error = true;
            IDataReader dr    = null;

            try
            {
                dr = SqlExec.ExecuteQuery.ExecuteReader(sql);
                while (dr.Read())
                {
                    //	Name
                    String name = ReportName;
                    if (name == null || name.Length == 0)
                    {
                        name = dr[0].ToString();                //	TableName
                    }
                    int count = Utility.Util.GetValueOfInt(dr[1].ToString());
                    if (count > 0)
                    {
                        name += "_" + count;
                    }
                    pf.SetName(name);
                    //
                    pf.SetAD_PrintColor_ID(Utility.Util.GetValueOfInt(dr[2].ToString()));
                    pf.SetAD_PrintFont_ID(Utility.Util.GetValueOfInt(dr[3].ToString()));
                    pf.SetAD_PrintPaper_ID(Utility.Util.GetValueOfInt(dr[4].ToString()));
                    //
                    pf.SetAD_Table_ID(Utility.Util.GetValueOfInt(dr[5].ToString()));
                    error = false;
                }
                dr.Close();
            }
            catch (Exception e)
            {
                if (dr != null)
                {
                    dr.Close();
                }
                s_log.Severe(e.ToString());
                //log. if any
            }
            if (error)
            {
                return(null);
            }

            //	Save & complete
            if (!pf.Save())
            {
                return(null);
            }
            //	pf.dump();
            pf.SetItems(CreateItems(ctx, pf));
            //
            return(pf);
        }       //	createFromReportView