Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • OS
  • Punë programore me tabelën e vlerave 1s. Cilat metoda ekzistojnë dhe si të kërkohen njëkohësisht disa vlera

Punë programore me tabelën e vlerave 1s. Cilat metoda ekzistojnë dhe si të kërkohen njëkohësisht disa vlera

Përshëndetje për të gjithë lexuesit e infostart. Ky artikull do t'i kushtohet çështjes së krijimit të një tabele arbitrare të vlerave në formën e një aplikacioni të menaxhuar në mënyrë programore.

Karakteristikat e detyrës.

Kushdo që ka programuar në një aplikacion të rregullt shpesh përballet me detyrën për të marrë një tabelë arbitrare të vlerave në një formular. Një tabelë arbitrare e vlerave kuptohet si një tabelë, numri dhe lloji i kolonave të së cilës nuk dihet paraprakisht. Kjo do të thotë, mund të ketë 3 kolona, ​​ose ndoshta 6, ose ndoshta 8. Në një aplikacion normal, gjithçka është e thjeshtë: mund të vendosni elementin "Tabela e vlerave" në formularin e përpunimit dhe më pas të transferoni tabelën e vlerave të krijuara në këtë element në mënyrë programore. Pastaj një komandë e thjeshtë:

Form Elements.TableField.CreateColumns ();

merrni një tabelë të gatshme të vlerave në formular. Duket se mund të ishte më e lehtë.

Ishte e gjitha në një aplikim të rregullt. Gjithçka ka ndryshuar në aplikacionin e menaxhuar. Nuk është aq e lehtë të krijosh një tabelë arbitrare. Tani ju duhet ose të parametrizoni në mënyrë të ngurtë tabelën e vlerave në formë, ose ta krijoni atë në mënyrë programore (përshkruani, mirë, ky është, në fakt, thelbi i vetë aplikacionit të menaxhuar). Kjo është ajo që ne do të përpiqemi të bëjmë: të krijojmë në mënyrë programore një tabelë arbitrare të vlerave në një formë të menaxhuar.

Zgjidhja e problemit.

Gjëja e parë që duhet të bëjmë është të përcaktojmë se si do të shfaqet tabela në formular. Gjëja kryesore është që nuk keni nevojë të krijoni ndonjë element të formës në përpunim. Ne do ta krijojmë atë në mënyrë programore, si të gjithë tabelën. Kjo do të thotë, tabela do të përshkruhet dhe krijohet në momentin kur hapet formulari ose duke përdorur një buton - kështu i duhet kujtdo.

Krijimi i një tabele në formë ndodh përmes përshkrimit të tabelës së vlerave si një atribut:
ChoiceType Array = Array i ri; Array ofChoiceType.Add (Lloji ("Tabela e vlerave")); ChoiceTypeDescription = NewTypeDescription (ArrayChoiceType); ArrayAttributes = Array i ri; Array of Atribute.Add (Atributi i Formës së Re ("Tabela e orarit", DescriptionTypeChoice, "", "TZN")); Tani duhet të krijojmë një tabelë programatike të vlerave që përmban të dhënat. Nëse tabela e vlerave merret nga një pyetje, atëherë gjithçka është pak a shumë në rregull. Nëse tabela krijohet manualisht, atëherë vlera e kolonave që do të përmbajnë numra ose data mund të krijohet përmes "Përshkrimit të Llojeve". Përfundimi është se kolonat në tabelën e vlerave duhet të jenë të një lloji. Nëse, për shembull, supozohet se përdoruesi do të plotësojë të dhënat në këto kolona në mënyrë interaktive, atëherë nuk mund të shtoni një kolonë të tabelës së vlerave thjesht me një emër, ajo duhet të ketë një lloj. Mbani në mend se kjo është shumë e rëndësishme. ne do t'i transferojmë këto lloje në tabelën në formular.
Ne krijojmë një tabelë që përmban disa kolona:
CD = Kualifikuesit e datave të reja (Date Parts.Time); ArrayKD = Array i ri; ArrayCD.Add (Lloji ("Data")); TypeDescriptionTime = New TypeDescription (ArrayKD, KD); TK = Tabela e re e vlerave;
TZ.Kolonki.Add ("S", DescriptionTypesTime);
TK.Kolonki.Add ("Para", PërshkrimiTypesTime);
TK.Kolonki.Add ("emri i plotë");
TK.Kolonki.Add ("Shënim"); // Emri i plotë dhe Shënimi - rreshtat Më pas, ne do të plotësojmë tabelën tonë të programit TK me të dhënat e nevojshme. Marrim tabelën TOR, e cila përmban vlerat e nevojshme dhe është gati për t'u transferuar në atributin e formës së krijuar. Për çdo kolonë nga TK. Lak i kolonës

