private void ConvertFeaturetoElement(iFormBuilderAPI.Page page, IFeature feature) { try { //Create a New Record from this feature iFormBuilderAPI.RecordsCreator recC = new iFormBuilderAPI.RecordsCreator(); iFormBuilderAPI.Record rec = new iFormBuilderAPI.Record(); rec.PARENT_PAGE_ID = page.ID; rec.FIELDS = new List<iFormBuilderAPI.Field>(); iFormBuilderAPI.Field field = new iFormBuilderAPI.Field(); bool addfield = true; long recordid; foreach (iFormBuilderAPI.Element ele in page.Elements) { //Check to see if this an element to ignore if (ele.IgnoreElement) continue; //Does this field exist //TODO: Need further field validation steps //Does a Domain Field Have a Value //All required fields entered if (feature.Fields.FindField(ele.NAME) != -1) { field = new iFormBuilderAPI.Field(); field.ELEMENT_ID = ele.ID; field.VALUE = feature.get_Value(feature.Fields.FindField(ele.NAME)).ToString(); addfield = true; if (ele.WidgetType == iFormBuilderAPI.Element.Widget.Image) { //Only add this element if the picture is properly formated if (feature.get_Value(feature.Fields.FindField(ele.NAME)).ToString().Length == 0 || !feature.get_Value(feature.Fields.FindField(ele.NAME)).ToString().Contains(".jpg")) addfield = false; else field.EXT = "JPG"; } if (addfield) rec.FIELDS.Add(field); } } recC.RECORDS.Add(rec); recordid = api.CreateRecord(page.ID, recC); if (recordid != -1) { //TODO: Apply the record ID to this record to allow linkage to iFormBuilder /*IDataset dataset = feature.Table as IDataset; if(m_editor.EditState != esriEditState.esriStateEditing) m_editor.StartEditing(dataset.Workspace); m_editor.StartOperation(); ICursor update; QueryFilter qf = new QueryFilter(); qf.WhereClause = string.Format("OBJECTID={0}",feature.OID); update = feature.Table.Update(qf, true); IRow row = update.NextRow(); row.set_Value(feature.Fields.FindField("ID"), recordid); m_editor.StopOperation("Stop"); //if (m_editor.EditState != esriEditState.esriStateEditing) // m_editor.stop(dataset.Workspace);*/ } } catch { } }
/// <summary> /// Translates the iFormBuilder Field to Esri Field Type. /// </summary> /// <param name="element">a valid IElement from iFormAPI.</param> /// <returns>IFieldEdit</returns> public static IFieldEdit translateIFormToEsri(iFormBuilderAPI.IElement element,Option opt) { try { IFieldEdit fieldEdit = new FieldClass(); //Make sure the field name is valid string fieldname = Utilities.TranslateFieldName(element.NAME); if (fieldname.Length > 64) fieldname = fieldname.Substring(0, (64 - opt.KEY_VALUE.Length)); fieldEdit.Name_2 = string.Format("{0}{1}", fieldname, opt.KEY_VALUE); fieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger; string alias = string.Format("{0}:{1}", element.Alias, opt.LABEL); fieldEdit.AliasName_2 = TranslateAliasName(alias); return fieldEdit; } catch (Exception ex) { throw new Exception(string.Format("Error in Transforming Field class: {0} ", ex.Message)); } }
internal void AddItem(string itemName, iFormBuilderAPI.User user) { // Add each item to combo box. int cookie = s_comboBox.Add(itemName, user); }
/// <summary> /// Translates the iFormBuilder Field to Esri Field Type. /// </summary> /// <param name="element">a valid IElement from iFormAPI.</param> /// <returns>IFieldEdit</returns> public static IFieldEdit translateIFormToEsri(iFormBuilderAPI.IElement element) { try { IFieldEdit fieldEdit = new FieldClass(); //Make sure the field name is valid fieldEdit.Name_2 = Utilities.TranslateFieldName(element.NAME); switch (element.DATA_TYPE) { case 1: fieldEdit.Type_2 = esriFieldType.esriFieldTypeString; fieldEdit.Length_2 = element.DATA_SIZE; break; case 11: fieldEdit.Type_2 = esriFieldType.esriFieldTypeString; fieldEdit.Length_2 = 250; break; case 2: case 6: fieldEdit.Type_2 = esriFieldType.esriFieldTypeInteger; break; case 3: fieldEdit.Type_2 = esriFieldType.esriFieldTypeDate; break; //case 11: // fieldEdit.Type_2 = esriFieldType.esriFieldTypeRaster; // break; default: fieldEdit.Type_2 = esriFieldType.esriFieldTypeString; fieldEdit.Length_2 = 500; break; } fieldEdit.AliasName_2 = TranslateAliasName(element.Alias); return fieldEdit; } catch (Exception ex) { throw new Exception(string.Format("Error in Transforming Field class: {0} ", ex.Message)); } }