Пример #1
0
        public void btnPreviewOsql_Click(Office.IRibbonControl control)
        {
            _isForceDisablePreviewOsql = false;
            Document doc = Wkl.MainCtrl.CommonCtrl.CommonProfile.ActiveDoc;

            try
            {
                //Validate document
                string mgrKey = string.Empty;
                Pdw.WKL.Profiler.Manager.ManagerProfile mgrPro = Wkl.MainCtrl.ManagerCtrl.CreateProfile(out mgrKey);
                mgrPro.WdColorIndex   = DefineColors.GetColor(selectedColor).Color;
                mgrPro.IsSaveDocument = false;

                ContextValidator validator = new ContextValidator(doc);
                validator.ValidateBeforeSave(mgrKey);

                //If document has invalid bookmarks
                if (!mgrPro.IsCorrect)
                {
                    //Ask user to remove invalid bookmarks
                    mgrPro.WDoc = doc;
                    Hcl.SaveMessageDialog saveNotify  = new Hcl.SaveMessageDialog(mgrKey);
                    DialogResult          userConfirm = saveNotify.ShowDialog();

                    if (userConfirm != DialogResult.OK || !HasSelectIBM())
                    {
                        return;
                    }
                }

                //Build and show osql
                PdwInfo pdwInfo = GetPdwInfo(doc);

                ChecksumInfo checkSum = ProntoDoc.Framework.Utils.ObjectSerializeHelper.Deserialize <ChecksumInfo>(pdwInfo.ChecksumString);
                OsqlXml      osqlXml = ProntoDoc.Framework.Utils.ObjectSerializeHelper.Deserialize <OsqlXml>(pdwInfo.OsqlString);
                string       renderArgument, jRenderArgument;
                GetRenderArguments(checkSum, out renderArgument, out jRenderArgument);

                Pdw.PreviewOsql.PreviewOsqlForm previewDialog = new Pdw.PreviewOsql.PreviewOsqlForm();
                previewDialog.Osql            = osqlXml.GetOsql("/*------------------------------------*/");
                previewDialog.JOsql           = osqlXml.GetJsql("/*------------------------------------*/");
                previewDialog.Xsl             = pdwInfo.XsltString;
                previewDialog.RenderArgument  = renderArgument;
                previewDialog.JRenderArgument = jRenderArgument;
                previewDialog.CheckSumInfo    = checkSum;
                previewDialog.OsqlXml         = osqlXml;
                previewDialog.ShowDialog();
            }
            catch { }
        }
Пример #2
0
        public void GenOsql(List <DomainInfo> domains, InternalBookmark ibm)
        {
            OsqlString        = string.Empty;
            Ibm               = ibm.Clone();
            ChecksumInfoItems = new List <ChecksumInfoItem>();
            OsqlXml           = new OsqlXml();

            int domainIndex = 1;

            foreach (DomainInfo domain in domains)
            {
                BaseGenOsqlHelper genHelper = null;
                ProntoDoc.Framework.CoreObject.AppDbTypes dbType = GetDatabaseType(domain);
                switch (dbType)
                {
                case ProntoDoc.Framework.CoreObject.AppDbTypes.Oracle:
                    genHelper = new GenOsqlOracleHelper();
                    break;

                case ProntoDoc.Framework.CoreObject.AppDbTypes.Sql:
                    genHelper = new GenOsqlSql08Helper();
                    break;

                default:
                    break;
                }

                if (genHelper != null)
                {
                    genHelper.GenOsql(domain, Ibm, domainIndex);
                    // genHelper.ChecksumInfoItem.DocumentSpecificColor = ibm.DocumentSpecificColor; // replace for BaseGenOsqlHelper
                    ChecksumInfoItems.Add(genHelper.ChecksumInfoItem);
                    OsqlXml.OsqlXmlItems.Add(genHelper.OsqlXmlItem);
                }

                domainIndex++;
            }

            OsqlString = ProntoDoc.Framework.Utils.ObjectSerializeHelper.SerializeToString <OsqlXml>(OsqlXml);
        }
Пример #3
0
        private string ProcessOsqlGetAppData(ChecksumInfoItem item, RenderArgDomainValue renderArgumentValue, string conn, OsqlXml osqlXml)
        {
            string osqlData = string.Empty;

            foreach (var osqlItem in osqlXml.OsqlXmlItems)
            {
                if (string.Compare(osqlItem.DomainName, renderArgumentValue.Name, true) == 0)
                {
                    osqlData = GetDataAgrumentValueWithDBType(item, osqlItem.Osql, renderArgumentValue, conn);
                }
            }
            return(osqlData);
        }
Пример #4
0
        public Dictionary <string, string> GetOsqlDataFromAppDB(List <ChecksumInfoItem> checksumItems, RenderArgumentValue renderArgumentValue, MDB mdb, OsqlXml osqlXml, ref string msg)
        {
            Dictionary <string, string> dicOsqlResult = new Dictionary <string, string>();
            Validator validator = new Validator();

            bool isValid = true;
            //Get list DBID , Connection string and validate DBID
            Dictionary <string, string> lstAppDb = GetDBID(mdb.ListAppDB, ref msg);

            //Validate DBID
            List <string> lstDBID = lstAppDb.Keys.ToList();

            isValid &= Validator.ValidateDBID(checksumItems, lstDBID, ref msg);

            foreach (var appdb in lstAppDb)
            {
                List <ChecksumInfoItem> lstCheckSumItems = checksumItems.Where(x => string.Compare(x.DBID, appdb.Key, true) == 0).ToList();

                if (lstCheckSumItems.Count() > 0)
                {
                    //2. Execute all Osqls, get data for domains
                    foreach (ChecksumInfoItem item in lstCheckSumItems)
                    {
                        RenderArgDomainValue domainRenderArgValue = new RenderArgDomainValue();
                        try
                        {
                            domainRenderArgValue = renderArgumentValue.Domains.First(c => c.Name == item.DomainName);
                        }
                        catch (Exception)
                        { msg += item.DomainName + " not match with input info !!! \n"; }

                        //Validate RenderArgumentDomainValue
                        isValid &= validator.ValidateRenderArgumentDomainValue(item, domainRenderArgValue, ref msg);

                        string result = ProcessOsqlGetAppData(item, domainRenderArgValue, appdb.Value, osqlXml);

                        string encodedDomainName = XmlHelper.Encode(item.DomainName);
                        dicOsqlResult.Add(encodedDomainName, result);
                    }
                }
            }

            if (!isValid)
            {
                throw new Exception(msg);
            }

            //3. Return result of all Osql executed on a Database
            return(dicOsqlResult);
        }