ArrayAttributes.Add (Atributi i Formës së Re (Column.Name, Column.ValueType, "ScheduleTable"));
Fundi i Ciklit;
ModifyAttributes (ArrayAttributes);
ChoiceFieldsTable = Elements.Add ("TZN", Lloji ("FormTable"));
ChoiceFieldsTable.PathKData = "Tabela e orarit";
ChoiceFieldsTable.Display = DisplayTable.List;

Këtu është një kombinim kaq i thjeshtë dhe tabela jonë është gati.

Për çdo kolonë nga TK. Lak i kolonës

NewElement = Elements.Add (Column.Name, Type ("FormField") ,ChoiceFieldsTable);
NewElement.View = FormFieldKind.InputField;
NewItem.PathData = "Tabela e orarit." + Kolona.Emri;
Elementi i ri.Gjerësia = 10;
Fundi i Ciklit;

Kushtet, nëse kemi nevojë, shkruajmë edhe me dorë, menynë e komandës - me dorë. Mbajtësit e tavolinave janë gjithashtu të shkruara me dorë. Për shembull, për të shtuar një mbajtës ngjarjesh për tabelën Select:

ChoiceFieldsTable.SetAction ("Zgjedhja", "TZNSelection");

Për të trajtuar këtë ngjarje, shkruhet një procedurë e veçantë në formën e një procedure:

& OnClient
Procedura TZNSelection (TK, SelectedString, Field, Standard Processing)
// komandat e mbajtësit EndProcedure

Vini re se mbajtësit e tabelave ndezin klientin dhe për këtë arsye duhet të kenë një tregues të përpiluesit të komandës

& OnClient

Epo, dhe gjëja e fundit që doja të shtoja është se pas gjithë këtyre veprimeve, nuk duhet të harrojmë të transferojmë tabelën e përfunduar në atributin e formës:

ValueVRequisitForm (TK, "Tabela e orarit");

Kjo është ajo që marrim si rezultat:


Dhe këtu është përpunimi i ngjarjes "Zgjidh":



Pasthënie.

Shpresoj se ky artikull do t'i ndihmojë ata programues 1C që fillojnë të krijojnë tabela në një formë në mënyrë programore.

Ju mund të shkarkoni një përpunim që krijon në mënyrë programore një tabelë vlerash dhe rezultatesh në një formë të menaxhueshme me komente për t'ju ndihmuar të krijoni tabelat tuaja.

Kërkoni në tabelë për vlerat 1C

Cilat metoda ekzistojnë dhe si të kërkohen njëkohësisht disa vlera.

Ekzistojnë dy metoda të veçanta për të kërkuar vlerat në një tabelë:

1. Gjeni

Horizon TV = Librat e referencës.Nomenklatura.FindByName ("Horizon TV");
FoundString = TKNomenclature.Find (TV Horizon);
// ne gjithashtu mund të specifikojmë se në cilat kolona të kërkojmë për të shpejtuar kërkimin
FoundString = TKNomenclature.Find (Horizonti televiziv, "Nomenklatura");

Kjo metodë kthen vargun e parë të gjetur me vlerën e dëshiruar, ose të Padefinuar nëse jo. Prandaj, është i përshtatshëm për ta përdorur atë për të gjetur vlera unike, pasi përndryshe, kur të gjeni një vlerë, hiqeni atë nga tabela për të gjetur vlerën tjetër.

Për të mos vuajtur kështu, ekziston metoda e mëposhtme, e cila ju lejon të gjeni një grup vargjesh që përputhen:

2. FindStrings


StructureSelection.Insert ("Nomenklatura", TV Horizon); // së pari specifikoni kolonën ku të kërkoni, dhe më pas çfarë të kërkoni.

Kjo metodë kthen gjithmonë një grup, por ai mund të jetë bosh nëse nuk u gjet asgjë. Dhe kjo metodë, si ajo e mëparshme, kthen vetë rreshtat e tabelës së vlerave, dhe jo vetë vlerat në një grup të veçantë. Prandaj, duke ndryshuar vlerat në rreshtin e grupit ose, si në metodën e mëparshme, për rreshtin e gjetur, do të ndryshoni vlerën në tabelën e përpunuar të vlerave.

