Exemplo n.º 1
0
        private static XmlDocument GetMenu(OracleConnection connection, XmlNode apiNode, IfsProperties ifsProperties)
        {
            XmlNodeList parameters = apiNode.ChildNodes;

            XmlNode menuDoc  = null;
            string  menuName = ifsProperties.DefaultMenu;

            for (int i = 0; (i < parameters.Count); i += 1)
            {
                for (int j = 0; (j < parameters[i].Attributes.Count); j += 1)
                {
                    XmlAttribute attribute = parameters[i].Attributes[j];
                    switch (attribute.Value)
                    {
                    case "menu_doc_":
                        menuDoc = parameters[i];
                        break;

                    case "menu_name_":
                        menuName = ((XmlText)parameters[i].FirstChild).Value;
                        ifsProperties.CurrentMenu = menuName;
                        break;
                    }
                }
            }



            OracleQueryBuilder menuQuery = new OracleQueryBuilder(ifsProperties.AppOwner);

            // menuQuery.AddSelect("PROMPT", "", "", "", "");
            menuQuery.AddFrom("ESI_SW_MENU_SYSTEM");
            menuQuery.AddSelect("PROMPT", "", "", "", "");
            menuQuery.AddSelect("TRANSACTION", "", "", "", "");
            //           menuQuery.AddSelect("API", "", "", "", "");
            menuQuery.AddSelect("SUBMENU", "", "", "", "");
            menuQuery.AddSelect("ICON", "", "", "", "");
            //          menuQuery.AddFrom("ESI_SW_MENU_SYSTEM");
            menuQuery.AddWhere("CONTRACT", ifsProperties.DefaultContract, "=", "", false, "");
            menuQuery.AddWhere("MENU_NAME", menuName, "=", "", false, "");
            menuQuery.AddOrder("RANK", "", "");

/*
 *          using (OracleCommand cmd = connection.CreateCommand())
 *          {
 *              cmd.CommandText = "select prompt, transaction_name, submenu, icon from esi_scanworks_menus_tab where menu_name = :menuName order by rank";
 *              cmd.6t0.Add("menuName", OracleType.VarChar).Value = menuName;
 */

            bool noEscapeItem = true;

            using (OracleDataReader reader = menuQuery.Execute(connection))
            {
                IfsMenuItem.MenuItemRecord menuItemRecord = new IfsMenuItem.MenuItemRecord();

                while (reader.Read())
                {
                    menuItemRecord.Prompt          = reader.GetString(0);
                    menuItemRecord.TransactionName = reader.GetString(1);
                    menuItemRecord.Api             = reader.GetString(1);
                    menuItemRecord.SubMenu         = reader.GetString(2);
                    menuItemRecord.Icon            = reader.GetOracleLob(3);

                    XmlElement menuItem = IfsMenuItem.BuildElement(menuItemRecord, apiNode.OwnerDocument, connection);

                    menuDoc.AppendChild(menuItem);

                    if (menuItemRecord.TransactionName.Equals("LOGOFF") || menuItemRecord.TransactionName.Equals("RETURN"))
                    {
                        noEscapeItem = false;
                    }
                }
            }

            if (noEscapeItem)
            {
                OracleQueryBuilder iconQuery = new OracleQueryBuilder(ifsProperties.AppOwner);

                // menuQuery.AddSelect("PROMPT", "", "", "", "");
                iconQuery.AddFrom("ESI_SW_ICONS");
                iconQuery.AddSelect("ICON_FILE", "", "", "", "");
                iconQuery.AddWhere("ICON", "ShutDown", "=", "", false, "");

                using (OracleDataReader reader = iconQuery.Execute(connection))
                {
                    IfsMenuItem.MenuItemRecord menuItemRecord = new IfsMenuItem.MenuItemRecord();

                    while (reader.Read())
                    {
                        menuItemRecord.Prompt          = "Logoff";
                        menuItemRecord.TransactionName = "LOGOFF";
                        menuItemRecord.Api             = "LOGOFF";
                        menuItemRecord.SubMenu         = "*";
                        menuItemRecord.Icon            = reader.GetOracleLob(0);

                        XmlElement menuItem = IfsMenuItem.BuildElement(menuItemRecord, apiNode.OwnerDocument, connection);

                        menuDoc.AppendChild(menuItem);
                    }
                }

/*
 *                  iconQuery = new OracleQueryBuilder(ifsProperties.AppOwner);
 *
 *                  iconQuery.AddFrom("ESI_SW_ICONS");
 *                  iconQuery.AddSelect("ICON", "", "", "", "");
 *                  iconQuery.AddWhere("ICON_NAME", "ShutDown", "=", "", false, "");
 *
 *                  using (OracleDataReader reader = menuQuery.Execute(connection))
 *                  {
 *                      IfsMenuItem.MenuItemRecord menuItemRecord = new IfsMenuItem.MenuItemRecord();
 *
 *                      while (reader.Read())
 *                      {
 *
 *                          menuItemRecord.Prompt = "Logoff";
 *                          menuItemRecord.TransactionName = "LOGOFF";
 *                          menuItemRecord.Api = "Logoff";
 *                          menuItemRecord.SubMenu = "";
 *                          menuItemRecord.Icon = reader.GetOracleLob(3);
 *
 *                          XmlElement menuItem = IfsMenuItem.BuildElement(menuItemRecord, apiNode.OwnerDocument, connection);
 *
 *                          menuDoc.AppendChild(menuItem);
 *
 *                      }
 *                  }*/
            }
            //  }
            return(apiNode.OwnerDocument);
        }
