public override List <RecordSource> FetchRecordSources(bool activeOnly) { string commandText = @"SELECT RecordSourceType.RSTID, Description, RecordSourceID, Name, IsActive, ConnectionString, CacheLife, SharedSecret FROM RecordSource JOIN RecordSourceType on RecordSource.RSTID = RecordSourceType.RSTID"; if (activeOnly) { commandText += " WHERE IsActive=1"; } SQLiteCommand command = new SQLiteCommand(commandText, connection); SQLiteDataReader reader = command.ExecuteReader(); List <RecordSource> sources = new List <RecordSource>(); while (reader.Read()) { RecordSourceType srcType = new RecordSourceType(reader.GetInt32(0), reader.GetString(1)); sources.Add(new RecordSource(reader.GetInt32(2), srcType, reader.GetString(3), Convert.ToBoolean(reader.GetInt32(4)), reader.GetString(5), reader.GetInt32(6), reader.GetStringSafe(7))); } return(sources); }
private void _btnNext_Click(object sender, System.EventArgs e) { TabPage pg = _tab.SelectedTab; // leaving data source page: save changes, update field lists if (pg == _pgData) { DataSource ds = _rpt.DataSource; DataProvider dataProvider = _dsPicker.DataProvider; string conn = _dsPicker.ConnectionString; string rs = _dsPicker.RecordSource; RecordSourceType recordSourceType = _dsPicker.RecordSourceType; object recordset = _dsPicker.Recordset; // update report's parameters _rpt.Parameters.Clear(); IList <DataSourcePicker.ReportParameterDesc> prms = _dsPicker.GetRecordSourceParameters(); if (prms != null && prms.Count > 0) { // add parameters to the report if it does not contains it foreach (DataSourcePicker.ReportParameterDesc rpd in prms) { ReportParameter rp = new ReportParameter() { Name = rpd.Name, DataType = rpd.Type }; _rpt.Parameters.Add(rp); } } if (ds.DataProvider != dataProvider || ds.ConnectionString != conn || ds.Recordset != recordset || ds.RecordSource != rs || ds.RecordSourceType != recordSourceType) { ds.DataProvider = dataProvider; ds.ConnectionString = conn; ds.RecordSource = rs; ds.Recordset = recordset; ds.RecordSourceType = recordSourceType; UpdateFieldLists(); } // set next page pg = _pgFields; } // leaving fields page: enable/disable outline layouts // and validate current selection else if (pg == _pgFields) { // enable/disable layout buttons bool hasGroups = _lstGroups.Items.Count > 0; for (int i = 0; i < _btnsGrp.Length; i++) { // enable/disable _btnsGrp[i].Enabled = hasGroups; _btnsFlat[i].Enabled = !hasGroups; // validate current selection if (hasGroups && _btnsFlat[i].Checked) { _btnsGrp[i].Checked = true; } if (!hasGroups && _btnsGrp[i].Checked) { _btnsFlat[i].Checked = true; } } // set next page pg = _pgLayout; } // leaving layout page: next is styles or labels else if (pg == _pgLayout) { pg = (_btnLabels.Checked) ? _pgLabels : _pgStyle; } // leaving style/labels pages: next is always title else if (pg == _pgStyle || pg == _pgLabels) { string title = _txtReportName.Text; if (title.Length == 0) { title = _dsPicker.RecordSource; title = (title == null || title.Length == 0 || title.IndexOfAny("*,[];".ToCharArray()) > -1) ? Strings.ReportWizard.NewReport : title + Strings.ReportWizard.SpaceReport; _txtReportName.Text = title; } _btnNext.Text = Strings.ReportWizard.Finish; pg = _pgTitle; } // finish wizard else if (pg == _pgTitle) { // we need a report name... if (_txtReportName.Text.Trim().Length == 0) { MessageForm.Warn(Strings.ReportWizard.EnterNewReportName); _txtReportName.Text = Strings.ReportWizard.NewReport; _txtReportName.Focus(); return; } // done CreateReport(); DialogResult = DialogResult.OK; return; } // show next page _tab.SelectedTab = pg; }