Një tjetër gjë e mirë në lidhje me këtë metodë është se ajo mund të kërkojë disa kolona të tabelës së vlerave në të njëjtën kohë:


Korniza e Përzgjedhjes = Struktura e re;
StructureSelection.Insert ("Nomenklatura", TV Horizon);
Struktura e përzgjedhjes Insert ("Sasia", 10);
FoundArrayStrings = TZNomenclature.FindStrings (SelectionStructure);

E vetmja pengesë, siç mund ta shihni, nuk mund të përdorni lloje të tjera krahasimi përveç "të barabartë"

Këtu është një fakt i vogël për fillim - shembuj të thjeshtë të punës me një tabelë vlerash:

1. Krijo një tabelë vlerash

ValuesTable = New ValuesTable;


2. Krijoni kolona të tabelës së vlerave:

ValuesTable.Columns.Add ("Emri");
ValuesTable.Columns.Add ("Mbiemri");


3. Shtoni rreshta të rinj duke përdorur emrat e kolonave:


NewStroka.Emri = "Vasily";
NewStroka.Mbiemri = "Pupkin";


4. Si të kërkoni një vlerë në një tabelë vlerash:
Është e nevojshme të gjendet rreshti i tabelës që përmban vlerën e kërkuar.

FoundString = ValueTable.Find (LookupValue);


5. Gjeni paraqitjen e parë në kolonat specifike të tabelës së vlerave

FoundString = ValueTable.Find (SearchValue, "Furnizuesi, Blerësi");


6. Nëse ju duhet të gjeni të gjitha dukuritë në tabelën e vlerave:
Ne përdorim strukturën e kërkimit.

SearchStructure = Struktura ("Punonjës", LookupValue);
ArrayFoundStrings = ValueTable.FindStrings (Struktura e Kërkimit);


Le të krijojmë një strukturë kërkimi, çdo element i së cilës do të përmbajë emrin e një kolone si çelës dhe vlerën e dëshiruar në këtë kolonë si vlerë. Ne ia kalojmë SearchStructure si parametër metodës FindStrings (). Si rezultat, marrim rreshtat e tabelës.
Nëse shtojmë një kërkim për vlerën e kërkuar në strukturën e kërkimit, për shembull, në kolonën Përgjegjës, atëherë si rezultat i përdorimit të metodës FindStrings (), marrim të gjitha rreshtat ku të dy Punonjësi dhe Përgjegjësi janë të barabartë me atë të dëshiruar. vlerë.

7. Si të përsëriteni mbi një tabelë vlerash në mënyrë të rastësishme

Për çdo linjë aktuale nga cikli i tabelës së vlerës
Raporti (CurrentString.Name);
Fundi i Ciklit;

E njëjta gjë duke përdorur indekset:

MajorIndex = VleraTable.Sasia () - 1;
Për MF = 0 në Ciklin e Indeksit Kryesor
Raporti (TableValues ​​[Count] .Emri);
Fundi i Ciklit;


8. Fshirja e një rreshti ekzistues të tabelës së vlerave

ValuesTable.Delete (DeletedString);

sipas indeksit

ValuesTable.Hiq (0);


9. Fshirja e një kolone ekzistuese të tabelës së vlerave

ValuesTable.Columns.Remove (DeletedColumn);


sipas indeksit

ValuesTable.Columns.Remove (0);

Duhet të kihet parasysh se fshirja e një rreshti (ose kolone) "nga mesi" i tabelës së vlerave do të çojë në një ulje me një të indekseve të rreshtave që ishin "pas" fshirjes.

10. Si të plotësoni tabelën e vlerave nëse emrat e kolonave përmbahen në variabla?

NewRow = ValuesTable.Add ();
NewString [ColumnName] = Vlera;


11. Si të plotësoni të gjithë kolonën e tabelës së vlerave me vlerën e kërkuar?
Flamuri i kolonës Fiscal Account në tabelën e vleraveValuesTabela duhet të plotësohet me vlerën False

ValuesTable.FillValues ​​(E rreme, "Flamuri i Kontabilitetit Fiskal");


Aplikoni metodën FillValues ​​() në tabelën e vlerave. Parametri i parë është vlera që duhet të plotësohet. Parametri i dytë është emri i kolonës që do të plotësohet.

