access-app.json
Projektna datoteka aplikacije Access, ki jo zgradi tools/build/Build-AccessApp.ps1: iz česa je aplikacija
sestavljena in kje so njene besedilne izvorne datoteke. Vir je repozitorij; datoteki ACCDB in ACCDE sta izdelka
gradnje.
Novi projekti: WKL Office SDK gradi, izvaža in preverja aplikacije Access iz izvornih datotek z več koraki kot to orodje za gradnjo (stanje in usklajevanje z odprtim programom Access, krožna preverba, MSBuild, dodatek za Access),
access-app.jsonpa prevzame zwkl-office migrate access-app.json -o <folder>(dokumentacija WKL Office SDK, navodilo za selitev projekta orodja za gradnjo). To orodje za gradnjo za obstoječe projekte deluje še naprej.
Podpis
{
"name": "Kunden",
"output": "out",
"references": [
{ "library": "WklForms", "major": 2, "minor": 0 },
{ "library": "WklJSON", "major": 1, "minor": 0 },
{ "guid": "{00025E01-0000-0000-C000-000000000046}", "major": 5, "minor": 0 }
],
"tables": "src/tables",
"modules": "src/modules",
"macros": "src/macros",
"theme": { "folder": "src/theme", "name": "Riviera" },
"ribbons": "src/ribbons",
"queries": "src/queries",
"forms": "src/forms",
"reports": "src/reports",
"controlBlocks": "src/controls",
"properties": { "AppTitle": "Kunden", "StartUpForm": "frmShell", "CustomRibbonID": "AppRibbon", "StartUpShowDBWindow": false },
"appModel": "src/app/app-model.json",
"accde": true,
"deploy": { "folder": "deploy", "version": "1.4.0", "targets": ["Administration", "Production"] }
}
Povzetek
Poimenuje aplikacijo in njene mape z izvornimi datotekami. Vsi vnosi razen name so izbirni; mapa, ki ni
navedena, se ne gradi. Poti so relativne glede na mapo projektne datoteke; absolutna pot (na primer themes/riviera iz paketa izdaje) se uporabi takšna, kot je, tako pri gradnji kot pri izvozu.
Parametri
| Vnos | Vrsta | Privzeto | Opis |
|---|---|---|---|
name | besedilo | – | Ime datoteke ACCDB in ACCDE (črke, števke, _, ., -). |
template | besedilo | brez | Projekt predloge, iz katerega se aplikacija tudi gradi: mapa z lastno datoteko access-app.json (absolutna, relativna glede na projektno datoteko ali ime iz mape templates paketa izdaje, na primer app-shell). Njene datoteke se pridružijo mapam aplikacije, datoteka aplikacije z enakim imenom nadomesti datoteko predloge; references in properties se združijo (prednost ima aplikacija), theme, ribbonModel, navPaneModel, controlBlocks in finish pa se vzamejo iz predloge, kadar jih aplikacija ne navaja. Predloga, ki sama navaja predlogo, se zavrne. |
output | besedilo | out | Izhodna mapa; -Output skripta jo preglasi. |
references | seznam | brez | Sklici, ki se dodajo: library = WklForms ali WklJSON (knjižnici tipov WKL) ali guid poljubne knjižnice tipov; major in minor sta različica. |
tables | mapa | brez | Datoteke *.sql, ki se izvedejo po vrstnem redu imen; stavki so ločeni z vrstico, ki vsebuje samo ; (CREATE TABLE, CREATE INDEX, INSERT v Access SQL). Vrstice, ki se začnejo z --, se izpustijo; Access SQL nima komentarjev, zato se -- za stavkom v isti vrstici zavrne (napaka 3078). |
modules | mapa | brez | *.bas in *.cls, kot jih izvozi urejevalnik VBA (UTF-8), tudi v podmapah; ime modula je ime datoteke. |
macros | mapa | brez | Makri *.txt, kot jih zapiše SaveAsText; ime makra je ime datoteke. |
theme | objekt | brez | folder z deli teme Office (razpakirana datoteka .thmx), name je ime teme. |
ribbons | mapa | brez | Definicije trakov *.xml (UTF-8); ime traku je ime datoteke. |
ribbonModel | datoteka | brez | Model oblikovalnika trakov (JSON, UTF-8; od 1.49): preveri se, njegovi trakovi se zapišejo v USysRibbons poleg trakov iz ribbons, model v USysWklRibbon, CustomRibbonID se nastavi na njegov trak aplikacije, modul s povratnimi klici basWklRibbon pa se ustvari. Od 1.53 se njegove dodelitve priročnih menijev zapišejo v obrazce in poročila, ko so ti naloženi (lastnost ShortcutMenuBar objekta ali kontrolnika); dodelitev, ki navaja obrazec ali poročilo, ki ga gradnja ne ustvari, gradnjo ustavi, ime kontrolnika, ki ga obrazec nima, pa se prezre. Zahteva WKL Forms Object Library 1.49, registrirano v računalniku za gradnjo (1.53 za dodelitve). |
appModel | datoteka | brez | Model WKL Application Designer (JSON, UTF-8; od 1.51; ključi: app-model.json): naslov, ikona, začetni obrazec, trak in uporabniški vmesnik vsakega načina. Preveri se, shrani v USysWklApp in za razvoj uporabi po properties; zagonska lastnost, navedena na obeh mestih, se vzame iz modela, z opozorilom. Njegov icon je datoteka ob modelu, ki se shrani v podatkovno zbirko. Zahteva WKL Forms Object Library 1.51, registrirano v računalniku za gradnjo. |
navPaneModel | datoteka | brez | Model oblikovalnika podokna za krmarjenje (JSON, UTF-8; od 1.50; ključi: navpane.json): shrani se v USysWklNavPane in uporabi, ko obrazci in poročila obstajajo – lastna kategorija podokna za krmarjenje programa Access z njenimi skupinami in bližnjicami, zapisana za okolje gradnje. Vnos, katerega objekta podatkovna zbirka nima, gradnjo ustavi. Zahteva WKL Forms Object Library 1.50, registrirano v računalniku za gradnjo. |
queries | mapa | brez | <name>.query.txt, kot jih zapiše SaveAsText. |
forms | mapa | brez | <name>.form.txt, kot jih zapiše SaveAsText, UTF-16 ali UTF-8. |
reports | mapa | brez | <name>.report.txt, kot jih zapiše SaveAsText. |
controlBlocks | mapa | control-blocks iz paketa izdaje (v repozitoriju docs/control-blocks) | Gradniki kontrolnikov <Kind>.control.txt za pravokotnike z ogradami. |
properties | objekt | brez | Lastnosti podatkovne zbirke: true/false postanejo lastnosti Da/Ne, cela števila Long, vse drugo besedilo (AppTitle, StartUpForm, CustomRibbonID, StartUpShowDBWindow, AllowBypassKey …). |
finish | besedilo | brez | Ime javne funkcije standardnega modula iz modules, ki jo gradnja izvede po lastnostih, pred zadnjim prevajanjem in pred ACCDE, v isti seji programa Access (od 1.45.1). Za korake, ki jih orodje ne pozna: skupine podokna za krmarjenje, skriti objekti, začetni obrazec, nastavljen na koncu. Ob uspehu vrne "" ali "OK"; vsako drugo besedilo gradnjo ustavi s tem besedilom. Samo ime funkcije: Application.Run ne sprejme imena modula. |
accde | Da/Ne | true | false zgradi samo ACCDB. |
deploy | objekt | brez | Izdaja (od 1.51; zahteva appModel): version (obvezno, na primer 1.4.0), targets (Development, Administration, Production; privzeto ["Production"]), folder (privzeto deploy). Vsak cilj dobi mapo <folder>\<target in lower case> (na primer deploy\production) s kopijo datoteke ACCDB (razvoj) ali ACCDE, zagonskimi lastnostmi svojega načina, `app-manifest.json` in od 1.55 datoteko INSTALL.txt s koraki, s katerimi Access v računalniku začne zaupati kopiji (v angleščini in nemščini). -Target skripta zgradi samo en cilj. |
Vnos, ki ga skript ne pozna, se zavrne s seznamom znanih vnosov, tako da zatipkano ime ne izpusti dela aplikacije brez opozorila.
Opombe
- Vrstni red gradnje: sklici, tabele, moduli in makri, prevajanje, tema (vdelana, podatkovna zbirka znova odprta, preverjena), trakovi, model trakov, poizvedbe, obrazci, poročila, model podokna za krmarjenje, lastnosti, model aplikacije, funkcija
finish, prevajanje, ACCDE, izdaja. Obrazci pridejo za temo, ker Access vdelano temo uporabi samo za obrazce, ustvarjene po ponovnem odprtju podatkovne zbirke. - Katero različico zabeleži sklic:
majorinminorsta najnižja različica, ki jo zahteva gradnja, ne pa tista, ki jo hrani podatkovna zbirka. Access zabeleži najvišjo različico te knjižnice tipov, registrirano v računalniku za gradnjo, z isto glavno različico: če je registrirana izdaja 2.3,{ "library": "WklForms", "major": 2, "minor": 0 }da sklic na 2.3 v datoteki ACCDB in v datoteki ACCDE. Nižjiminortorej ne omogoči, da bi ACCDE delovala v računalnikih s starejšo izdajo; kaj ACCDE, zgrajena z novejšo izdajo, naredi v takem računalniku, je opisano v razdelku o vrstnem redu posodobitve v navodilu deploy-to-user-pcs. Če želite, da podatkovna zbirka ostane uporabna s starejšo izdajo, jo zgradite v računalniku, v katerem je ta izdaja registrirana. Gradnja zapiše zabeleženo različico vrequiresdatoteke app-manifest.json in opozori, kadar je višja odmajor.minor. - Ograde za kontrolnike WKL: pravokotnik v obrazcu, katerega lastnost Tag je
wkl:<Kind>–wkl:Grid,wkl:TreeList,wkl:ToggleSwitch… kot imena datotek vdocs/control-blocks–, se zamenja s tem kontrolnikom z imenom, položajem in velikostjo pravokotnika, in z njegovimi sidri (HorizontalAnchor,VerticalAnchor), kadar jih pravokotnik ima. Potrebno samo za obrazce, ki jih ustvari skript; obrazec, urejen v programu Access in shranjen sSaveAsText, svoje kontrolnike WKL že vsebuje. - Zaključna funkcija mora sama obravnavati svoje napake. Napaka, ki je ne obravnava, odpre pogovorno okno VBA za napako med izvajanjem, ki ga skriti Access nikoli ne prikaže: gradnja se nato konča ob časovni omejitvi (
-TimeoutSeconds). Napake prestrezite in jih vrnite kot besedilo. - Projekt VBA se mora prevesti. Če se ne, se gradnja ustavi (
IsCompiled) in navede korak; napaka pri prevajanju, ki čaka na pogovorno okno, se konča ob časovni omejitvi. - Model trakov in izvoz:
Export-AccessAppzapiše model nazaj v datotekoribbonModelbajt za bajtom (podatkovna zbirka hrani njegovo kanonično besedilo) in izpusti, kar pripada modelu: modulbasWklRibbonin trakovi modela v USysRibbons se ne zapišejo kot datoteke. Ročno urejen model se po prvi gradnji in izvozu vrne v kanonični obliki. Dodelitve priročnih menijev ostanejo v modelu; izvožena besedila obrazcev in poročil nosijoShortcutMenuBar, ki ga je zapisala gradnja, zato druga gradnja ne zapiše nič novega. - Model podokna za krmarjenje in izvoz:
Export-AccessAppzapiše model nazaj v datotekonavPaneModelbajt za bajtom; lastne tabele podokna programa Access se ne izvozijo. Skupine in vnosi s pogoji se zapišejo za računalnik za gradnjo (ACCDB); aplikacija, katere podokno se razlikuje glede na okolje, ob zagonu pokličeWklNavPane.Apply. - Izdaja brez odpiranja aplikacije: zagonske lastnosti cilja se v njegovo kopijo zapišejo z DAO; kopija se nikoli ne odpre, zato se njen začetni obrazec med gradnjo ne zažene. Lastnosti začnejo učinkovati, ko se kopija prvič odpre (večino jih Access prebere šele ob odpiranju).
AppIconse iz kopije odstrani – navajal bi datoteko v računalniku za gradnjo – in ga ob prvem zagonu zapišeWklApplication.EnsureApplication; ikona učinkuje takoj. - Česa
deployne naredi: ničesar ne namesti, ničesar ne registrira in ne nastavi zaupanja vrednega mesta. Mapa je tisto, kar zaganjalnik ali skrbnik postavi v uporabnikov računalnik. - Model aplikacije in izvoz:
Export-AccessAppzapiše model nazaj v datotekoappModelbajt za bajtom, shranjeno ikono pa kot datoteko ob njem. - Predloga in izvoz:
Export-AccessAppne zapiše nobenega objekta predloge v aplikacijo, razen če aplikacija že hrani datoteko s tem imenom (ki nadomesti objekt predloge). Če želite objekt predloge spremeniti za eno aplikacijo, najprej v mapo aplikacije postavite datoteko z enakim imenom. - Kodiranje besedila: moduli in trakovi UTF-8; obrazci, poročila, poizvedbe in makri, kot jih zapiše
SaveAsText(UTF-16), obrazci tudi UTF-8 z oznako vrstnega reda bajtov.
Primer kode
Projekt z lupino in eno stranjo, s knjižnico WKL Forms Object Library 1.38 in s trakom po meri:
{
"name": "Kunden",
"references": [ { "library": "WklForms", "major": 2, "minor": 0 } ],
"tables": "src/tables",
"modules": "src/modules",
"ribbons": "src/ribbons",
"forms": "src/forms",
"properties": { "AppTitle": "Kunden", "StartUpForm": "frmShell", "CustomRibbonID": "AppRibbon" }
}
Dedovanje
Ni.