Exemplo n.º 2
0
        //Constructor to create an initializer based on IFS transaction field values in the database and then sets
        //the transaction fields to these values
        public IfsFields(OracleConnection connection, string transaction, IfsProperties ifsProperties)
        {
            Hierarchy  = new List <string>();
            Initalizer = new Dictionary <string, IfsField>();
            Fields     = new Dictionary <string, IfsField>();

            //Build a query to get transaction fields
            OracleQueryBuilder fieldsQuery = new OracleQueryBuilder(ifsProperties.AppOwner);

            //Add Table to Select From
            fieldsQuery.AddFrom("ESI_SW_TRANSACTION_SYSTEM");

            //Add Fields to Select
            fieldsQuery.AddSelect("FIELD_ID", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");      //0
            fieldsQuery.AddSelect("PROMPT", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");        //1
            fieldsQuery.AddSelect("FIELD_NAME", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");    //2
            fieldsQuery.AddSelect("DEFAULT_VALUE", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //3
            fieldsQuery.AddSelect("MAX_LENGTH", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");    //4
            fieldsQuery.AddSelect("READ_ONLY", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");     //5
            fieldsQuery.AddSelect("UPPERCASE", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");     //6
            fieldsQuery.AddSelect("HAS_UOM", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");       //7
            fieldsQuery.AddSelect("LOV", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");           //8
            fieldsQuery.AddSelect("LOV_PROMPT", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");    //9
            fieldsQuery.AddSelect("LOV_ON_ENTRY", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");  //10
            fieldsQuery.AddSelect("LOV_READ_ONLY", "", "", "ESI_SW_TRANSACTION_SYSTEM", ""); //11
            fieldsQuery.AddSelect("CONFIGURABLE", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");  //12
            fieldsQuery.AddSelect("LOOKUP_TABLE", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");  //13
            fieldsQuery.AddSelect("ENABLED", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");       //14
            fieldsQuery.AddSelect("TRANSACTION", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");   //15
            fieldsQuery.AddSelect("TITLE", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");         //16
            fieldsQuery.AddSelect("API", "", "", "ESI_SW_TRANSACTION_SYSTEM", "");           //17

            //Add Query Criteria
            fieldsQuery.AddWhere("TRANSACTION", transaction, "=", "ESI_SW_TRANSACTION_SYSTEM", false, "");

            //Add Query Sorting
            fieldsQuery.AddOrder("HIERARCHY", "ESI_SW_TRANSACTION_SYSTEM", "");

            //Execute the query
            OracleDataReader results = fieldsQuery.Execute(connection);

            while (results.Read())
            {
                if (!results.IsDBNull(0))
                {
                    FieldCount++;

                    //Add each row to the Hierarchy in order
                    Hierarchy.Add(results.GetString(0));

                    //Create a field to store the values for each row
                    IfsField field = new IfsField();

                    //Set the field hierarchy to the value from the hierarchy
                    //                   field.Hierarchy = Hierarchy.IndexOf(results.GetString(0));

                    //Add row values to the field
                    field.Hierarchy        = FieldCount;
                    field.FieldID          = GetSafeDBString(results, 0) ?? "";
                    field.Prompt           = GetSafeDBString(results, 1) ?? "";
                    field.FieldName        = GetSafeDBString(results, 2) ?? "";
                    field.DefaultValue     = GetSafeDBString(results, 3) ?? "";
                    field.MaxLength        = GetSafeDBString(results, 4) ?? "-1";
                    field.ReadOnly         = results.GetString(5) == "Y" ? true : false;
                    field.Uppercase        = results.GetString(6) == "Y" ? true : false;
                    field.HasUom           = results.GetString(7) == "Y" ? true : false;
                    field.Lov              = GetSafeDBString(results, 8) ?? "";
                    field.LovPrompt        = GetSafeDBString(results, 9) ?? "";
                    field.LovOnEntry       = results.GetString(10) == "Y" ? true : false;
                    field.LovReadOnly      = results.GetString(11) == "Y" ? true : false;
                    field.Configurable     = results.GetString(12) == "Y" ? true : false;
                    field.Table            = GetSafeDBString(results, 13) ?? "";
                    field.Enabled          = results.GetString(14) == "Y" ? true : false;
                    field.Transaction      = GetSafeDBString(results, 15) ?? "";
                    field.TransactionTitle = GetSafeDBString(results, 16) ?? "";
                    field.API              = GetSafeDBString(results, 17) ?? "";
                    field.Value            = "";

                    //Add each field to the initializer
                    Initalizer.Add(field.FieldID, field);
                }
            }

            //Initalize the transaction fields to the intializer values
            Fields = InitializeFields(Initalizer);
        }