12. Si të plotësoni tabelën e vlerave "Tabela e Marrësit" me të dhënat e tabelës së vlerave "Tabela burimore"?

Nëse Tabela e Marrësve nuk ekziston ende në kohën e operacionit ose kolonat e saj të mëparshme nuk kanë nevojë të ruhen, mund ta krijoni atë si një kopje të plotë të origjinalit

ReceiverTable = SourceTable.Copy ();


Opsioni i dytë: ekziston tabela TableRecipient dhe është për të ardhur keq të humbasësh kolonat e saj dhe kufizimet në llojet e të dhënave të kolonave. Por ju duhet të plotësoni të dhënat për kolonat, emrat e të cilave përkojnë me emrat e tabelës burimore.

Transferimi i pjesshëm i të dhënave për kolonat me emra që përputhen:

Për çdo rresht SourceTable Nga SourceTable Loop
FillPropertyValues ​​(NewRow, SourceTableRow);
Fundi i ciklit


Për çdo rresht të tabelës burimore, një rresht i ri shtohet në tabelën marrëse dhe vlerat plotësohen në ato kolona të tabelës së re, emrat e të cilave përkojnë me emrat e kolonave në tabelën origjinale.

Nëse tabelat nuk kanë kolona me emra të njëjtë, tabela dytësore do të përmbajë po aq rreshta me vlera boshe sa rreshtat në tabelën burimore.
Nëse për disa kolona me të njëjtin emër, lloji i vlerës së të dhënave nga tabela burimore nuk bie në grupin e llojeve të kolonave të lejuara të tabelës marrëse, ne do të marrim vlera boshe në fusha të tilla.
Le të shqyrtojmë rastin e tretë. Në rastin e kolonave me të njëjtin emër, kolona e tabelës marrëse duhet të jetë në përputhje të plotë me kolonën e tabelës burimore.

Kopje e plotë e të dhënave për kolonat me emra që përputhen

Kolonat Eponymous = Array i ri ();

Për çdo kolonë nga tabela burimore
MatchingColumn = TableRecipient.Columns.Find (Column.Name);

Nëse përputhet kolona<>E padefinuar Pastaj

// Merrni vetitë e kolonës.
Emri = Kolona.Emri;
ValueType = Column.ValueType;
Heading = Column.Heading;
Gjerësia = Kolona.Gjerësia;

// Zëvendësoni kolonat në tabelën marrëse.
Index = TableReceiver.Columns.Index (MatchingColumn);

TableReceiver.Columns.Remove (Index);
TableReceiver.Columns.Insert (Indeksi, Emri, Vlera Lloji, Header, Gjerësia);

// Shtoni emrin tjetër të kolonave që përputhen në grup.
Kolonat me të njëjtin emër.Add (Column.Name);

FundNëse;

Fundi i Ciklit;

// Kaloni nëpër rreshtat e tabelës burimore.
Për çdo rresht SourceTable Nga SourceTable Loop

// Shtoni një rresht të ri në tabelën e marrësit.
NewRow = TableRecipient.Add ();

// Plotësoni vlerat në qelizat që përputhen.
Për çdo Emër Columns From Like Columns Loop
Rreshti i ri [Emri i kolonës] = SourceTableRow [Emri i kolonës];

Fundi i Ciklit;

Fundi i Ciklit;


Ne do të duhet të zëvendësojmë kolonën në tabelën marrëse me një të re, vetitë e së cilës do të korrespondojnë plotësisht me kolonën e tabelës burimore.
Prandaj, nëse një kolonë me të njëjtin emër gjendet në tabelën e marrësit, ne mbledhim të gjitha vetitë për kolonën e re në variabla. Më pas, fshini të vjetrën dhe krijoni një kolonë të re. Pastaj kalojmë nëpër rreshtat e tabelës burimore.
Në ciklin, shtoni një rresht të ri në tabelën marrëse dhe hapni ciklin për përsëritjen mbi emrat e kolonave në grupin e kolonave që përputhen.
Brenda këtij cikli të mbivendosur, ne mbushim qelizat e tabelës marrëse me të dhënat e qelizës së tabelës burimore.

13. Si të shtoni kolona në tabelën e vlerave "ValuesTable" me kufizime sipas llojit?

Kur shtoni një kolonë, thjesht mund të specifikoni emrin e saj dhe të lini të paprekur parametrin e dytë të metodës Shto (). Në këtë rast, lloji i të dhënave të kolonës është arbitrar.

