private void buttonOK_Click(object sender, EventArgs e) { StringMapList maps = new StringMapList(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string val = ValueConvertor.ToString(ds.Tables[0].Rows[i][1]); if (!string.IsNullOrEmpty(val)) { maps.AddFieldMap(ValueConvertor.ToString(ds.Tables[0].Rows[i][0]), val); } } DataEditorLookupDB edb = this.SelectedEditor as DataEditorLookupDB; if (edb != null) { edb.valuesMaps.AdditionalJoins = maps; this.DialogResult = DialogResult.OK; } else { WebDataEditorLookupDB wd = this.SelectedEditor as WebDataEditorLookupDB; if (wd != null) { wd.FieldsMap = maps; this.DialogResult = DialogResult.OK; } } }
void _webQuery_SqlChanged(object sender, EventArgs e) { WebDataEditorLookupDB wd = WebLookup; wd.SqlString = _webQuery.SqlQuery; wd.ConnectionID = _webQuery.ConnectionID; loadWebDataFields(); }
public static DlgSetEditorAttributes GetDatabaseLookupDataDialog(DataEditor current, DataEditor caller) { DataEditorLookupDB dbe0 = caller as DataEditorLookupDB; if (dbe0 != null) { DataEditorLookupDB dbe = current as DataEditorLookupDB; if (dbe == null) { dbe = new DataEditorLookupDB(); dbe.valuesMaps.AdditionalJoins = dbe0.valuesMaps.AdditionalJoins; } else { if (dbe0.valuesMaps.AdditionalJoins != null) { for (int i = 0; i < dbe0.valuesMaps.AdditionalJoins.Count; i++) { if (string.IsNullOrEmpty(dbe0.valuesMaps.AdditionalJoins[i].Source)) { string val = dbe.valuesMaps.GetMappedField(dbe0.valuesMaps.AdditionalJoins[i].Target); if (!string.IsNullOrEmpty(val)) { dbe0.valuesMaps.AdditionalJoins[i].Source = val; } } } dbe.valuesMaps.AdditionalJoins = dbe0.valuesMaps.AdditionalJoins; } } return(new DlgDataEditDatabaseLookup(dbe)); } else { WebDataEditorLookupDB wd0 = caller as WebDataEditorLookupDB; if (wd0 != null) { WebDataEditorLookupDB wd = current as WebDataEditorLookupDB; if (wd == null) { wd = (WebDataEditorLookupDB)wd0.Clone(); } else { if (wd0.FieldsMap != null) { wd.FieldsMap = wd0.FieldsMap; } } return(new DlgDataEditDatabaseLookup(wd)); } } return(null); }
public DlgDataEditDatabaseLookup(WebDataEditorLookupDB editor) : base(editor) { InitializeComponent(); // if (editor == null) { editor = new WebDataEditorLookupDB(); SetSelection(editor); } loadData(); }
public void loadData() { const string TABLENAME = "Links"; // WebDataEditorLookupDB wd = WebLookup; // ds.Tables.Clear(); ds.Tables.Add(TABLENAME); // ds.Tables[0].Columns.Add(); ds.Tables[0].Columns.Add(); // ds.Tables[0].Columns[0].Caption = "Fields to be Updated"; ds.Tables[0].Columns[0].ColumnName = "Destination"; ds.Tables[0].Columns[0].DataType = typeof(string); ds.Tables[0].Columns[0].MaxLength = 120; ds.Tables[0].Columns[0].ReadOnly = true; // ds.Tables[0].Columns[1].Caption = "Source Fields"; ds.Tables[0].Columns[1].ColumnName = "Source"; ds.Tables[0].Columns[1].DataType = typeof(string); ds.Tables[0].Columns[1].MaxLength = 120; // // dataGridView1.DataSource = ds; dataGridView1.DataMember = TABLENAME; dataGridView1.ReadOnly = true; dataGridView1.AllowUserToAddRows = false; dataGridView1.AllowUserToDeleteRows = false; dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; // cbx2 = new System.Windows.Forms.ComboBox(); cbx2.Parent = dataGridView1; cbx2.Visible = false; cbx2.Left = 0; cbx2.SelectedIndexChanged += new EventHandler(cbx2_SelectedIndexChanged); // _webQuery = new EasyQuery(); _webQuery.ConnectionID = wd.ConnectionID; _webQuery.ForReadOnly = true; _webQuery.SQL = new SQLStatement(wd.SqlString); _webQuery.Description = "Database lookup"; _webQuery.SqlChanged += new EventHandler(_webQuery_SqlChanged); propertyGrid1.SelectedObject = _webQuery; _webQuery.SetLoaded(); // loadWebDataFields(); }
private void loadWebDataFields() { WebDataEditorLookupDB wd = WebLookup; cbx2.Items.Clear(); int i; FieldsParser fp = new FieldsParser(); string[] fields = null; string msg = string.Empty; if (!string.IsNullOrEmpty(wd.SqlString)) { if (fp.ParseQuery(wd.SqlString, _webQuery.NameDelimiterBegin, _webQuery.NameDelimiterEnd, ref msg)) { fields = new string[fp.Count]; for (i = 0; i < fields.Length; i++) { fields[i] = fp.Fields[i].FieldName; } } else { MessageBox.Show(string.Format(CultureInfo.InstalledUICulture, "{0}. Error parsing SQL Statement [{1}].", msg, wd.SqlString), "Parse SQL Statement"); } } int n = wd.Hold.FieldCount; cbx2.Items.Add(""); if (fields != null) { for (i = 0; i < fields.Length; i++) { cbx2.Items.Add(fields[i]); } } if (n == 0) { MessageBox.Show("Linked data source not found (DestinationFieldCount is 0)"); return; } else { ds.Tables[0].Rows.Clear(); object[] vs; for (i = 0; i < n; i++) { string nm = wd.Hold.GetFieldNameByIndex(i); vs = new object[2]; vs[0] = nm; //field to be updated vs[1] = string.Empty; if (wd.FieldsMap != null) { for (int j = 0; j < wd.FieldsMap.Count; j++) { if (string.Compare(wd.FieldsMap[j].Target, nm, StringComparison.OrdinalIgnoreCase) == 0) { bool ok = false; if (fields != null) { for (int k = 0; k < fields.Length; k++) { if (string.Compare(fields[k], wd.FieldsMap[j].Source, StringComparison.OrdinalIgnoreCase) == 0) { ok = true; break; } } } if (ok) { vs[1] = wd.FieldsMap[j].Source; } break; } } } ds.Tables[0].Rows.Add(vs); } } }