1s 8 tabella dei valori trova il valore. Quali metodi esistono e come cercare più valori contemporaneamente

Per tenere conto di denaro e beni, negli affari vengono ampiamente utilizzate varie tabelle. Quasi ogni documento è una tabella.

Una tabella elenca le merci da spedire dal magazzino. Un'altra tabella mostra gli obblighi di pagamento per questi beni.

Pertanto, in 1C, lavorare con le tabelle occupa un posto di rilievo.

Le tabelle in 1C sono anche chiamate “parti tabulari”. Directory, documenti e altro li hanno.

La query, una volta eseguita, restituisce una tabella a cui è possibile accedere in due modi diversi.

La prima selezione, più rapida, da cui si ottengono righe è possibile solo in ordine. Il secondo è caricare il risultato della query in una tabella di valori e quindi accedervi in ​​modo casuale.

//Opzione 1 – accesso sequenziale ai risultati della query

//prendi il tavolo
Seleziona = Query.Esegui().Select();
// esaminiamo in ordine tutte le righe del risultato della query
Mentre Select.Next() Ciclo
Report(Selezione.Nome);
FineCiclo;

//Opzione 2 – caricamento in una tabella di valori
Richiesta = Nuova Richiesta("SELEZIONA Nome DA Directory.Nomenclatura");
//prendi il tavolo
Tabella = Query.Esegui().Scarica().
//inoltre possiamo anche scorrere tutte le righe
Per ogni riga del ciclo della tabella
Rapporto(String.Nome);
FineCiclo;
//o accedere arbitrariamente alle stringhe
Riga = Table.Find("Pala", "Nome");

Una caratteristica importante è che nella tabella ottenuta dal risultato della query, tutte le colonne saranno rigorosamente tipizzate. Ciò significa che richiedendo il campo Nome dalla directory Nomenclature, riceverai una colonna di tipo String con una lunghezza consentita non superiore a N caratteri.

Tabella nel modulo (thick client)

L'utente lavora con la tabella quando viene inserita nel modulo.

Abbiamo discusso i principi di base del lavoro con i moduli nella lezione successiva e nella lezione successiva

Quindi, posizioniamo la tabella sul modulo. Per fare ciò, puoi trascinare la tabella dal pannello Controlli. Allo stesso modo, puoi selezionare Controllo modulo/inserisci dal menu.

I dati possono essere memorizzati nella configurazione, quindi è necessario selezionare la parte tabellare esistente (precedentemente aggiunta) dell'oggetto di configurazione di cui si sta modificando il modulo.

Fare clic sul pulsante "..." nella proprietà Dati. Per visualizzare l'elenco delle parti tabellari è necessario espandere il ramo Oggetto.

Quando selezioni la parte tabellare, 1C stesso aggiungerà colonne alla tabella nel modulo. Le righe immesse dall'utente in tale tabella verranno salvate automaticamente insieme al libro/documento di consultazione.

Nella stessa proprietà Data è possibile inserire un nome arbitrario e selezionare il tipo Tabella valori.

Ciò significa che è stata selezionata una tabella di valori arbitraria. Non aggiungerà automaticamente le colonne, né verrà salvato automaticamente, ma puoi farci quello che vuoi.