Shtimi i një kolone pa specifikuar një lloj të dhënash

// Shtoni një kolonë pa kufizime të llojit.
ValuesTable.Columns.Add ("Objekt");


Ju mund të plotësoni vlerën e parametrit të dytë. Përshkrimi i llojit të lejuar për kolonën duhet të kalohet atje. Vetë përshkrimi mund të merret duke përdorur konstruktorin, duke i kaluar këtij të fundit si parametër emrin e llojit të vargut (nëse ka shumë lloje, atëherë ndahen me presje) ose një grup llojesh të pranueshme.

Shtimi i një kolone që tregon llojin e të dhënave

// Kufizimet në llojet e të dhënave të kolonës:
// Vetëm elementë të kërkimit "Contractors".
TableValues.Columns.Add ("Contractor", Përshkrimi i ri i llojeve ("ReferenceLink.Contractors"));


Nëse ka një varg midis llojeve të lejuara për plotësimin e të dhënave të kolonës, mund të kufizoni thellësinë (gjatësinë) e bitit të tij, të specifikoni përdorimin e një gjatësie të ndryshueshme ose fikse. E gjithë kjo realizohet duke krijuar një objekt duke përdorur konstruktorin String Qualifiers. Më tej, ky objekt do të përdoret si një nga parametrat e konstruktorit TypeDescription.

Përdorimi i kualifikuesve për të kualifikuar llojin e të dhënave të kolonës së vlerave të tabelës

// Përgatitja dhe vendosja e kufizimeve për të dhënat e tipit String.
Kualifikuesit e vargut = Kualifikuesit e vargut të ri (20, ValidLength.Variable);
AllowedTypes = NewTypeDescription ("String", StringQifiers);
ValuesTable.Columns.Add ("NoteStringShort", AllowedTypes);


Ju mund të bëni të njëjtën gjë për kualifikuesit e datës dhe datës.
Ju lutemi vini re: përshkrimi i llojit mund të ndërtohet nga konstruktori si "nga e para", dhe ju mund të përdorni një përshkrim ekzistues të llojit si bazë.

Përdorimi i përshkrimeve ekzistuese të llojeve për të specifikuar llojin e të dhënave të një kolone të tabelës së vlerave

// Zgjerimi i përshkrimit të tipit të përdorur më parë.
QualifiersNumber = New QualifiersNumber (10, 2, ValidSign.Jo-negative);
Date Qualifiers = New Date Qualifiers (DateParts.Date);
ExtendedAllowedTypes = NewTypeDescription (AllowedTypes, "Number, Date", Number Qualifiers, Date Qualifiers);

ValuesTable.Columns.Add ("Shënim", ExtendedAllowedTypes);

Tabela e vlerave në platformën 1C 8.3 (8.2) është një koleksion universal i vlerave që një zhvillues mund të përdorë në zhvillimin e softuerit për të zbatuar algoritmet e tyre. Në fakt, një tabelë me vlera 1C është një grup dinamik vlerash që kanë kolona dhe kolona.

Artikuj rreth koleksioneve të tjera universale të vlerave në 1C

Mësoni programimin në 1C në vend nga libri im "Programi në 1C në 11 hapa"

  1. Libri është shkruar në gjuhë të qartë dhe të thjeshtë - për një fillestar.
  2. Mësoni të kuptoni arkitekturën e 1C;
  3. Do të filloni të shkruani kodin në gjuhën 1C;
  4. Të zotërojë teknikat bazë të programimit;
  5. Përforconi njohuritë e marra me ndihmën e një libri me probleme;

Një udhëzues i shkëlqyer për zhvillimin në një aplikacion të menaxhuar 1C, si për zhvilluesit fillestarë ashtu edhe për programuesit me përvojë.

  1. Gjuhë shumë e kapshme dhe e kuptueshme e prezantimit
  2. Libri dërgohet me e-mail në formatin PDF. Mund të hapet në çdo pajisje!
  3. Kuptoni ideologjinë e një aplikacioni të menaxhuar 1C
  4. Mësoni se si të zhvilloni një aplikacion të menaxhuar;
  5. Mësoni të zhvilloni forma të kontrolluara 1C;
  6. Ju do të jeni në gjendje të punoni me elementët kryesorë dhe të nevojshëm të formularëve të menaxhuar
  7. Programimi nën aplikacionin e menaxhuar do të bëhet i qartë

Kodi promovues për një zbritje prej 15% - 48PVXHeYu


