Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Note
Yhteisön eturyhmät ovat nyt siirtyneet Yammerista Microsoft Viva Engageen. Liity Viva Engage -yhteisöön ja osallistu uusimpiin keskusteluihin täyttämällä Pyydä käyttöoikeutta rahoitukseen ja toimintoihin Viva Engage -yhteisö -lomake ja valitse yhteisö, johon haluat liittyä.
Tässä artikkelissa kuvataan X++-luokkien kirjasto.
On olemassa kahdenlaisia luokkia: sovellusluokat ja järjestelmäluokat.
- Sovellusluokat – Ota nämä luokat käyttöön X++:ssa. Ne löytyvät Koodiluokat-solmusta > Application Explorerista.
- Järjestelmäluokat – Näitä luokkia kutsutaan joskus ydinluokiksi. Ne näkyvät Järjestelmän dokumentaatioluokkien > solmussa Application Explorerissa. Et voi käyttää näiden luokkien lähdekoodia. Luettelo järjestelmäluokista on kohdassa Ohjelmointirajapinta-, luokka- ja taulukkoviittaus.
Sovellusluokan tyypillinen rakenne
Seuraavat koodilohkotyypit ovat vakiona sovellusluokille:
- luokka- ja muuttuja-esittelyt: Luokka-esittely sisältää muokkaajia, kuten julkisia, yksityisiä, ja laajentaa.
- muuttujan esittelyt: Nämä ovat luokasta rakennettujen objektien kenttien jäseniä. Kun kirjoitat avainsanan tämän luokan esiintymämuuttujalle, IntelliSense voi näyttää jäsenten luettelon.
- uusi menetelmä: Tämä menetelmä luo luokan esiintymän. Voit kutsua konstruktoria vain käyttämällä uutta avainsanaa. Johdetut luokat voivat kutsua konstruktorin uutta menetelmää kutsumalla ylämenetelmäviittausta. Lisätietoja on kohdassa X++-periytyminen.
- viimeistelymenetelmä : Tämä menetelmä viimeistelee luokan esiintymän. Tämä menetelmä on destruktorimenetelmä. Se on kuitenkin destruktori vain käytännön mukaan. Järjestelmä ei automaattisesti kutsu viimeistelymenetelmää roskakorin keräämisen aikana.
Muita luokan menetelmiä ovat seuraavat tyypit:
- Esiintymämenetelmät
- Staattiset menetelmät
- Päämenetelmät
Voit luoda menetelmiä monenlaisille kohteille. Seuraavassa on joitakin esimerkkejä:
- Luokat
- Kartat
- Views
- Tietojoukot
- Lomakkeet
- Kyselyt
Sovellusluokkien korvaaminen järjestelmäluokille
Käytä niiden laajentamien järjestelmäluokkien sijaan korvaavia sovellusluokkia .
Application Explorerin Järjestelmän dokumentaatioluokkien >kohdassa useilla ydin- tai järjestelmäluokilla on nimet, jotka alkavat pienillä x-kirjaimilla. Näitä luokkia kutsutaan x-system-luokiksi. Tällaisia järjestelmäluokkia ovat esimerkiksi xApplication ja xVersionControl. Jotkin näistä luokista laajennetaan sovellusluokilla. Esimerkiksi Sovellus-luokka laajentaa xApplication-järjestelmäluokkaa .
X-järjestelmäluokista johdettuja luokkia kutsutaan korvaaviksi sovellusluokiksi. Application Explorerin Luokat-solmun alla olevan korvaavan sovellusluokan vieressä oleva kuvake eroaa vakiokuvakkeesta.
x-system-luokat
Jotkin korvaavat sovellusluokat liittyvät erityiseen yleiseen muuttujaan, joka edustaa luokan esiintymää. Esimerkiksi appl-muuttuja viittaa sovellusluokan esi-alustattuun objektiin. Appl-muuttujan etu on, että järjestelmä säilyttää -objektin koko istunnon laajuuden ajan. Koodisi olisi tehottomampi, jos se hankkisi Application-luokan esiintymän toistuvasti uuden Application()-syntaksin avulla. Älä käytä xApplication-järjestelmäluokkaa . Käytä sen sijaan Sovelluksen korvaava sovellus -luokkaa.
Voit viitata Application-luokan staattisia jäseniä käyttämällä seuraavaa vakiosyntaksia: Application::checkForNewBatchJobs(). Voit kuitenkin viitata Application-luokan jäseniin käyttämällä kyseisen luokan appl-muuttujaa , jos se on olemassa. Tämä malli koskee useimpia x-järjestelmäluokkia. Istunnon korvaava sovellusluokka on yksi poikkeus, koska sessionille ei ole olemassa erityistä yleistä muuttujaa.
Seuraavassa taulukossa on luettelo x-järjestelmän luokista, joilla on vastaava korvaava sovellusluokka. Erityiset yleiset muuttujat näytetään myös niissä luokissa, joilla on sellainen.
| Sovellusluokka | x-system-luokka | Yleinen muuttuja |
|---|---|---|
| Args | xArgs | Ei käytettävissä |
| Sovellus | xApplication | Appl |
| ClassFactory | xClassFactory | classFactory |
| Yritys | xCompany | appl.company |
| Maailmanlaajuinen | xGlobal | Ei käytettävissä |
| Info | xInfo | Infolog |
| MenuFunction | xMenuFunction | Ei käytettävissä |
| Istunto | xSession | Ei käytettävissä |
| VersionControl | xVersionControl | versionControl |
Esimerkki x-system-luokista
Seuraavassa esimerkissä näytetään syntaksi useille erityisille muuttujille, jotka viittaavat korvaavien sovellusluokkien esiintymiin.
TreeNode treeNode;
Args args;
FormRun formRun;
// appl variable
info(appl.buildNo());
// company variable
appl.company().reloadRights();
// infolog variable
treeNode = infolog.findNode("\\forms\\custTable");
info(treeNode.AOTgetProperty("Name"));
// Output is "CustTable".
// classFactory variable
args = new Args(formstr(Batch));
formRun = classFactory.formRunClass(args);
formRun.init();
formRun.run();
formRun.detach();
info("Method is ending. This is a message in the Infolog.");
// Output is "Method is ending. This is a message in the Infolog."
Erän käsittelyluokat
Toteuta luokkia käyttämällä erän käsittelyjärjestelmää sekä laajentamalla RunBase - ja RunBaseBatch-luokkia . Jos haluat poistaa Toistuvuus-painikkeenErän käsittely -valintaikkunasta, käytä Args::p armEnum-menetelmää . Määritä luokka suoritettavaksi palvelimeen sidottuna erämenetelmänä. Palvelimeen sidotut erämenetelmät ovat turvallisempia kuin erämenetelmät, joita ei ole sidottu palvelimeen seuraavista syistä:
- -menetelmä suoritetaan käyttämällä -menetelmän lähettäneen käyttäjän käyttöoikeuksia.
- -menetelmä voi käyttää vain tiettyjä Info - ja Global-luokan menetelmiä vuorovaikutuksessa sitä käsittelevän asiakkaan kanssa. Tämä rajoitus rajoittaa vuorovaikutusta asiakkaan kanssa.
Ota käyttöön luokka suoritettavaksi palvelimeen sidottuna erämenetelmänä
Luo RunBaseBatch-luokkaa laajentava luokka.
Ohita RunBaseBatch.runsImpersonated-menetelmä palauttaaksesi arvon true seuraavassa esimerkissä esitetyllä tavalla.
public boolean runsImpersonated() { return true; }Vahvista, että luokka kutsuu vain seuraavia Info - ja Global-luokan menetelmiä:
- lisätä
- Info.copy
- Info.cut
- Info.import
- Info.export
- Info.line
- Info.num
- Yleinen::virhe
- Yleinen::info
- Yleinen::varoitus
Info.line- ja Info.num-menetelmät periytyvät xInfo-luokasta.
Toistuvuus-painikkeen poistaminen eräkäsittelyn valintaikkunasta
Kun otat luokan käyttöön eräkäsittelyjärjestelmässä, poista Toistuvuus-painike kutsumalla Args.parmEnum-menetelmää ja välittämällä NoYes::Yes-järjestelmän luettelointiarvo. NoYes-järjestelmän luettelointi määrittää, poistetaanko Toistuvuus-painike valintaikkunasta. Oletusarvo on NoYes::No.
Seuraavassa esimerkissä otetaan käyttöön InventTransferMultiShip-luokka . BatchDialog::main-menetelmä luo erän käsittelyn valintaikkunan.
static void noRecurrenceButton(Args _args)
{
Args a;
InventTransferMultiShip inventTransferMultiShip;
a = new Args();
inventTransferMultiShip = InventTransferMultiShip::construct();
a.caller(inventTransferMultiShip);
a.parmEnum(NoYes::Yes);
BatchDialog::main(a);
}
Kuvankäsittelyluokat
Kahden järjestelmäluokan avulla voit käsitellä grafiikkaa ja kuvakkeita: Kuva ja Kuvaluettelo.
- Image – Tämän luokan avulla voit ladata, tallentaa ja käsitellä yksittäisiä kuvia. Voit esimerkiksi siepata näytön ja tallentaa sen kuvana, rajata tai kierrättää kuvaa tai muuttaa värin syvyyttä.
- Kuvaluettelo – Tämän luokan avulla voit käsitellä kuvajoukkoa, jolla on yleisiä ominaisuuksia, kuten koko ja läpinäkyvyysväri. Voit tarkastella kuvaluetteloita, joita ImageListAppl-sovellusluokat käyttävät.
Kyselyobjektimalli
Kyselyobjektimalli sisältää luokkia, joita käytät kyselyn määrittämiseen ja suorittamiseen. Kyselyobjektien avulla voit määrittää kyselyn tietolähteen, palautetut kentät, tietuealueet ja suhteet alitietolähteisiin. Kyselyluokat näkyvät paremmin, kun luot dynaamisen kyselyn koodissa, mutta niitä käytetään myös taustalla, kun luot staattisen kyselyn Application Explorerissa.
Seuraavassa taulukossa kuvataan kyselyobjektimallin luokat.
| Järjestelmäluokka | kuvaus |
|---|---|
| QueryRun | Tämä luokka suorittaa kyselyn ja noutaa tiedot. |
| Query | Tässä luokassa on joitakin ominaisuuksia, ja siinä on yksi tai useampi aiheeseen liittyvä tietolähde. Se on kyselyn määrityksen ylin taso. |
| QueryBuildDataSource | Tämä luokka määrittää yhden tietolähteen käyttöoikeuden kyselyssä. Jos kyselyssä on useampi kuin yksi tietolähde samalla tasolla, kysely tuottaa erilliset SQL-lausekkeet ja suorittaa ne peräkkäin. Jos yksi tietolähde on toisen tietolähteen alikohde, kysely luo liitoksen kahden tietolähteen välille. |
| QueryBuildFieldList | Tämä luokka määrittää tietokannasta palautetut kentät. Kenttäluettelo on oletusarvoisesti dynaaminen ja kaikki kentät palautetaan tietolähdetaulukosta, kartasta tai näkymästä. Jokaisella tietolähteellä on vain yksi QueryBuildFieldList-objekti . Tämä objekti sisältää tietoja kaikista valituista kentistä. Voit määrittää kenttäluettelo-objektiin koostefunktioita, kuten SUM, COUNT ja AVG. |
| QueryBuildRange | Tämä luokka määrittää palautettavien tietueiden alijoukon yksittäisen kentän perusteella. Alue käännetään WHERE-lauseeksi kyselyn SQL-lauseessa. Jos kyselyä rajoitetaan useamman kuin yhden kentän avulla (WHERE-lause ), tietolähde sisältää useamman kuin yhden alueen. |
| QueryBuildDynalink | Tämä luokka sisältää tietoja ulkoiseen tietueeseen liittyvästä suhteesta (rajoituksesta). Kun kysely suoritetaan, nämä tiedot muunnetaan lisämerkinnöiksi kysely SQL-lausekkeen WHERE-lauseessa . Tämä luokka voi olla olemassa vain kyselyn päätietolähteessä. Lomakkeet käyttävät -funktiota, kun kaksi tietolähdettä synkronoidaan. Alitietolähde sisältää sitten yhden tai useamman DLL-kohteen päätietolähteeseen. Funktiota käytetään, vaikka kaksi tietolähdettä sijoitaisiin kahteen eri muotoon, mutta ne synkronoidaan silti. |
| QueryBuildLink | Tämä luokka määrittää liitokseen liittyvän kahden tietolähteen välisen suhteen. Tämä luokka voi olla olemassa vain alitietolähteessä. |
Voit käyttää myös SysDa-ohjelmointirajapintaa tietojen kyselemiseen.
Järjestelmäluokkien yleiskatsaus
Järjestelmäluokkien lähde ei ole käytettävissä. Järjestelmäluokalla voi olla seuraavat ominaisuudet:
- Staattiset menetelmät (tai luokkamenetelmät)
- Dynaamiset menetelmät
- Ominaisuudet – Nämä ominaisuudet ovat jäsenfunktioita, jotka määrittävät ominaisuuksia. Esimerkki on LeftMargin.
Et voi ohittaa järjestelmäluokan menetelmiä. Sitä ei ole tarkoitettu sovellusobjektien suunnitteluun alusta alkaen järjestelmäluokkien avulla. Käytä niitä sen sijaan Application Explorerin oletustoimintojen laajentamiseen tai muokkaamiseen. Voit esimerkiksi lisätä dynaamisesti lisätietoja aiemmin luotuun raporttiin. Vaihtoehtoisesti voit muuttaa sivulla käytettävissä olevia asetuksia sen mukaan, mitä käyttäjä valitsi edellisellä sivulla.
Kokoelmaluokat
Kokoelmaluokkien avulla voit luoda luetteloita, joukkoja, struktseja, karttoja ja matriiseja.
Sovellusobjektiluokat
Näissä järjestelmäluokissa on funktioita, jotka aktivoituvat aina, kun luot sovelluksen Application Explorerin avulla. Järjestelmä käyttää esimerkiksi FormDesign-luokkaa, kun määrität lomakkeen asettelun Application Explorerin Suunnittelut-solmussa. Näiden luokkien avulla voit myös luoda ja muokata sovellusobjekteja.
Integrointiluokat
Luokat ottavat yleensä käyttöön integroinnin ympäristössä. Seuraavassa on joitakin esimerkkejä tämän luokan luokista:
- COM – COM-objektien menetelmien kutsu.
- DLL – Microsoft Windows DLL -funktioiden kutsu.
- IO – Lue ja kirjoita ulkoisia tiedostoja.
- ODBCConnection – Open Database Connectivity (ODBC) -liittymä ulkomaiseen tietokantaan.