private string FormMapDB()
        {
            StringBuilder myHTML    = new StringBuilder();
            const string  sqlSelect = "so.id, so.name as dbtable,(select count(syscolumns.id) from syscolumns where syscolumns.id=so.id) as nbfields";

            ds = EvoDB.GetData(EvoDB.BuildSQL(sqlSelect, "sysobjects as so", whereMapDB, "dbtable", 500), _SqlConnection, ref ErrorMsg);
            DataTable t0 = ds.Tables[0];
            int       ml = t0.Rows.Count;

            if (ml > 0)
            {
                myHTML.Append("<p>Please select the database tables to build UI for:</p><p>");
                for (int i = 0; i < ml; i++)
                {
                    DataRow ri  = t0.Rows[i];
                    string  cId = ri["ID"].ToString();
                    myHTML.Append(EvoUI.HTMLInputCheckBox("table2map", cId, String.Format("{0} ({1} columns)", ri["dbtable"], ri["nbfields"]), false, cId));
                    myHTML.Append("</br>");
                }
                myHTML.Append("</p>");
            }
            else
            {
                return(EvoUI.HTMLMessage("No database objects available.", EvoUI.MsgType.Error));
            }
            return(myHTML.ToString());
        }
        private string FormInstall()
        {
            StringBuilder myHTML = new StringBuilder();
            bool          xmlOK  = false;
            XmlDocument   myDOM2 = new XmlDocument();

            try
            {
                myDOM2.Load(FileNameWithMask(_PathXML + "Wizard_Install.xml"));
                xmlOK = true;
            }
            catch                                                                                   //(Exception ex)
            {
                myHTML.Append(EvoUI.HTMLMessage("XML not found or invalid.", EvoUI.MsgType.Error)); //.Append(ex.Message);
            }
            if (xmlOK)
            {
                XmlNode nApps = myDOM2.SelectSingleNode("wizard_install");
                if (nApps != null)
                {
                    foreach (XmlNode nGroup in nApps.ChildNodes)
                    {
                        if (nGroup.NodeType == XmlNodeType.Element && nGroup.Name == "appgroup")
                        {
                            myHTML.AppendFormat("<p>{0}:</p>", nGroup.Attributes[xAttribute.label].Value);
                            foreach (XmlNode nApp in nGroup.ChildNodes)
                            {
                                string icon = String.Empty;
                                if (nApp.Attributes[xAttribute.icon] != null)
                                {
                                    icon = nApp.Attributes[xAttribute.icon].Value;
                                }
                                if (!String.IsNullOrEmpty(icon))
                                {
                                    icon = EvoUI.HTMLIcon(_PathPix, icon);
                                }
                                string label = icon + nApp.Attributes[xAttribute.label].Value;
                                string id    = nApp.Attributes["file"].Value;
                                if (id.Length > 0)
                                {
                                    id = id.Substring(0, id.Length - 4);
                                    myHTML.Append(EvoUI.HTMLInputCheckBox("frmID", id, label, false, id));
                                    myHTML.Append(EvoUI.tag_BR);
                                }
                            }
                        }
                    }
                }
                else
                {
                    myHTML.Append(EvoUI.HTMLMessage("XML is invalid.", EvoUI.MsgType.Error));
                }
            }
            myDOM = null;
            myHTML.Append(EvoUI.tag_BR);
            return(myHTML.ToString());
        }
        private string FormMapDB_Objects()
        {
            //Strategies (proposal universes like BO)

            StringBuilder myHTML = new StringBuilder();
            StringBuilder html = new StringBuilder();
            string        sql, buffer, buffer2, pkName = "ID";
            int           j, f = 0;
            DataSet       ds = new DataSet();
            string        myTable, prevTable;
            int           myFormID = 0, myPanelID = 0;
            StringBuilder sqlsb = new StringBuilder();
            const string  coma  = ",";

            sqlsb.Append("SELECT sc.id,so.name as dbtable,sc.name as dbcolumn,sc.xtype,sc.length,sc.isnullable ");
            sqlsb.Append("FROM sysobjects as so, syscolumns as sc (nolock) ");
            sqlsb.Append("WHERE sc.id=so.id AND ");
            sqlsb.Append(whereMapDB);
            if ((GetPageRequest("table2map") != null))
            {
                buffer = GetPageRequest("table2map").ToString();
                sqlsb.Append(" AND so.id in (").Append(EvoDB.SQLescape(buffer)).Append(") ");
            }
            sqlsb.Append(" order by so.name,sc.colid");
            ds = EvoDB.GetData(sqlsb.ToString(), _SqlConnection, ref ErrorMsg);
            if (ds != null)
            {
                html.Append("<p>Your tables are roughly mapped. The Web UI is ready to use, refine, and tune.</p>");
                prevTable = "";
                //######### Form #########
                int MaxLoop = ds.Tables[0].Rows.Count;
                html.Append("<ul>");
                for (int i = 0; i < MaxLoop; i++)
                {
                    myTable = ds.Tables[0].Rows[i][xAttribute.dbTable].ToString();
                    myTable = myTable.Replace("'", "");
                    if (myTable != prevTable)
                    {
                        //get PK name
                        sqlsb = new StringBuilder();
                        sqlsb.Append("SELECT CU.Column_Name ");
                        sqlsb.Append("FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE CU inner join ");
                        sqlsb.Append(" INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC on CU.Constraint_Name=TC.Constraint_Name ");
                        sqlsb.Append("WHERE CU.table_name = '").Append(myTable).Append("' AND TC.Constraint_Type='PRIMARY KEY' ");
                        sqlsb.Append("ORDER BY CU.Table_Name ");
                        pkName = EvoDB.GetDataScalar(sqlsb.ToString(), _SqlConnection, ref ErrorMessage).ToUpper();
                        if (string.IsNullOrEmpty(pkName))
                        {
                            pkName = "ID";
                        }
                        //+ dborder, spget, spdelete, entity, xmlfile) "
                        sqlsb = new StringBuilder();
                        sqlsb.AppendFormat("'{0}','{1}','{2}',", EvoTC.ToUpperLowers(myTable.Replace("_", " ")), myTable, pkName);
                        sqlsb.AppendFormat("'Definition obtained from scan table ''{0}'' with Evolutility wizard on {1}.'", myTable, EvoTC.TextNow());
                        sqlsb.Append(",'").Append(PagingSPCall);
                        sqlsb.Append("','EvoSP_Login @login, @password'");
                        sql      = EvoDB.sqlINSERT("EvoDico_form", "title, dbtable, dbcolumnpk, description, sppaging, splogin", sqlsb.ToString());
                        sql     += EvoDB.SQL_IDENTITY;
                        myFormID = EvoTC.String2Int(EvoDB.GetDataScalar(sql, _SqlConnectionDico, ref ErrorMessage));
                        if (myFormID > 0)
                        {
                            //######### Panel #########
                            myPanelID = EvoTC.String2Int(EvoDB.GetDataScalar("SELECT max(ID) FROM EvoDico_Panel WHERE FormID=" + myFormID.ToString(), _SqlConnectionDico, ref ErrorMessage));
                            if (myPanelID == 0)
                            {
                                sqlsb = new StringBuilder();
                                sqlsb.Append("INSERT INTO EvoDico_Panel (FormID, label, Width) VALUES(");
                                sqlsb.AppendFormat("{0},'{1}',100)", myFormID, myTable);
                                sqlsb.Append(EvoDB.SQL_IDENTITY);
                                myPanelID = EvoTC.String2Int(EvoDB.GetDataScalar(sqlsb.ToString(), _SqlConnectionDico, ref ErrorMessage));
                            }
                        }
                        else
                        {
                            ErrorMsg += "BAD SQL<br/>" + sql;
                        }
                        html.AppendFormat("<li>{0} : ", myTable);
                        html.Append("&nbsp;<a href=\"evodicoTest.aspx?formID=").Append(myFormID).Append("\" target=\"r\">Run").Append(EvoUI.HTMLFlagPopup).Append("</a>");
                        html.Append(" - <a href=\"evodicoForm.aspx?ID=").Append(myFormID).Append("\" target=\"d\">Design").Append(EvoUI.HTMLFlagPopup).Append("</a></li>");
                        prevTable = myTable;
                        f         = 0;
                    }
                    //######### Fields #########
                    //'buffer = CStr(ds.Tables[0].Rows[i][xAttribute.dbColumn))
                    buffer = ds.Tables[0].Rows[i][xAttribute.dbColumn].ToString();
                    if (buffer.ToUpper() != pkName)
                    {
                        f    += 1;
                        sqlsb = new StringBuilder();
                        sqlsb.Append("INSERT INTO EvoDico_Field (FormID, fpos, label, dbcolumn, dbcolumnread, typeid, height, width, maxlength, required, panelid, search, searchlist, searchadv)");
                        sqlsb.AppendFormat(" VALUES ({0},", myFormID);
                        if (buffer == "title")
                        {
                            sqlsb.Append("5,");
                        }
                        else if (buffer == "name")
                        {
                            sqlsb.Append("1,");
                        }
                        else
                        {
                            sqlsb.AppendFormat("{0},", i * 10);
                        }
                        buffer2 = buffer.Replace("_", " ").Replace("'", "''");
                        j       = buffer2.Length - 1;
                        if (j > 0)
                        {
                            buffer2 = EvoTC.ToUpperLowers(buffer2);
                        }
                        sqlsb.AppendFormat("'{0}','{1}','{1}',", buffer2, buffer);
                        j = -1;
                        int maxlength = EvoTC.String2Int(ds.Tables[0].Rows[i]["length"].ToString());
                        switch (EvoTC.String2Int(ds.Tables[0].Rows[i]["xtype"].ToString()))
                        {
                        case 127:
                        case 56:
                        case 52:
                        case 48:
                        case 36:
                            sqlsb.Append("10,1,20");                                      //"integer"
                            maxlength = 12;
                            break;

                        case 104:
                            sqlsb.Append("1,1,20");                                      //bool
                            maxlength = 0;
                            break;

                        case 61:
                            sqlsb.Append("17,1,30");                                      // t_datetime
                            maxlength = 25;
                            break;

                        case 106:
                        case 62:
                        case 60:
                        case 108:
                        case 59:
                        case 122:
                            sqlsb.Append("9,1,20");                                      //t_dec
                            maxlength = 12;
                            break;

                        case 58:
                            sqlsb.Append("2,1,30");                                      //t_date
                            maxlength = 20;
                            break;

                        case 189:
                            sqlsb.Append("18,1,30");                                      // t_time
                            maxlength = 12;
                            break;

                        case 99:
                        case 35:
                            sqlsb.Append("6,3,100");                                      // t_txtm
                            maxlength = maxlength / 2;
                            break;

                        default:
                            //175, 239, 231, 167
                            maxlength = maxlength / 2;
                            if (maxlength < 100)
                            {
                                sqlsb.Append("5,1,50");                                          //"text"
                            }
                            else if (maxlength < 200)
                            {
                                sqlsb.Append("5,1,100");                                          //"text"
                            }
                            else if (maxlength < 500)
                            {
                                sqlsb.Append("6,3,100");                                          //"textmul"
                            }
                            else
                            {
                                sqlsb.Append("6,5,100");                                          //"textmul"
                            }
                            break;
                        }
                        sqlsb.AppendFormat(",{0},", maxlength);
                        if (Convert.ToInt32(ds.Tables[0].Rows[i]["isnullable"]) > 0)
                        {
                            sqlsb.Append("0,");
                        }
                        else
                        {
                            sqlsb.Append("1,");
                        }
                        sqlsb.Append(myPanelID + coma);
                        if (f < 6)
                        {
                            sqlsb.Append("1,1");                               //search, searchlist
                        }
                        else if (f < 20)
                        {
                            sqlsb.Append("1,0");
                        }
                        else
                        {
                            sqlsb.Append("0,0");
                        }
                        sqlsb.Append(",1)");
                        buffer = EvoDB.RunSQL(sqlsb.ToString(), _SqlConnectionDico, false);
                        if (buffer != string.Empty)
                        {
                            ErrorMsg += string.Format("BAD SQL<br/>{0}<br/>{1}", sqlsb.ToString(), buffer);
                        }
                    }
                }
                html.Append("</ul>");
            }
            else
            {
                html.Append(EvoUI.HTMLMessage("No database tables were found. There is nothing to map.", EvoUI.MsgType.Warn));
            }
            html.Append("<br/>&nbsp;");
            return(html.ToString());
        }
        private string InstallApp(string XMLDefFile)
        {
            StringBuilder myHTML = new StringBuilder();
            bool          xmlOK = true;
            string        sql, dbr = null, errorMsg = null;
            string        checkMark = EvoUI.HTMLImgCheckMark(IEbrowser, _PathPix);

            myHTML.AppendFormat("<h2>{0}</h2>", XMLDefFile.Replace("_", ""));
            if (!string.IsNullOrEmpty(XMLDefFile))
            {
                XmlDocument myDOM2 = new XmlDocument();
                try
                {
                    myDOM2.Load(FileNameWithMask(_PathXML + string.Format("Setup\\{0}.xml", XMLDefFile)));
                }
                catch                 //(Exception ex)
                {
                    errorMsg = "XML not found or invalid";
                    xmlOK    = false;
                }
                if (xmlOK)
                {
                    string  t     = "";
                    XmlNode aNode = myDOM2.DocumentElement;
                    if (aNode.Name == "applicationcomponent")
                    {
                        sql = aNode["xml"].InnerText;
                        if (sql.StartsWith("<?xml"))
                        {
                            sql = xQuery.XMLHeader + sql;
                        }
                        aNode = aNode["sql"];
                        if (aNode.Attributes[xAttribute.dbTable] != null)
                        {
                            t = aNode.Attributes[xAttribute.dbTable].Value;
                            myHTML.AppendFormat("<p>DB Table: {0}</p>", t);
                        }
                        dicoXML2DB(sql, _SqlConnectionDico);
                        myHTML.Append("<div class=\"indent1\">");
                        if (string.IsNullOrEmpty(errorMsg))
                        {
                            myHTML.Append(checkMark).Append("Metadata<br>");
                        }
                        if (aNode.Attributes[xAttribute.dbTable] != null)
                        {
                            string tc = EvoDB.GetDataScalar(EvoDB.BuildSQL("count(*)", t), _SqlConnection, ref ErrorMsg);
                            if (EvoTC.isInteger(tc))
                            {
                                errorMsg = "Database table not created because it already exists.";
                            }
                            else
                            {
                                sql = aNode["create"].InnerText;
                                dbr = EvoDB.RunSQL(sql, _SqlConnection, false);
                                if (string.IsNullOrEmpty(dbr))
                                {
                                    myHTML.Append(checkMark).Append("Database structure<br>");
                                }
                                else
                                {
                                    errorMsg = dbr;
                                }
                            }
                            if (string.IsNullOrEmpty(dbr))
                            {
                                int i = EvoTC.String2Int(tc);
                                if (i == 0)
                                {
                                    sql = aNode["seed"].InnerText;
                                    dbr = EvoDB.RunSQL(sql, _SqlConnection, false);
                                    if (string.IsNullOrEmpty(dbr))
                                    {
                                        myHTML.Append(checkMark).Append("Seed data<br>");
                                        sql = aNode["sample"].InnerText;
                                        dbr = EvoDB.RunSQL(sql, _SqlConnection, false);
                                        if (string.IsNullOrEmpty(dbr))
                                        {
                                            myHTML.Append(checkMark).Append("Sample data<br>");
                                        }
                                        else
                                        {
                                            errorMsg = dbr;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                errorMsg = dbr;
                            }
                        }
                        myHTML.Append("</div>");
                    }
                }
                if (!string.IsNullOrEmpty(errorMsg))
                {
                    myHTML.Append(EvoUI.HTMLMessage(errorMsg, EvoUI.MsgType.Error));
                }
            }
            myHTML.Append(HTMLToolsLink(FormID.ToString(), "")).Append("</p>");
            return(myHTML.ToString());
        }
Beispiel #5
0
        private string dicoXML2DB(string XML, string sqlConnectionDico)
        {
            string sqlstart1, sqlstart2;
            int    FormID = 0, PanelID;
            int    maxLoopP = 0;
            string sqllog   = null;

            Data          def_Data = new Data();
            StringBuilder allSQL   = new StringBuilder();

            try
            {
                myDOM.LoadXml(XML);
            }
            catch
            {
                allSQL = new StringBuilder();
                allSQL.Append(EvoUI.HTMLMessage("<p>Invalid XML. Please validate your XML with Evolutility.xsd.</p>", EvoUI.MsgType.Error));
                //allSQL.Append(HttpUtility.HtmlEncode(XML));
                return(allSQL.ToString());
            }
            XmlNamespaceManager nsManager = new XmlNamespaceManager(new NameTable());

            nsManager.AddNamespace("evo", xQuery.evoNameSpace);
            XmlNode aNode = myDOM.DocumentElement;

            if (aNode != null && aNode.Name == xElement.form)
            {
                if (aNode.Attributes[xAttribute.label] != null)
                {
                    def_Data.title = aNode.Attributes[xAttribute.label].InnerXml;
                }
                try
                {
                    def_Data = Data.Deserialize(aNode[xElement.data]);
                }
                catch
                {
                    ErrorMsg = "Invalid XML file. The element 'data' must have attributes.";
                }
            }
            StringBuilder sbSQL   = new StringBuilder();
            StringBuilder sqlFull = new StringBuilder();

            if (string.IsNullOrEmpty(ErrorMsg))
            {
                //######### Form #########
                sbSQL.Append("INSERT INTO EvoDico_Form(title,dbtable,dbcolumnpk,dbcolumnlead,dbwhere,dborder,sppaging,splogin,spget,spdelete,entity,entities,icon,description) ");
                sbSQL.Append("VALUES('").Append(EvoDB.SQLescape(def_Data.title)).AppendFormat("','{0}','{1}','{2}','{3}','{4}','", def_Data.dbtable, def_Data.dbcolumnpk, def_Data.dbcolumnlead, def_Data.dbwhere, def_Data.dborder);
                sbSQL.Append(EvoDB.SQLescape(def_Data.sppaging));
                sbSQL.Append("','").Append(EvoDB.SQLescape(def_Data.splogin)).Append("','").Append(EvoDB.SQLescape(def_Data.spget)).Append("','");
                sbSQL.Append(EvoDB.SQLescape(def_Data.spdelete)).AppendFormat("','{0}','{1}','{2}','", EvoDB.SQLescape(def_Data.entity), EvoDB.SQLescape(def_Data.entities), EvoDB.SQLescape(def_Data.icon));
                sbSQL.AppendFormat("XML import on {0}')", EvoTC.TextNowTime());
                sbSQL.Append(EvoDB.SQL_IDENTITY);
                FormID = EvoTC.String2Int(EvoDB.GetDataScalar(sbSQL.ToString(), sqlConnectionDico, ref ErrorMessage));
                if (FormID > 0 && string.IsNullOrEmpty(ErrorMsg))
                {
                    //######### Panels #########
                    XmlNodeList aNodeListPanels = myDOM.DocumentElement.SelectNodes(xQuery.panel, nsManager);
                    maxLoopP = aNodeListPanels.Count - 1;
                    if (maxLoopP == -1)
                    {
                        aNodeListPanels = myDOM.DocumentElement.SelectNodes("//evo:tab/evo:panel", nsManager);
                        maxLoopP        = aNodeListPanels.Count - 1;
                    }
                    sqlFull = new StringBuilder();
                    for (int p = 0; p <= maxLoopP; p++)
                    {
                        XmlNode pNode = aNodeListPanels[p];
                        sbSQL = new StringBuilder();
                        sbSQL.Append("INSERT INTO EvoDico_Panel (FormID, label, Width, cssclass, cssclasslabel) VALUES(");
                        sbSQL.AppendFormat("{0},", FormID);
                        sbSQL.AppendFormat("'{0}',", EvoDB.SQLescape(pNode.Attributes[xAttribute.label].Value));
                        sbSQL.AppendFormat("{0},", pNode.Attributes[xAttribute.width].Value);
                        if (pNode.Attributes[xAttribute.cssClass] != null)
                        {
                            sbSQL.AppendFormat("'{0}',", EvoDB.SQLescape(pNode.Attributes[xAttribute.cssClass].Value));
                        }
                        else
                        {
                            sbSQL.Append("'',");
                        }
                        if (pNode.Attributes[xAttribute.cssClassLabel] != null)
                        {
                            sbSQL.AppendFormat("'{0}')", EvoDB.SQLescape(pNode.Attributes[xAttribute.cssClassLabel].Value));
                        }
                        else
                        {
                            sbSQL.Append("'')");
                        }
                        sbSQL.Append(EvoDB.SQL_IDENTITY);
                        PanelID = EvoTC.String2Int(EvoDB.GetDataScalar(sbSQL.ToString(), sqlConnectionDico, ref ErrorMessage));
                        if (PanelID > 0 && string.IsNullOrEmpty(ErrorMsg))
                        {
                            //######### Fields #########
                            sqlstart1 = "INSERT INTO EvoDico_Field (FormID,";
                            sqlstart2 = string.Format(") VALUES ({0},", FormID);
                            foreach (XmlNode aNode2 in pNode.ChildNodes)
                            {
                                StringBuilder sbSQL1 = new StringBuilder();
                                StringBuilder sbSQL2 = new StringBuilder();
                                sbSQL1.Append(sqlstart1);
                                sbSQL2.Append(sqlstart2);
                                foreach (XmlAttribute aAttribute2 in aNode2.Attributes)
                                {
                                    string buffer2 = aAttribute2.Name;
                                    string buffer  = aAttribute2.Value;
                                    switch (buffer2)
                                    {
                                    case "panelid":
                                        break;

                                    default:
                                        if (EvoTC.isInteger(buffer))
                                        {
                                            sbSQL1.AppendFormat("[{0}],", buffer2);
                                            sbSQL2.AppendFormat("{0},", buffer);
                                        }
                                        else
                                        {
                                            if (buffer2 == xAttribute.type)
                                            {
                                                sbSQL1.Append("typeid,");
                                                sbSQL2.AppendFormat("{0},", FieldTypeID(buffer));
                                            }
                                            else if (buffer != string.Empty)
                                            {
                                                sbSQL1.AppendFormat("[{0}],", buffer2);
                                                sbSQL2.AppendFormat("'{0}',", EvoDB.SQLescape(buffer));
                                            }
                                        }
                                        break;
                                    }
                                }
                                sqlFull.Append(sbSQL1).Append("PanelID").Append(sbSQL2).Append(PanelID).Append(");\n");
                            }
                        }
                    }
                    string buff = EvoDB.RunSQL(sqlFull.ToString(), sqlConnectionDico, true);
                    if (!string.IsNullOrEmpty(buff))
                    {
                        ErrorMsg += buff;
                    }
                    //'######### Panels Details #########
                    //aNodeListPanels = myDOM.DocumentElement.SelectNodes("//panel-details", nsManager)
                    //maxLoopP = aNodeListPanels.Count - 1
                    //sqlstart1 = "INSERT INTO EvoDico_FieldDetails (FormID,"
                    //For p = 0 To maxLoopP
                    // With aNodeListPanels[p]
                    // Sql = "INSERT INTO EvoDico_Panel (TypeID, FormID, label, Width, dbtabledetails, dbcolumndetails) VALUES(2," & CInt(FormID) & ",'"
                    // Sql += .Attributes(xAttribute.label).Value & "'," & .Attributes(xAttribute.width).Value & ",'" & .Attributes(xAttribute.dbTableDetails).Value & "','" & .Attributes(xAttribute.dbColumnDetails).Value & "')"
                    // Buffer = EvoDB.RunSQL(Sql, sqlConnectionDico, True)
                    // If Buffer = "" Then
                    // PanelID = CInt(GetDataScalar(EvoDB.BuildSQL("max(ID)", "EvoDico_Panel", "TypeID=2 AND FormID=" & CStr(FormID)), sqlConnectionDico))
                    // '######### Fields Details #########
                    // sqlstart2 = ") VALUES (" & FormID & coma
                    // sqlFull = ""
                    // For Each aNode In .ChildNodes
                    // Sql = sqlstart1
                    // sql2 = sqlstart2
                    // For Each aAttribute In aNode.Attributes
                    // Buffer = aAttribute.Value
                    // dbcolumn = aAttribute.Name
                    // If InStr("-type-panelid-panelindex-label-dbcolumn-dbcolumnread-dbcolumnimg-dbtablelov-dborderlov-dbcolumnreadlov-dblovcolumn-dbwherelov-validationrule-maxlength-readonly-required-optional-format-fpos-link-linklabel-linktarget-searchlist-cssclass-width-", "-" & LCase(dbcolumn) & "-") > 0 Then
                    // If IsNumeric(Buffer) AndAlso Not dbcolumn = xAttribute.format Then
                    // Sql += dbcolumn & coma
                    // sql2 += Buffer & coma
                    // Else
                    // If aAttribute.Name = xAttribute.type Then
                    // Sql += "typeid,"
                    // sql2 += FieldTypeID(Buffer) & coma
                    // Else
                    // If Buffer <> String.Empty Then
                    // Sql += "[" & dbcolumn & "],"
                    // sql2 += "'" & EvoDB.SQLescape(Buffer) & "',"
                    // End If
                    // End If
                    // End If
                    // End If
                    // Next
                    // 'If InStr(sql, "panelid") = 0 Then
                    // ' sql += "PanelID,"
                    // ' sql2 += CStr(Val(PanelID))
                    // 'End If
                    // sqlFull += Sql & "userid" & sql2 & UserID & ");"
                    // Next
                    // End If
                    // End With
                    // Buffer = EvoDB.RunSQL(sqlFull, sqlConnectionDico, True)
                    // If Buffer <> String.Empty Then sqllog += Buffer & vbCrLf & Sql & vbCrLf2
                    //Next
                    //End If
                    if (!string.IsNullOrEmpty(sqllog))
                    {
                        ErrorMsg = sqllog.Replace("\n\n\n", "");
                    }
                }
            }
            string retVal = String.Format("{0} {1}", def_Data.title, HTMLToolsLink(FormID.ToString(), ""));

            def_Data  = null;
            nsManager = null;
            myDOM     = null;
            return(retVal);
        }
Beispiel #6
0
        private string FormBuild_DataDefDetails()
        {
            StringBuilder myHTML = new StringBuilder();

            string buffer2, buffer3;
            bool   YesNo = false;


            ds = EvoDB.GetData(EvoDB.BuildSQL("ID,label,typeid,typepix,type", "EvoDico_xfield", "formID=" + AppID, "ID", 0), _SqlConnectionDico, ref ErrorMsg);
            if (ds != null)
            {
                // ORDER BY positionlist
                DataTable t0 = ds.Tables[0];
                {
                    for (int i = 0; i < t0.Rows.Count; i++)
                    {
                        myHTML.Append(EvoUI.HTMLInputHidden("f_id" + (i + 1).ToString(), t0.Rows[i]["ID"].ToString()));
                    }
                    myHTML.Append(HTMLStepTableHeader(2));
                    for (int i = 0; i < t0.Rows.Count; i++)
                    {
                        buffer3 = ClassEvenOrOdd(YesNo);
                        myHTML.Append(EvoUI.TRcssEvenOrOdd(YesNo));
                        myHTML.Append("<tr").Append(buffer3).Append(" valign=\"top\"><td>");
                        myHTML.Append(EvoUI.HTMLIcon(_PathPix, t0.Rows[i]["typepix"].ToString(), t0.Rows[i]["type"].ToString()));
                        if (t0.Rows[i][xAttribute.label] != null)
                        {
                            myHTML.Append(t0.Rows[i][xAttribute.label].ToString());
                        }
                        myHTML.Append("</td><td>");
                        buffer2 = (i + 1).ToString();
                        int fieldTypeID = Convert.ToInt32(t0.Rows[i]["typeid"]);
                        switch (fieldTypeID)
                        {
                        case 5:                                 //txt
                            myHTML.Append("Max.Length ");
                            myHTML.Append(EvoUI.HTMLInputText("F_len" + buffer2, "100", 3));
                            break;

                        case 6:                                 //txt multiline
                        case 8:                                 //html
                            myHTML.Append("Max.Length ");
                            myHTML.Append(EvoUI.HTMLInputText("F_len" + buffer2, "100", 5));
                            myHTML.Append("Height ");
                            myHTML.Append(EvoUI.HTMLInputText("f_h" + buffer2, "3", 2));
                            break;

                        case 4:                                 //lov
                            myHTML.Append("List of Values (comma separated) <textarea style=\"width:100%;\" class=\"Field\" rows=\"3\" cols=\"52\" name=\"f_op").Append(buffer2);
                            myHTML.Append("\" onKeyUp=\"EvoVal.checkMaxLen(this,1000)\"></textarea>");
                            break;

                        case 2:                                 //date
                        case 17:                                //date-time
                        case 18:                                //time
                            myHTML.Append("Format <select ").Append(buffer3).Append(" name=\"f_ft").Append(buffer2).Append("\">");
                            myHTML.Append(HTMLOptionsDateFormats(fieldTypeID));
                            myHTML.Append("</select>");
                            break;

                        case 9:                                 //decimal
                        case 10:                                //integer
                            myHTML.Append("Format <input class=\"Field\" ").Append(buffer3).Append(" name=\"f_ft").Append(buffer2).Append("\" value=\"\" maxlength=\"12\">");
                            break;

                        case 1:                                 //boolean
                            myHTML.Append("Picture <select ").Append(buffer3).Append(" name=\"f_ft").Append(buffer2).Append("\">");
                            myHTML.Append("<option value=\"\" selected>- Default -");
                            myHTML.Append(EvoUI.HTMLOption("checkr.gif", "Red checkmark"));
                            myHTML.Append(EvoUI.HTMLOption("checkg.gif", "Green checkmark"));
                            myHTML.Append(EvoUI.HTMLOption(EvoUI.PixCheck, "Black checkmark"));
                            myHTML.Append("</select>");
                            break;

                        default:
                            myHTML.Append(lang_NA);
                            break;
                        }
                        if (fieldTypeID == 1)
                        {
                            // booleans cannot be required
                            myHTML.Append("<td></td></tr>");
                        }
                        else
                        {
                            myHTML.Append("<td><input type=\"checkbox\" name=\"f_rq").Append(buffer2);
                            if (i < 4)
                            {
                                myHTML.Append(EvoUI.qChecked);
                            }
                            myHTML.Append("\" value=\"1\"></td></tr>");
                        }
                        YesNo = !YesNo;
                    }
                    myHTML.Append("</table></span>");
                }
            }
            else
            {
                myHTML.Append(EvoUI.HTMLMessage("There was an error.", EvoUI.MsgType.Info));
            }
            return(myHTML.ToString());
        }