Facendo clic con il tasto destro sulla tabella è possibile aggiungere una colonna. Nelle proprietà di una colonna è possibile specificare il suo nome (per riferimento nel codice 1C), l'intestazione della colonna nel modulo, la connessione con l'attributo della parte tabellare (quest'ultimo - se non viene selezionata una tabella arbitraria, ma una parte tabellare).

Nelle proprietà della tabella nel modulo è possibile specificare se l'utente può aggiungere/eliminare righe. Una forma più avanzata è la casella di controllo Solo visualizzazione. Queste proprietà sono utili da utilizzare per organizzare tabelle destinate alla visualizzazione di informazioni, ma non alla modifica.

Per gestire la tabella è necessario visualizzare sulla videata un pannello di comando. Seleziona la voce di menu Modulo/Inserisci controllo/Barra di comando.

Nelle proprietà della barra dei comandi, seleziona la casella di controllo Compilazione automatica in modo che i pulsanti sul pannello vengano visualizzati automaticamente.

Tabella sul modulo (thin client/gestito)

In un modulo gestito, queste azioni hanno un aspetto leggermente diverso. Se devi inserire una parte tabellare nel modulo, espandi il ramo Oggetto e trascina una delle parti tabellari verso sinistra. È tutto!

Se è necessario inserire una tabella di valori, aggiungere un nuovo attributo del modulo e nelle sue proprietà specificare il tipo – tabella di valori.

Per aggiungere colonne, utilizza il menu di scelta rapida su questo attributo del modulo, seleziona Aggiungi colonna attributo.

Quindi trascina anche la tabella a sinistra.

Affinché una tabella abbia una barra dei comandi, nelle proprietà della tabella, selezionare i valori nella sezione Utilizzo – Posizione barra dei comandi.

Caricamento di una tabella in Excel

Qualsiasi tabella 1C presente nel modulo può essere stampata o caricata in Excel.

Per fare ciò, fare clic con il tasto destro su uno spazio vuoto nella tabella e selezionare Elenco.

In un client (thin) gestito, azioni simili possono essere eseguite utilizzando la voce di menu Tutte le azioni/Visualizza elenco.

Ecco un piccolo fatto per cominciare: semplici esempi di lavoro con una tabella di valori:

1. Creare una tabella di valori

TabellaValori = Nuova TabellaValori;


2. Crea colonne per la tabella dei valori:

ValueTable.Columns.Add("Nome");
Valore Table.Columns.Add("Cognome");


3. Aggiungi nuove righe utilizzando i nomi delle colonne:


NewLine.Name = "Vasily";
NewLine.LastName = "Cucciolo";


4. Come cercare un valore nella tabella dei valori:
È necessario trovare una riga della tabella contenente il valore desiderato.

FoundRow = ValueTable.Find(SearchValue);


5. Trova la prima occorrenza in alcune colonne della tabella dei valori

FoundRow = ValueTable.Find(SearchValue, "Fornitore, Acquirente");


6. Se è necessario trovare tutte le occorrenze nella tabella dei valori:
Usiamo la struttura di ricerca.

SearchStructure = Struttura("Dipendente", SearchValue);
Array di FoundRows = ValueTable.FindRows(SearchStructure);


Creiamo una struttura di ricerca, ciascun elemento della quale conterrà il nome della colonna come chiave e il valore desiderato in questa colonna come valore. Passiamo la struttura di ricerca come parametro al metodo FindLines(). Di conseguenza, otteniamo righe della tabella.
Se aggiungi una ricerca per il valore desiderato alla struttura di ricerca, ad esempio, anche nella colonna Responsabile, come risultato dell'applicazione del metodo FindLines() otterremo tutte le righe in cui sia il Dipendente che il Responsabile sono uguali a valore cercato.

7. Come scorrere una tabella di valori in ordine casuale

Per ogni riga corrente dal ciclo della tabella dei valori
Report(RigaCorrente.Nome);
FineCiclo;

Stessa cosa usando gli indici:

SeniorIndex = ValueTable.Quantity() - 1;
Per conto = da 0 a Ciclo SeniorIndex
Report(ValoriTabella[Account].Nome);
FineCiclo;


8. Eliminazione di una riga della tabella dei valori esistente

ValueTable.Delete(Riga da eliminare);

per indice

ValueTable.Delete(0);


9. Eliminazione di una colonna esistente della tabella dei valori

ValueTable.Columns.Delete(ColumnDeleted);


per indice

ValueTable.Columns.Delete(0);

È necessario tenere conto del fatto che l'eliminazione di una riga (o colonna) “dal centro” della tabella dei valori comporterà una diminuzione di uno negli indici delle righe situate “dopo” quella eliminata

10. Come riempire una tabella di valori se i nomi delle colonne sono contenuti in variabili?

NuovaRiga = TabellaValori.Add();
NuovaRiga[NomeColonna] = Valore;


11. Come riempire l'intera colonna della tabella dei valori con il valore desiderato?
La colonna Flag Contabilità Fiscale nella Tabella dei Valori deve essere valorizzata con il valore Falso

Tabella dei valori. Compila valori (Falso, "Flag contabilità fiscale");


Usiamo il metodo FillValues() per la tabella dei valori. Il primo parametro è il valore da riempire. Il secondo parametro è il nome della colonna da riempire.

12. Come posso riempire la tabella dei valori “Receiver Table” con i dati della tabella dei valori “SourceTable”?

Se la Tabella Destinatari non esiste ancora al momento dell'operazione o non è necessario salvare le sue colonne precedenti, è possibile crearla come copia completa dell'originale

Tabella destinatari = Tabella origine.Copy();


Opzione due: la tabella ReceiverTable esiste e sarebbe un peccato perdere le sue colonne e le restrizioni sui tipi di dati delle colonne. Ma devi inserire i dati per le colonne i cui nomi corrispondono ai nomi della tabella di origine.

Trasferimento dati parziale per colonne con nomi corrispondenti:

Per ogni riga della SourceTable dal ciclo SourceTable
FillPropertyValues(NewRow, SourceTableRow);
Fine del ciclo


Per ogni riga della tabella di origine, viene aggiunta una nuova riga alla tabella ricevente e i valori vengono inseriti in quelle colonne della nuova tabella i cui nomi corrispondono ai nomi delle colonne nella tabella di origine

Se le tabelle non hanno colonne con gli stessi nomi, la tabella di destinazione finirà per contenere tante righe con valori null quante erano le righe nella tabella di origine.
Se per alcune colonne con lo stesso nome il tipo di valore dei dati della tabella di origine non rientra nell'array dei tipi di colonne consentiti della tabella di destinazione, otterremo valori vuoti in tali campi.
Consideriamo il terzo caso. Nel caso di colonne con lo stesso nome, la colonna della tabella di destinazione deve essere pienamente conforme alla colonna della tabella di origine.

Copia completa dei dati per le colonne con nomi corrispondenti

Stesse colonne = Nuovo array();

Per ogni colonna dal ciclo SourceTable.Columns
MatchingColumn = TableReceiver.Columns.Find(Column.Name);

Se MatchingColumn<>Indefinito Allora

// Ottiene le proprietà della colonna.
Nome = Colonna.Nome;
TipoValore = Colonna.TipoValore;
Intestazione = Colonna.Intestazione;
Larghezza = Colonna.Larghezza;

// Sostituisce le colonne nella tabella di destinazione.
Indice = TableReceiver.Columns.Index(MatchingColumn);

TableReceiver.Columns.Delete(Indice);
ReceiverTable.Columns.Insert(Indice, Nome, TipoValore, Intestazione, Larghezza);

// Aggiunge il nome successivo delle colonne corrispondenti all'array.
Stesse colonne.Add(Column.Name);

finisci se;

FineCiclo;

// Scorrere le righe della tabella di origine.
Per ogni riga della SourceTable dal ciclo SourceTable

// Aggiunge una nuova riga alla tabella di destinazione.
NuovaRiga = TableReceiver.Add();

// Compila i valori nelle celle corrispondenti.
Per ogni Nome Colonne Da Colonne con lo stesso nome Ciclo
NuovaRiga[NomeColonna] = RigaTabellaOrigine[NomeColonna];

FineCiclo;

FineCiclo;


Dovremo sostituire la colonna della tabella di destinazione con una nuova, le cui proprietà corrisponderanno pienamente alla colonna della tabella di origine.
Pertanto, se nella tabella dei destinatari viene trovata una colonna con lo stesso nome, raccogliamo tutte le proprietà della nuova colonna in variabili. Successivamente, elimina quello vecchio e crea una nuova colonna. Quindi eseguiamo il loop tra le righe della tabella di origine.
Nel ciclo aggiungiamo una nuova riga alla tabella ricevente e apriamo un ciclo sui nomi delle colonne nell'array di colonne corrispondenti.
All'interno di questo ciclo annidato, riempiamo le celle della tabella di destinazione con i dati della cella della tabella di origine.

13. Come aggiungere colonne alla tabella di valori "ValueTable" con restrizioni di tipo?

Quando aggiungi una colonna, puoi semplicemente specificarne il nome e lasciare intatto il secondo parametro del metodo Add(). In questo caso, il tipo di dati della colonna è arbitrario.

Aggiunta di una colonna senza specificare un tipo di dati

// Aggiunge una colonna senza restrizioni sul tipo.
ValueTable.Columns.Add("Oggetto");


È possibile inserire il valore del secondo parametro. Lì è necessario passare una descrizione del tipo consentito per la colonna. La descrizione stessa può essere ottenuta utilizzando il costruttore, passandogli come parametro la stringa nome del tipo (se esistono più tipi, separati da virgole) oppure un array di tipi validi.

Aggiunta di una colonna che indica il tipo di dati

// Restrizioni sui tipi di dati delle colonne:
// Solo elementi della directory "Controparti".
Tabella dei valori.Columns.Add("Account", Nuova descrizione dei tipi("DirectoryLink.Accounts"));


Se tra i tipi consentiti per il riempimento dei dati della colonna c'è una stringa, è possibile limitarne la profondità in bit (lunghezza), specificare l'uso di una lunghezza variabile o fissa. Tutto ciò si ottiene creando un oggetto utilizzando il costruttore String Qualifiers. Successivamente, questo oggetto verrà utilizzato come uno dei parametri del costruttore TypeDescription.

Utilizzo dei qualificatori per specificare il tipo di dati di una colonna della tabella dei valori

// Prepara e imposta le restrizioni per i dati di tipo String.
Qualificatori di stringa = Nuovi qualificatori di stringa(20, Lunghezza consentita.Variabile);
ValidTypes = NewTypeDescription("String", StringQualifiers);
ValueTable.Columns.Add("NoteStringShort", ValidTypes);


Azioni simili possono essere eseguite rispetto ai qualificatori di numero e data.
Nota: le descrizioni dei tipi possono essere create dal costruttore “da zero” oppure è possibile utilizzare come base una descrizione del tipo esistente.

Utilizzo delle dichiarazioni di tipo esistenti per specificare il tipo di dati di una colonna della tabella dei valori

// Estensione della descrizione del tipo utilizzata in precedenza.
QualifiersNumbers = Nuovi QualifiersNumbers(10, 2, ValidSign.Non-negativo);
DateQualifiers = Nuovo DateQualifiers(DateParts.Date);
ValidTypes estesi = New TypeDescription(ValidTypes, "Numero, Data", Qualificatori numerici, Qualificatori data);

ValueTable.Columns.Add("Nota", ExtendedAcceptableTypes);

La tabella dei valori nella piattaforma 1C 8.3 (8.2) è una raccolta universale di valori che uno sviluppatore può utilizzare durante lo sviluppo del software per implementare i suoi algoritmi. Essenzialmente, una tabella di valori 1C è un insieme dinamico di valori che hanno colonne e colonne.

Articoli su altre collezioni universali di valori in 1C

Impara a programmare in 1C nel mio libro “Programmare in 1C in 11 passi”

  1. Il libro è scritto in un linguaggio chiaro e semplice, per un principiante.
  2. Impara a comprendere l'architettura 1C;
  3. Inizierai a scrivere codice nel linguaggio 1C;
  4. Padroneggiare le tecniche di programmazione di base;
  5. Consolida le tue conoscenze con l'aiuto di un libro di problemi;

Un'eccellente guida allo sviluppo in un'applicazione 1C gestita, sia per sviluppatori alle prime armi che per programmatori esperti.

  1. Linguaggio di presentazione molto accessibile e comprensibile
  2. Il libro viene inviato via email in formato PDF. Può essere aperto su qualsiasi dispositivo!
  3. Comprendere l'ideologia di un'applicazione 1C gestita
  4. Scopri come sviluppare un'applicazione gestita;
  5. Impara a sviluppare moduli 1C gestiti;
  6. Sarai in grado di lavorare con gli elementi di base e necessari dei moduli gestiti
  7. La programmazione in un'applicazione gestita diventerà chiara

Codice promozionale per uno sconto del 15% - 48PVXHeYu


Se questa lezione ti ha aiutato a risolvere qualche problema, ti è piaciuta o l'hai trovata utile, allora puoi sostenere il mio progetto donando qualsiasi importo:

Puoi pagare manualmente:

Yandex.Money - 410012882996301
Web Money - R955262494655

Unisciti ai miei gruppi.

Un saluto a tutti i lettori di infostart. Questo articolo sarà dedicato alla questione della creazione di una tabella di valori arbitraria sotto forma di un'applicazione gestita a livello di codice.

Caratteristiche del compito.

Chiunque abbia programmato in un'applicazione normale si è spesso trovato di fronte al compito di ottenere una tabella di valori arbitraria su un modulo. Una tabella di valori arbitraria è una tabella il cui numero e tipo di colonne non sono noti in anticipo. Cioè potrebbero esserci 3 colonne, o forse 6, o forse 8. In una normale applicazione, tutto è semplice: potresti posizionare l'elemento “Tabella dei valori” sul modulo di elaborazione, e quindi trasferire la tabella dei valori creata ​a questo elemento a livello di codice. Quindi con un semplice comando:

Modulo Elements.TableField.CreateColumns();

ottenere una tabella di valori già pronta sul modulo. Sembrerebbe che potrebbe essere più semplice.

Questo era tutto nella normale applicazione. In un'applicazione gestita tutto è cambiato. Non è così facile creare una tabella arbitraria. Ora è necessario parametrizzare rigidamente la tabella dei valori sul modulo o crearla a livello di codice (descrivere, beh, questa, in effetti, è l'essenza dell'applicazione gestita stessa). Questo è ciò che proveremo a fare: creare a livello di codice una tabella di valori arbitraria su un modulo controllato.

La soluzione del problema.

La prima cosa che dobbiamo fare è determinare come apparirà la tabella nel modulo. La cosa principale è che non è necessario creare alcun elemento del modulo durante l'elaborazione. Lo creeremo a livello di codice, come l'intera tabella. Cioè, la tabella verrà descritta e creata al momento dell'apertura del modulo o tramite un pulsante, a seconda di chi ne ha bisogno.

La creazione di una tabella sul form avviene attraverso la descrizione della tabella valori come attributo:
SelectionTypeArray = Nuovo array; Array di SelectionType.Add(Type("Tabella dei valori")); ChoiceTypeDescription = Nuova descrizione del tipo(ChoiceTypeArray); Serie di dettagli = Nuova serie; Array of Attributes.Add(New Form Attributes("Tabella di pianificazione", Descrizione di SelectionType, "", "TZN")); Ora dobbiamo creare una tabella dei valori del programma che contenga i dati. Se la tabella dei valori viene ottenuta da una query, allora è più o meno tutto in ordine. Se la tabella viene creata manualmente allora il significato delle colonne che conterranno numeri o date potrà essere creato attraverso la “Descrizione delle Tipologie”. Il punto è che le colonne nella tabella dei valori devono avere un tipo. Se, ad esempio, si prevede che l'utente inserisca i dati in queste colonne in modo interattivo, allora non è possibile aggiungere una colonna della tabella dei valori semplicemente con un nome; deve avere un tipo; Tieni presente che questo è molto importante perché... Trasferiremo questi tipi nella tabella del modulo.
Creiamo una tabella che contiene diverse colonne:
CD = NewDateQualifiers(DateParts.Time); ArrayKD = Nuovo array; ArrayCD.Add(Tipo("Data")); DescrizioneTipiOra = Nuovi tipi di descrizione(ArrayCD,CD); TZ = Nuova tabella valori;
TK.Columns.Add("Con", DescriptionTypesTime);
TK.Columns.Add("Prima", DescriptionTypesTime);
TK.Columns.Add("Nome");
TK.Columns.Add("Note"); // Nome completo e nota - righe Successivamente riempiremo la tabella del nostro programma TK con i dati necessari. Otteniamo una tabella TK che contiene i valori necessari ed è pronta per essere trasferita all'attributo del modulo creato. Per ogni colonna dal ciclo di colonne TK

Array di attributi.Add (nuovi attributi del modulo (colonna.nome, colonna.valoretipo, "tabella di pianificazione"));
FineCiclo;
ModificaDettagli(DettagliArray);
SelectionFieldsTable = Elements.Add("TZN", Type("FormTable"));
SelectionFieldsTable.DataPath = "ScheduleTable";
SelectionFieldTable.Display = TableDisplay.List;

Questa è una combinazione semplice e il nostro tavolo è pronto.

Per ogni colonna dal ciclo di colonne TK

NuovoElemento = Elements.Add(Column.Name, Type("FormField"), SelectionFieldTable);
NuovoElemento.View = FormFieldView.InputField;
NewElement.DataPath = "Tabella di pianificazione." + Nome.Colonna;
NewElement.Width = 10;
FineCiclo;

Progettazione condizionale, se ne abbiamo bisogno, la scriviamo anche manualmente, il menu dei comandi - manualmente. Anche i gestori delle tabelle vengono scritti a mano. Ad esempio, per aggiungere un gestore eventi per la tabella "Selezione":

Tabella di SelectionFields.SetAction("Selection","TZNSelection");

Per elaborare questo evento, è prescritta una procedura separata sotto forma di procedura:

&SuClient
Procedura TKNSelezione(TK, RigaSelezionata, Campo, ElaborazioneStandard)
//il gestore comanda EndProcedure

Si noti che i gestori di tabelle vengono attivati ​​sul client e pertanto devono disporre di un comando del puntatore del compilatore

&SuClient

Bene, l'ultima cosa che volevo aggiungere è che dopo tutti questi passaggi, assicurati di ricordarti di passare la tabella finita all'attributo form:

ValueFormProperties(ToR, "ScheduleTable");

Questo è ciò che abbiamo come risultato:


Ed ecco la gestione dell'evento "Selezione":



Epilogo.

Spero che questo articolo possa aiutare quei programmatori 1C che stanno iniziando a creare tabelle su un modulo a livello di codice.

Puoi scaricare un'elaborazione che crea a livello di codice una tabella di valori e la visualizza in un modulo gestibile con commenti che ti aiuteranno a creare le tue tabelle.

Una tabella di valori è un oggetto universale specifico progettato per archiviare dati in una rappresentazione tabellare. La differenza fondamentale tra una tabella e gli oggetti dell'applicazione è la mancanza di associazione alle tabelle fisiche del database. La tabella dei valori esiste solo nella RAM, che, da un lato, offre opportunità uniche e, dall'altro, impone alcune restrizioni. Tuttavia, le possibilità di interazione con la tabella sono paragonabili all'interazione con oggetti realmente esistenti nel database.

Storicamente, la tabella dei valori in 1C ha un duplice scopo, essendo un analogo virtuale delle tabelle esistenti, ma allo stesso tempo è anche un elemento di controllo. Con il passaggio a un'applicazione gestita, gran parte di questa funzionalità è stata deprecata, ma oggi può ancora essere un elemento dell'interfaccia utente, ma con alcune limitazioni significative.

Struttura di una tabella di valori come oggetto

Le proprietà di una tabella di valori sono determinate dalla combinazione di due raccolte predefinite: le sue colonne e righe.

Tabella dei valori Colonne

Una colonna di una tabella di valori è la sua proprietà che la definisce. È l'insieme delle colonne della tabella che ne determina la struttura. Le colonne corrispondono ai campi delle tabelle fisiche o delle colonne familiari dall'interfaccia utente di una sezione tabellare o di un giornale documentale. Una colonna può avere un nome interno, un tipo di valore e un titolo che viene visualizzato quando si lavora in modo interattivo con la tabella.

Poiché le colonne sono una raccolta di oggetti, puoi aggiungere, eliminare e modificare colonne.

Riga della tabella dei valori

Dal punto di vista dell'interfaccia software, le stringhe sono una raccolta separata incorporata in una tabella di valori. Sono analoghi ai record nelle tabelle fisiche, ovvero alle righe familiari all'utente in una sezione tabellare o in un giornale di registrazione. Ogni singola riga è un oggetto con un insieme di proprietà denominate, i cui nomi corrispondono ai nomi delle colonne della tabella.

Pertanto, l'interazione con una stringa è molto simile all'interazione con altri oggetti. È possibile leggere e scrivere le sue proprietà, anche utilizzando la funzione predefinita “FillPropertyValues()”. Poiché le righe rappresentano la raccolta principale della tabella dei valori, il metodo Clear() viene utilizzato per eliminare tutte le righe nella tabella.

Creare una tabella di valori

Esistono molti modi per ottenere una tabella di valori pronta per l'uso. Diamo un'occhiata ad alcuni di loro. Ogni esempio verrà fornito come elenco di codici con commenti.

Creazione di una tabella utilizzando il costruttore

Il metodo principale che consente di creare esattamente la tabella di cui lo sviluppatore ha bisogno è, sfortunatamente, quello più dispendioso in termini di manodopera, poiché richiede la specifica manuale di tutte le proprietà necessarie della tabella.

TabellaDemo = Nuova TabellaValori; // Prima di tutto inizializziamo il TK // Successivamente determiniamo i parametri necessari per le nuove colonne e li aggiungiamo alla raccolta // Creazione della colonna "Nomenclatura" Name = "Nomenclature"; ValueType = New TypeDescription("DirectoryLink.Nomenclature"); Titolo = "Nomenclatura (prodotto)"; DemoTable.Columns.Add(Nome, TipoValore, Intestazione); // Creazione della colonna "Quantità" Name = "Quantità"; ValueType = New TypeDescription("Numero"); DemoTable.Columns.Add(Nome, TipoValore); // Come risultato di queste manipolazioni, abbiamo creato una tabella vuota con colonne tipizzate // Se è necessario utilizzare una digitazione più precisa dei tipi primitivi, è necessario utilizzare la sintassi estesa del costruttore "Descrizione dei tipi"

Creazione di una tabella mediante copia

Se hai a portata di mano un riferimento con struttura e/o composizione adeguata, puoi copiare o scaricare la tabella dei valori di riferimento. Se la tabella di riferimento è un'altra tabella, è necessario utilizzare il metodo "Copia tabelle di riferimento". Se si ha a che fare con una parte tabellare o un insieme di record di registro è necessario utilizzare il metodo “Scarica tabella valori”. Se hai bisogno solo della struttura, puoi utilizzare il metodo “Copia colonne”.

// Opzione che copia tutte le righe dalla norma specifica tecnica preservando solo le due colonne specificate della norma = "Nomenclatura, Quantità"; DemoTable = TableEtalon.Copy(, ColumnsEtalon); // Opzione con la copia di righe preselezionate dallo standard delle specifiche tecniche, preservando le due colonne specificate Rows of the Standard = SelectIntoArrayThe Rows We Need From the Table of the Standard(); ColumnsStandard = "Nomenclatura, Quantità"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // Opzione per copiare righe dallo standard delle specifiche tecniche utilizzando il filtro specificato, preservando una colonna "Nomenclatura" // Verranno selezionate tutte le righe in cui il valore nella colonna Quantità è 0, solo la colonna Nomenclatura Selezione riga = Nuova struttura(" Quantità" apparirà nella tabella risultante, 0); ColumnsStandard = "Nomenclatura"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // Opzione con copia completa della tabella e successiva cancellazione di una riga con valore del campo quantità pari a zero e cancellazione dell'intera colonna “Quantità” Selezione riga = Nuova Struttura("Quantità", 0); ColumnsStandard = "Nomenclatura"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); TableRow = DemoTable.Find(0, "Quantità"); DemoTable.Delete(TableRow); DemoTable.Columns.Delete("Quantità"); // Opzioni simili e relative modifiche possono essere applicate a parti tabulari e insiemi di record di registro

Creazione di una tabella con una query

Se nel database esiste un modello della tabella di cui hai bisogno, puoi utilizzare una query per creare rapidamente una tabella con la struttura desiderata.

// Un esempio di creazione di una tabella vuota in base alla struttura del registro di accumulazione // È facile intuire che in questo modo si può ottenere anche una tabella riempita Query = New Query("SELECT FIRST 0 * From Accumulation Register. Products Nel magazzino"); RichiestaRisultato = Richiesta.Esegui(); Tabella demo = Risultato query.Scarica(); // Un esempio di creazione di una tabella vuota utilizzando tipi e nomi di campo specificati esplicitamente Query = New Query; Query.Text = "SELECT TOP 0 | Valore(Directory.Nomenclature.EmptyLink) AS Nomenclatura, | EXPRESS(0 AS NUMBER(15, 3)) AS Quantità"; RichiestaRisultato = Richiesta.Esegui(); Tabella demo = Risultato query.Scarica(); // IMPORTANTE! Non dimenticare che i tipi di valori di colonna ottenuti da una richiesta contengono sempre il tipo Null // Pertanto, il TK creato dalla richiesta ha sempre tipi di colonna compositi

Conclusione

In questo breve articolo abbiamo esaminato le proprietà di base e le tecniche pratiche per creare una tabella di valori, sufficienti per comprenderla e iniziare ad utilizzarla. L'oggetto stesso della tabella dei valori è così sfaccettato che una descrizione dettagliata delle sue capacità richiede la scrittura di un articolo separato su tecniche e metodi di lavoro.