Nëse ky mësim ju ndihmoi të zgjidhni ndonjë problem, ju pëlqeu ose doli i dobishëm, atëherë mund të mbështesni projektin tim duke transferuar çdo shumë:

ju mund të paguani manualisht:

Yandex.Money - 410012882996301
Paratë në ueb - R955262494655

Bashkohuni me grupet e mia.

Një tabelë vlerash është një objekt specifik i përgjithshëm për ruajtjen e të dhënave në një pamje tabele. Dallimi kryesor midis tabelave dhe objekteve të aplikacionit është se ato nuk janë të lidhura me tabelat fizike të bazës së të dhënave. Tabela e vlerave ekziston vetëm në RAM, e cila, nga njëra anë, ofron mundësi unike, dhe nga ana tjetër, vendos kufizime të caktuara. Megjithatë, aftësia për të bashkëvepruar me një tabelë është e krahasueshme me bashkëveprimin me objektet që ekzistojnë në të vërtetë në bazën e të dhënave.

Historikisht, tabela e vlerave në 1C ka një qëllim të dyfishtë, duke qenë një analog virtual i tabelave ekzistuese, por në të njëjtën kohë është edhe një element kontrolli. Me kalimin në një aplikacion të menaxhuar, pjesa më e madhe e këtij funksioni është zhvlerësuar, por tani mund të jetë gjithashtu një element i ndërfaqes së përdoruesit, por me një sërë kufizimesh domethënëse.

Struktura e tabelës së vlerave si objekt

Vetitë e një tabele vlerash përcaktohen nga kombinimet e dy koleksioneve të paracaktuara: kolonat dhe rreshtat e saj.

Tabela e vlerave Kolonat

Kolona e tabelës së vlerave është vetia e saj përcaktuese. Është grupi i kolonave në tabelë që përcakton strukturën e tij. Kolonat korrespondojnë me fushat e tabelave fizike ose me kolonat e seksionit tabelor ose të ditarit të dokumentit që janë të njohura nga ndërfaqja e përdoruesit. Një kolonë mund të ketë një emër të brendshëm, një lloj vlere dhe një titull që shfaqet kur ndërveproni me tabelën.

Meqenëse kolonat janë një koleksion objektesh, ju mund të shtoni, hiqni dhe modifikoni kolona.

Rreshti i tabelës së vlerave

Nga pikëpamja e ndërfaqes së programimit, vargjet janë një koleksion i veçantë i ngulitur në një tabelë vlerash. Ato janë analoge me regjistrimet e tabelave fizike, domethënë rreshtat e seksionit tabelor ose ditarin e dokumenteve që janë të njohura për përdoruesin. Çdo rresht i marrë veçmas është një objekt me një grup karakteristikash të emërtuara, emrat e të cilave korrespondojnë me emrat e kolonave të tabelës.

Kështu, bashkëveprimi me një varg është shumë i ngjashëm me bashkëveprimin me objekte të tjera. Ju mund të lexoni dhe shkruani vetitë e tij, duke përfshirë përdorimin e funksionit të paracaktuar "FillPropertyValues ​​()". Meqenëse rreshtat janë koleksioni kryesor i tabelës së vlerave, metoda "Clear ()" përdoret për të fshirë të gjitha rreshtat në tabelë.

Krijoni një tabelë vlerash

Ka shumë mënyra për të bërë gati për përdorim një tabelë vlerash. Le të hedhim një vështrim në disa prej tyre. Çdo shembull do të jepet si listë kodesh me komente.

Krijimi i një tabele nga projektuesi

Metoda kryesore që ju lejon të krijoni një tabelë të tillë që i nevojitet zhvilluesit, për fat të keq, kërkon më shumë kohë, pasi kërkon të specifikoni manualisht të gjitha vetitë e nevojshme të tabelës.

DemoTable = NewValuesTable; // Para së gjithash, ne inicializojmë TOR // Më pas, përcaktojmë parametrat e nevojshëm për kolonat e reja dhe i shtojmë ato në koleksion // Krijo kolonën "Nomenklature" Emri = "Nomenklatura"; ValueType = Përshkrim i ri i llojeve ("ReferenceLink.Nomenklature"); Titulli = "Nomenklatura (produkt)"; DemoTable.Columns.Add (Emri, Vlera Lloji, Titulli); // Krijo një kolonë "Sasia" Emri = "Sasia"; ValueType = NewTypeDescription ("Numri"); DemoTable.Columns.Add (Emri, ValueType); // Si rezultat i këtyre manipulimeve, ne krijuam një tabelë boshe me kolona të shtypura // Nëse keni nevojë të përdorni shtypje më të saktë të llojeve primitive, atëherë duhet të përdorni sintaksën e zgjeruar të konstruktorit "Përshkrimi i llojeve".

