Ciao a tutti, ho un problemino abbastanza ostico, essendo poi non un programmatore senior di vb.net faccio una fatica immane a trovare la soluzione.
Ho costruito a fatica tutti i passaggi precedenti e mi sono arenato sulla creazione del loop finale, per cui chiedo aiuto spiegando di cosa ho bisogno.
In un DB ho delle tabelle di configurazione che mi permettono di rendere parametrizzabile un'applicazione che sto costruendo.
La fase finale è quella di utilizzare l'ultima Form in cui devo aggiungere delle TabPages dal un TabControl, prendendo il nome dell'etichetta da un campo della tabella, creare tante TabPages quante le righe della tabella filtrata, in ultima tramite una procedura elencare i dati che devo inserire nella DataGridView che creo all'interno di ogni specifica TAB (bel casino, eh?).
Elenco di seguito le tabelle su cui mi appoggio:
U_TitoloForm U_ProcCol U_ProcDati Dettaglio OP S2TRM_BRK11_C S2TRM_BRK11_D Dettaglio Fasi S2TRM_BRK12_C S2TRM_BRK12_D Dettaglio Righe S2TRM_BRK13_C S2TRM_BRK13_D
In pratica sono riuscito a creare i TAB con U_TitoloForm per ognuno, creo un DataGridView all'interno.
La difficoltà mi si presenta con le U_Procx, dove sono racchiuse delle procedure che esportano il nome della colonna e i dati.
Procedura per titoli colonne: execute S2TRM_BRK11_C
N. OP Cliente Dt Consegna
Procedura per inserimento dati: execute S2TRM_BRK11_D
1805879 C000002107 03-06-2018 1805880 C000002107 03-06-2018 1805881 C000002107 03-06-2018
Se utilizzo un DataGrid già esistente con poche righe di codice lo compilo subito, ma il difficile è creare dinamicamente i TABPages e poi inserire la Grid per ogni procedura, comunque il codice che ho inserito è (al netto delle stringa di connessione, altrimenti sapete le password che uso...)
codice:Using Con As New SqlConnection(sConnection) Con.Open() ' data la selezione del codice in Menu1 compila i TAB ad essa associati Using Com As New SqlCommand("Select U_TitoloForm From [@S2TRM_OPERAZIONID] WHERE Code = " & Menu1.Cmb_Selezione.SelectedValue, Con) Using RDR = Com.ExecuteReader() If RDR.HasRows Then Do While RDR.Read ' CICLO CHE AGGIUNGE I TAB E LI RINOMINA DAL TITOLO FORM Me.Tab_Container.TabPages.Add(RDR.Item("U_TitoloForm").ToString()) ' INSERISCE DATAGRIDVIEW PER I DATI DELLE TABELLE Dim dgv = New DataGridView With dgv .ColumnHeadersVisible = True .RowHeadersVisible = False .Width = 600 .Height = 800 End With Me.Tab_Container.TabPages(0).Controls.Add(dgv) ' INSERIMENTO DATI NEL DGV Using Com1 As New SqlCommand("execute [dbo].[S2TRM_BRK11_D]", Con) Using RDR1 = Com1.ExecuteReader() Dim dt As New DataTable dt.Load(RDR1) dgv.DataSource = dt End Using End Using ' INTESTAZIONE COLONNE NEL DATAGRIDVIEW Using Com2 As New SqlCommand("execute [dbo].[S2TRM_BRK11_C]", Con) Using RDR2 = Com2.ExecuteReader() 'If RDR2.HasRows Then ' Do While RDR2.Read Dim Colonne As Integer = RDR2.VisibleFieldCount For i = 0 To Colonne - 1 dgv.Columns(i).HeaderCell.Value = RDR2.Item(i).ToString Next 'Loop 'End If End Using End Using Loop RDR.Close() End If End Using End Using Con.Close() SqlConnection.ClearPool(Con) End Using
So che il codice come l'ho scritto fa schifo, ma non riesco a sistemare le aperture e chiusura dei Reader... chi mi sa aiutare?
Vi pregoooo... è il mio primo progetto prova...
Grazie.

)
Rispondi quotando
