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(" <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/> "); 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()); }
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); }
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()); }