Krijimi i një tabele duke kopjuar

Nëse keni në dorë një referencë me një strukturë dhe/ose përbërje të përshtatshme, mund të kopjoni ose shkarkoni tabelën e referencës së vlerave. Nëse referenca është një tabelë tjetër, atëherë është e nevojshme të aplikohet metoda "Kopjo tabelat e referencës". Nëse keni të bëni me një seksion tabelor ose një grup regjistrash, duhet të përdorni metodën "Shkarko tabelën e vlerave". Nëse ju nevojitet vetëm një strukturë, atëherë mund të përdorni metodën "CopyColumns".

// Opsioni me kopjimin e të gjitha rreshtave nga standardi teknik, por duke mbajtur vetëm dy kolonat e specifikuara Kolonat e Standardit = "Nomenklatura, Sasia"; DemoTable = TableDefault.Copy (, ColumnDefault); // Opsion me kopjimin e rreshtave të parazgjedhur nga shablloni TZ, duke mbajtur dy kolonat e specifikuara. ColumnsStandard = "Nomenklatura, Sasia"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opsioni me kopjimin e rreshtave nga standardi TZ me filtrin e specifikuar, duke mbajtur një kolonë "Nomenklatura" // Të gjitha rreshtat do të zgjidhen ku vlera në kolonën Sasia është 0, vetëm kolona e Nomenklaturës do të përfshihet në tabelën që rezulton ., 0); ColumnStandard = "Nomenklatura"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); // Opsioni me kopjimin e plotë të tabelës dhe fshirjen e mëvonshme të një rreshti me vlerën e sasisë së fushës të barabartë me zero dhe fshirjen e të gjithë kolonës “Sasia” Zgjedhja e rreshtave = Struktura e re ("Sasia", 0); ColumnStandard = "Nomenklatura"; DemoTable = TableDefault.Copy (RowsDefault, ColumnDefault); TableRow = DemoTable.Find (0, "Sasia"); DemoTable.Delete (TableRow); DemoTable.Columns.Remove ("Sasia"); // Opsione të ngjashme dhe modifikimet e tyre mund të aplikohen në seksionet e tabelave dhe regjistrimin e grupeve të të dhënave

Krijimi i një tabele me një pyetje

Nëse baza e të dhënave përmban një shabllon për tabelën që ju nevojitet, atëherë mund të përdorni një pyetje për të krijuar shpejt një tabelë me strukturën e dëshiruar.

// Një shembull i krijimit të një tabele boshe bazuar në strukturën e regjistrit të akumulimit // Nuk është e vështirë të merret me mend se në këtë mënyrë mund të merrni një tabelë të mbushur Query = New Query ("SELECT THE FIRST 0 * From Accumulation Register. Produktet në Dyqan"); QueryResult = Query.Run (); DemoTable = QueryResult.Ngarko (); // Një shembull i krijimit të një tabele boshe për llojet dhe emrat e fushave të specifikuara në mënyrë eksplicite Query = New Query; Query.Text = "ZGJEDH PARË 0 | Vlera (Directory.Nomenclature.EmptyLink) SI Nomenklaturë, | SHPREHET (0 SI NUMRI (15, 3)) SI Sasi"; QueryResult = Query.Run (); DemoTable = QueryResult.Ngarko (); // E RËNDËSISHME! Mos harroni se llojet e vlerave të kolonave të marra nga një pyetje përmbajnë gjithmonë llojin Null // Kështu, caktimi teknik i krijuar nga një pyetje ka gjithmonë lloje të përbërë kolonash

konkluzioni

Në këtë artikull të shkurtër, ne kemi mbuluar veçoritë bazë dhe praktikat më të mira për krijimin e një tabele vlerash, të mjaftueshme për t'ju filluar dhe kuptuar. Vetë objekti i tabelës së vlerave është aq i shumëanshëm sa që një përshkrim i hollësishëm i aftësive të tij kërkon shkrimin e një artikulli të veçantë mbi teknikat dhe metodat e punës.

Artikujt kryesorë të lidhur