Internet Windows Android
Kengaytirish

Sizda savol bor va maslahatchi yordamiga muhtojsiz.

Har qanday dasturlash tilida topilishi mumkin bo'lgan ibtidoiy ma'lumotlar turlaridan tashqari, 1C da o'ziga xos turlari mavjud. Ularning har biri tizimda foydalanishning o'ziga xos xususiyatlari, usullari, funktsiyalari, maqsadi va nuanslariga ega. Ushbu turlardan biri dinamik ro'yxat bo'lib, u ko'plab amaliy vazifalarni sezilarli darajada osonlashtiradi. Shuning uchun ishlab chiquvchilar ushbu universal vositani bilishi va boshqarishi kerak.

1C da dinamik ro'yxatlarning xususiyatlari

Ushbu turning maqsadi, turidan qat'i nazar, har qanday ma'lumotlar bazasi jadvallaridan ma'lumotlarni ko'rsatishdir. Mexanizm SKD asosida yaratilgan va shunga o'xshash imkoniyatlarga ega. Ammo bu siz 1C tilida so'rov yozishingiz kerak degani emas, garchi bu imkoniyat mavjud va undan foydalanish kerak. Siz shunchaki ma'lumotlari sizni qiziqtirgan jadvalni belgilashingiz mumkin va 1C mustaqil ravishda oddiy so'rovni yaratadi.

Dinamik ro'yxat qanday tuzilganligini va u qanday ma'lumotlarni ko'rsatishini ko'rish uchun siz konfiguratorda joylashgan boshqariladigan shakllarni ochishingiz kerak: tafsilotlar ro'yxatida uning xususiyatlarini ochish uchun kontekst menyusidan foydalaning va "Maxsus ro'yxat" ga e'tibor bering. So'rov" bandi. Agar katakcha bo'lmasa, "Asosiy jadval" parametri ma'lumotlar olingan ma'lumotlar bazasi jadvalini aks ettiradi. Aks holda, dinamik ro'yxat maxsus so'rov ma'lumotlarini aks ettiradi, uni ro'yxat sozlamalarini ochish orqali ko'rish mumkin.

Maxsus so'rovlar sxemasi ko'proq qo'llaniladi, chunki bu turli xil ma'lumotlarni birlashtirish va ko'rsatish uchun ajoyib imkoniyatni beradi. Ko'pincha, bu mexanizm ombor qoldiqlarini, tovarlar narxini, tushumlarni, xarajatlarni yoki xaridlarni aks ettirish uchun ishlatiladi. Uni ehtiyotkorlik bilan ishlatishingiz kerak, chunki murakkab so'rovlar uchun unumdorlik pasayishi mumkin.

Dinamik ro'yxatning yana bir foydali xususiyati "Ro'yxat sozlamalari" yozuvini bosganingizda ochiladi. Ushbu menyu, hatto standart maydonlar to'plamidan foydalanganda ham oxirgi foydalanuvchilar uchun ma'lumotni yanada qulayroq va tushunarli qilish imkonini beradi. So'rov o'zboshimchalik bilan yoki yo'qligidan qat'i nazar, siz "Sozlamalar" yorlig'ini ko'rasiz, bu erda siz quyidagilarni belgilashingiz mumkin:

  • Dinamik ro'yxatni tanlash;
  • Guruhlar;
  • Tartiblash;
  • Dekor.

Parametrlardan foydalanish dinamik ro'yxatlarni universal va juda moslashuvchan qiladi. Siz ularni boshqariladigan shakldagi tafsilotlarga ham bog'lashingiz mumkin va ma'lumotlar foydalanuvchi tanlagan parametrlarga qarab o'zgaradi. Ushbu mexanizmlardan foydalanishni hayotdagi muammolar misollarini ko'rib chiqish orqali tushunish va qadrlash mumkin.

Misol sifatida, nomenklatura qoldiqlarini boshqariladigan shaklda aks ettirish vazifasini ko'rib chiqing. Haqiqiy amaliyotda bunday buyurtmalar turli xil konfiguratsiyalarda tez-tez uchraydi va dinamik ro'yxat vosita sifatida idealdir. Ushbu vazifani bajarish uchun biz maxsus so'rov, dinamik ro'yxat parametrlari va uning sozlamalaridan foydalanishimiz kerak.

Aniqroq bo'lishi uchun keling, alohida tashqi ishlov berishni yaratamiz va unga dinamik ro'yxatni joylashtiramiz. Rejalarimizni amalga oshirish uchun nomenklaturali jadval etarli bo'lmaydi, shuning uchun biz o'zboshimchalik bilan so'rovga ruxsat berishimiz kerak. Unda biz katalogning ob'ektlar ro'yxati va qoldiqlar reestri bilan chap ulanishini tasvirlab beramiz va katalogni asosiy jadval sifatida o'rnatamiz. Ushbu sxema dinamik ro'yxat bilan ishlaydigan foydalanuvchilarga elementlarni qo'shish yoki o'zgartirish imkonini beradi.



Nomenklatura roʻyxatini tanlang. Nom AS nomi, Ombordagi tovarlar Qolganlar. Ombor sifatida omborlar, Tovarlar Ombordagi qoldiqlar. Miqdor Katalogdan qolgan miqdor. US treasuresRemaining software NomenclatureList.Link = ProductsInWarehousesRemainings.Nomenklatura WHERE

Bizning so'rovimiz "CurrentDate" parametridan foydalanganligi sababli, ishlov berishdan oldin uning qiymatini belgilashimiz kerak. Buning uchun "When CreatedOnServer" protsedurasidagi forma modulida standart buyruq yordamida unga "CurrentSessionDate" funksiyasini tayinlang. Shuningdek, biz dinamik ro'yxatni nazorat formasida ko'rsatishimiz va aniqlik uchun maydonlar tartibini o'zgartirishimiz kerak. Shakl elementlariga (yuqori chap qism) “Nomenklatura qolgan” atributini torting va shakldagi jadvaldagi maydonlar tartibini o‘zgartirish uchun ko‘k o‘qlardan foydalaning.

&Serverda yaratilayotganda server protsedurasi boʻyicha (muvaffaqiyatsizlik, standart ishlov berish) nomenklaturasi qoladi Parametrlar ParameterValue("CurrentDate", CurrentSessionDate()) EndProcedure


Ushbu bosqichda biz 1C da tashqi ishlovimizni ochishimiz va dinamik ro'yxat ishlayotganini ko'rishimiz mumkin. Biz balanslarni ko'rib chiqishimiz, elementlar va guruhlar yaratishimiz va qidirishimiz mumkin. Ko'pincha mijozlar balanslarni ko'radigan sanani tanlash imkoniyatini qo'shishni so'rashadi. Dinamik ro'yxatga ega bo'lgan shaklda bunga qo'shimcha maydon va uning yordamida parametrlarni o'rnatish orqali erishiladi.

"Sana" turidagi "Sana qolgan" atributini qo'shing va uni shakl elementlariga o'tkazing. Dala voqealarida biz "OnChange" hodisasini yaratamiz va dinamik so'rovda ishlatiladigan "CurrentDate" parametrini o'rnatish uchun kodni yozamiz. Shaklni ochganda, foydalanuvchi balanslarni qaysi sanada ko'rishini darhol anglashi uchun biz "When CreatedOnServer" protsedurasiga kichik o'zgarishlar kiritamiz.



&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing)RemainingDate = CurrentSessionDate(); Element Remains.Parameters.SetParameterValue("CurrentDate", RemainingDate); Protseduraning tugashi &Mijoz protsedurasi bo'yicha Qolgan sana O'zgarganda(Element)Nomenklatura Qolgan.Parameters.SetParameterValue("CurrentDate",RemainingDate); Jarayonning oxiri

Natijada, bizning Dinamik ro'yxat shaklimiz istalgan sanadagi qoldiqlarni aks ettirishi mumkin.

Biz ushbu asboblar to'plamining imkoniyatlarining faqat kichik qismini ko'rib chiqdik, ammo bu dinamik ro'yxatning ushbu turining qulayligini tushunish uchun allaqachon etarli. Shunga o'xshash mexanizm ko'plab vazifalar uchun ishlatiladi, lekin u ko'pincha boshqariladigan shakllardagi odatiy konfiguratsiyalarda topiladi:

  1. Tanlov;
  2. Ro'yxatlar.

Dinamik ro'yxat va uning so'rovini standart boshqariladigan shakllarda olish uchun ishlab chiquvchi konfiguratorda kerakli shaklni ochishi kerak. Tafsilotlar bo'limida "DynamicList" ma'lumotlar turi bilan ma'lumotlarni toping (ko'pincha u qalin rang bilan ta'kidlangan). Uning xususiyatlari so'rov matni, tanlovlar va boshqa sozlamalarni o'z ichiga oladi.

Konfiguratsiyalarni yakunlash jarayonida har bir 1C dasturchisi dinamik ro'yxatlarga duch keladi.
Dinamik ro'yxat ma'lumotlar bazasi ob'ektlari yoki ob'ekt bo'lmagan ma'lumotlarning turli ro'yxatlarini ko'rsatish uchun ishlatiladigan interfeys ob'ekti - registr yozuvlari.
Masalan, dinamik ro'yxat elementlar ro'yxatini ko'rsatish uchun ishlatiladi:

Dinamik ro'yxatning imkoniyatlarini ko'rsatish uchun tashqi ishlov berishni yaratamiz va asosiy shaklni qo'shamiz. Keling, "Dinamik ro'yxat" turi bilan shaklga yangi atribut qo'shamiz. Keling, uning xususiyatlariga kirib, u erda nima borligini ko'rib chiqaylik.
Bizni "Maxsus so'rov" xususiyati qiziqtiradi. Uni yoqish bizga dinamik ro'yxatning barcha imkoniyatlarini ko'rsatadi. Biz 1C: Enterprise tizimi so'rovlar tilining deyarli barcha imkoniyatlaridan foydalangan holda so'rov yozish imkoniyatiga ega bo'lamiz. Qutini belgilang va "Ochish" havolasini bosing:

Odatiy bo'lib, bizning ro'yxatimizda barcha omborlar uchun umumiy balansga ega bo'lgan narsalar ro'yxati ko'rsatiladi. Bunday ro'yxatni amalga oshirish uchun quyidagi so'rovni qo'shing:


Asosiy jadval sifatida biz "Katalog.Nomenklatura" ni tanlaymiz, bu bizga nomenklatura ro'yxatidagi kabi dinamik ro'yxat bilan ishlashga imkon beradi - o'chirish uchun katalog elementlarini qo'shish, o'zgartirish, belgilash. Bundan tashqari, asosiy jadvalni o'rnatish ma'lumotlarni dinamik ravishda o'qish imkonini beradi - bu tanlov kerak bo'lganda qismlarga bo'linishini anglatadi.
Keyin ro'yxatimiz uchun forma elementlarini yaratishimiz kerak:

Agar biz ushbu shaklda ishlov berishni amalga oshirishga harakat qilsak, biz xatoga duch kelamiz:


Uni yo'q qilish uchun siz "Davr" parametri uchun qiymatni belgilashingiz kerak. Buning uchun dinamik ro'yxatning "Parameters" to'plamining "SetParameterValue" usulidan foydalanishingiz mumkin. Usul ikkita parametrni oladi:
. "Parametr" - Turi: String; DataCompositionParameter. Siz o'rnatmoqchi bo'lgan parametr yoki ma'lumotlar tarkibi parametrining nomi;
. "Qiymat" - Turi: ixtiyoriy. Belgilanadigan qiymat.
Shaklning "OnCreateOnServer" ishlov beruvchisida chaqirilishi mumkin:

Savolingiz bormi yoki maslahatchi yordamiga muhtojmisiz?


Biz foydalanuvchiga qoldiqlarni olish muddatini o'zgartirish imkoniyatini beramiz. Buning uchun atributni va u bilan bog'langan "Sana" shakl elementini qo'shing:


"Sana" forma elementining "OnChange" ishlov beruvchisida biz "SetParameterValue" usulini chaqiramiz va tegishli atributning qiymatini qiymat sifatida o'tkazamiz. Xuddi shunga o'xshash shaklning "Serverda yaratishda" protsedurasini o'zgartiramiz. Usul mijozda mavjud bo'lgani uchun serverga qo'ng'iroq qilishning hojati yo'q:


Endi sana o'zgarganda, balanslar avtomatik ravishda yangilanadi:




Faraz qilaylik, foydalanuvchilar joriy qoldiqlarni yoki rejalashtirilgan tushumlarni ko'rishni xohlaydilar. Keling, amalga oshirish variantlaridan birini ko'rib chiqaylik. Keling, mantiqiy turdagi forma atributini va tegishli kalitni qo'shamiz:


Kommutatorning qiymatini o'zgartirganda, biz so'rov matnini o'zgartiramiz. Buni amalga oshirish uchun biz "O'zgartirishda" hodisa ishlovchisidan "Olingan miqdorni ko'rsatish" forma elementi uchun foydalanamiz. Atribut qiymatiga qarab dinamik ro'yxatning "QueryText" xususiyatini o'zgartirishimiz kerak. Ushbu xususiyat mijozda mavjud emasligi sababli, server protsedurasini chaqirish kerak:


Kiritilgan o'zgarishlar natijasi:



Platforma 1C: Enterprise 8.2 ma'lumotlar bazasi jadvalidagi ko'plab yozuvlar bilan dinamik tarzda ishlashi mumkin, ya'ni ma'lumotlarni qismlarga bo'lib o'qiy oladi. Ilgari maqolalarda biz dinamik ro'yxatlar mexanizmini va ular bilan ishlashni optimallashtirish usullarini ko'rib chiqdik.

Bugun biz dinamik ro'yxatlar uchun nostandart muammoni hal qilamiz. Hujjatning "Miqdori" atributidan foydalanib, jami miqdorni hisoblashimiz va uni ro'yxatning pastki qismida ko'rsatishimiz kerak. Xuddi shunday, "Reyting" maydoni uchun o'rtacha qiymatni hisoblang va uni dinamik ro'yxatning pastki qismida ham ko'rsating. Jami maydonlarni hisoblashda foydalanuvchi tomonidan hujjatlar ro'yxati sozlamalarida o'rnatilgan tanlovni hisobga olish kerak.

Butun qiyinchilik shundaki, dinamik ro'yxat barcha yozuvlarni bir vaqtning o'zida qabul qilmaydi, lekin ularni qismlarga bo'lib oladi. Shunga ko'ra, biz joriy tanlovga mos keladigan barcha hujjatlarning qisqacha mazmunini darhol ololmaymiz. Umumiy miqdorni qanday hisoblash mumkin?

Amalga oshirish

Shunday qilib, keling, muammoni hal qilishga o'taylik. Shaklni o'zgartirishdan boshlaylik, keyin biz yakuniy qiymatlarni olish algoritmini tasvirlaymiz.

Shakl va interfeys

Birinchidan, natijada paydo bo'lgan maydonlarni ko'rsatish uchun hujjat shaklini tayyorlaymiz. Buning uchun biz "Reyting" va "Miqdor" shakllarining ikkita qator tafsilotlarini qo'shamiz.

Hujjatlar uchun umumiy qiymatlar ushbu tafsilotlarda qayd etiladi.

Tafsilotlar qiymatlarini dinamik ro'yxatning pastki qismida ko'rsatish uchun ro'yxat shaklining tegishli elementi uchun mos variantni yoqishingiz kerak (quyidagi skrinshotga qarang).

Endi siz ro'yxatning altbilgisidagi natijalar qanday voqea yangilanishini hal qilishingiz kerak. Rivojlanish qulayligi uchun buyruqlar paneliga "Yangilash" buyrug'ini va mos keladigan shakl elementini qo'shamiz. Ushbu buyruq bajarilganda, jamilar yangilanadi.

Maqolaning oxiridagi havoladan yuklab olishingiz mumkin bo'lgan test konfiguratsiyasida men hujjatni yozib olishda xulosa yangilanish hodisasini ham qo'shdim. Bunday holda, shaklni bildirish mexanizmi qo'llaniladi. Biz bu haqda batafsil to'xtalmaymiz.

Algoritm

Eng muammoli qismi qolmoqda - siz umumiy qiymatlarni olishingiz kerak. Keling, quyidagicha davom etamiz: dinamik ro'yxatdagi tanlovga muvofiq yakuniy maydonlarning qiymatlarini olish uchun ma'lumotlar bazasiga so'rovni shakllantiramiz. Tanlash guruhlardan murakkab shartga ega bo'lishi mumkinligini hisobga olish kerak.

Eslatma: dinamik ro'yxatlar uchun sozlamalar (yuqoridagi skrinshotga qarang) ma'lumotlar tarkibi tizimi (DCS) mexanizmlariga asoslangan. Shunga ko'ra, siz ular bilan shunga o'xshash tarzda ishlashingiz mumkin (dasturiy ravishda qo'shish, o'zgartirish, o'qish va h.k.).

Natijalarni olish uchun so'rovni shakllantirish bosqichlari quyidagilardan iborat:

1. Biz dinamik ro'yxat uchun dastlabki so'rovni olamiz.

Ko'rib turganimizdek, so'rov barcha hujjat tafsilotlarini tanlaydi. Biroz murakkablik kiritish uchun men "SELECT" konstruktsiyasi tomonidan yaratilgan o'zimning "Reyting darajasi" maydonini qo'shdim.

2. Biz so'rov shartlari matnini ("QAYER" bo'limi) shakllantiramiz va uni asl so'rovga almashtiramiz.

Qabul qilingan manba so'rov matniga konfiguratsiya qilingan dinamik ro'yxat tanloviga muvofiq shartlar qo'shishimiz kerak.

O'tkazilgan tanlov elementining (guruh yoki tanlov elementi) turiga qarab protsedura mos keladigan shart matnini yaratadi. Guruhdagi barcha shartlar qavslar ichida, guruhga kiritilgan shartlar ham qavslar bilan o'ralgan. Ifodalar orasidagi shartlar asosiy guruhga bog'liq ("VA" sharti ierarxiyaning yuqori elementlari orasiga joylashtirilgan).

Agar elementda foydalanish bayrog'i o'rnatilgan bo'lsa ("Foydalanish" xususiyati), u holda element qayta ishlanadi. Yaratilgan matn ham taqqoslash shartiga bog'liq (Teng, teng emas, ro'yxatda va boshqalar). Tuzilgan shart matnining taqqoslash turiga bog'liqligini quyidagi funksiyada ko'rish mumkin.

Yana bir qiziqarli funksiya, menimcha, "GetFieldTextByView". Bu so'rovlar tilidagi ifodalar bilan tuzilgan maydonlarni so'rov shartlariga almashtirish uchun kerak. Yuqorida men asl so'rovga "Reyting darajasi" maydonini qo'shdim. Agar foydalanuvchi uni tanlashda ishlatsa, unda butun ifoda so'rov shartiga almashtirilishi kerak. Bu funksiya so'rovdan uning ko'rsatilishi asosida maydon matnini oladi. Bunday murakkab maydonlar uchun u ifodaning butun matnini qaytaradi.

Algoritm haqida batafsil ma'lumot olish uchun maqolaga biriktirilgan test konfiguratsiyasiga qarang. Quyida tanlov sozlamalari va ular uchun yaratilgan so'rov shartlarining skrinshoti keltirilgan.

Yaratilgan shart matni asl dinamik ro'yxat so'roviga qo'shiladi. So'rov natijasi vaqtinchalik jadvalga joylashtiriladi.

3. Biz birinchi so'rovni vaqtinchalik jadvalga joylashtiramiz va kerakli agregat funktsiyalari bilan jamlama maydonlari bo'yicha guruhlashni amalga oshiramiz.

Eslatib o'taman, biz "Reyting" maydoni uchun o'rtacha qiymatni va "Miqdor" maydoni uchun umumiy miqdorni olishimiz kerak. Tanlovlarni hisobga olgan holda biz allaqachon so'rov yaratdik, qolgan narsa umumiy qiymatlarni hisoblash. Bu quyidagi so'rov bilan amalga oshiriladi:

So'rovni bajarganimizdan so'ng, biz olingan natijani qayta ishlaymiz, uni mijozga qaytaramiz va avval yaratgan shakl tafsilotlariga yozamiz. Oxir-oqibat, biz dinamik ro'yxatning pastki qismida ko'rsatilgan natijalarni oldik (maqoladagi birinchi skrinshotga qarang).

Yechimning optimalligi

Umuman olganda, bu yondashuv ishlashga salbiy ta'sir ko'rsatishi mumkin. Misol uchun, agar dastur dinamik ro'yxatda o'rnatilgan tanlovsiz jami hisoblasa, tanlangan yozuvlar soni juda katta bo'lishi mumkin (masalan, bir necha yil ichida). Natijada, natijalarning har bir yangilanishi o'nlab (!!!) soniya davom etishi mumkin. Shuning uchun, agar tanlov o'rnatilgan bo'lsa, natijalarni hisoblash mantiqan to'g'ri keladi. Men ushbu shartlarni sinov konfiguratsiyasida o'rnatdim.

Bundan tashqari, biz faqat server tomonida jami va so'rovni hisoblashimiz mumkin. Shuning uchun siz serverga jiddiy yondashishingiz kerak, chunki jami ma'lumotlarni yangilash tartibi juda tez-tez bajarilishi mumkin. Savdo tashkilotida kassa kirim jurnalini tasavvur qiling-a, bir daqiqada 5 tagacha, soatiga 300 tagacha kvitansiya kiritilishi mumkin. Hujjat har safar yozilsa, jami yangilanadi. Shu sababli, kontekstdan tashqari protseduralardan foydalangan holda uzatiladigan trafikni kamaytirish maqsadga muvofiq bo'ladi.

Quyidagi skrinshotda jami natijalarni qaytaradigan kontekstdan tashqari server funksiyasini chaqirish uchun dastur kodi ko'rsatilgan.

Birinchi parametr dinamik ro'yxat tanlovidan o'tadi, ikkinchisi "SelectionFieldNameSelectionFieldValueType" tipidagi tuzilmadir. E'tibor bering, funktsiyadagi birinchi parametr o'z qiymati sifatida olinadi. Buning sababini aniq ayta olmayman, lekin agar siz tanlovni havola sifatida o'tkazsangiz, platforma tanlovni o'zgartirib bo'lmasligi haqida xato beradi. Xato faqat shu tarzda chetlab o'tildi.->

Eslatma: kontekstdan tashqari protseduralardan foydalanish uzatiladigan trafik hajmini bir necha marta kamaytirish imkonini beradi, chunki kontekstga sezgir server protseduralaridan farqli o'laroq, forma ma'lumotlari serverga uzatilmaydi ("&OnServer" direktivasi).

Xulosa

Xulosa qilib aytamanki, dinamik ro'yxatda jami hisoblashning bunday yondashuvi rivojlanish metodologiyasi nuqtai nazaridan noto'g'ri. Registrlar bo'yicha jami olish to'g'ri bo'ladi. Masalan, chek jurnalida yana joriy kassadagi pul miqdorini hujjatlardan yoki tegishli jamg'arish registridan olishimiz mumkin.

Bundan tashqari, jamg'arish registrlaridan foydalanish tanlovni hisobga olmagan holda jamlamalarni hisoblash imkonini beradi, chunki tizim oldingi oylar uchun allaqachon hisoblangan jami bilan optimal ishlaydi.

Shunga qaramay, maqolada tasvirlangan usul muammolarni hal qilishda amalga oshiriladi.

Yuklab olish uchun fayllar:

Ko'zoynak orqali uy eslatmalari

21.04.2014 Dinamik roʻyxat maʼlumotlari olinmoqda

8.3.6.1977 versiyasida amalga oshirilgan.

Biz dinamik ro'yxat yordamida ko'rsatilgan ma'lumotlarni osongina va qulay tarzda olish imkoniyatini joriy qildik.

Nostandart, "maxsus" shaklda chop etish uchun sizga dinamik ro'yxat ma'lumotlari kerak bo'lishi mumkin. Yoki ular bilan muayyan harakatlarni amalga oshirish uchun. Masalan, ma'lum mezonlar asosida ro'yxatda tanlagan barcha pudratchilarga xat yuboring.

Bundan tashqari, foydalanuvchi elementlar ro'yxatidan tashqari, ushbu ro'yxat bilan bog'liq bo'lgan umumiy ma'lumotlarni ham ko'rishni xohlaydigan bir qator vazifalar mavjud. Masalan, ma'lum bir mahsulot guruhi va ma'lum bir etkazib beruvchining mahsulotlarini tanlab, u darhol ma'lumotlar bazasida bunday mahsulotlarning umumiy sonini ko'rishni xohlaydi.

Dinamik ro'yxatning o'zi sizga bu ma'lumotni taqdim eta olmaydi. Dinamik ro'yxatning maqsadi katta hajmdagi ma'lumotlarni tez ko'rishni ta'minlashdir. Shuning uchun, u ma'lumotlarni bir yoki ikkita ekranda ko'rsatish uchun zarur bo'lgan qismlarga o'qiydi. Va "hech narsa bilmaydi", masalan, u hisoblashi kerak bo'lgan ma'lumotlarning umumiy miqdori haqida.

Umuman olganda, foydalanuvchi xohlagan qo'shimcha ma'lumotni olish uchun siz ma'lumotlar bazasi so'rovini bajarishingiz kerak. Dinamik ro'yxatda ishlatilgani bilan aynan bir xil.

Ilgari siz buni qila olardingiz. Lekin bu har doim ham oson emas edi. Axir, dinamik ro'yxat ishlaydigan asl so'rov matniga qo'shimcha ravishda, foydalanuvchi ma'lumotlarni aks ettiruvchi jadvalda interaktiv ravishda o'rnatgan barcha tanlovlar, saralashlar va boshqa parametrlarni bilishingiz kerak edi.

Endi bu muammoni oddiygina hal qilish mumkin. Dinamik ro'yxat jadvalida endi ikkita yangi usul mavjud:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Shunday qilib, siz ma'lumotlarni joylashtirish sxemasining o'zini va eng muhimi, uning barcha sozlamalarini olasiz, buning natijasida foydalanuvchi ro'yxatni xuddi shunday ko'radi. Siz qilishingiz kerak bo'lgan yagona narsa tartibni dasturiy ravishda tuzish va uni qiymatlar to'plamida (dasturni qayta ishlash uchun) yoki elektron jadval hujjatida (ko'rsatish uchun) ko'rsatishdir:

Natijada siz dinamik ro'yxat jadvalida ko'rsatilgan ustunlar va satrlarni o'z ichiga olgan tuzilmani (yoki hisobotni) olasiz.

Muhim nuqta shundaki, siz dinamik ro'yxat jadvalidan olingan tartib va ​​sozlamalar, boshqa narsalar qatori, ustunlarning ko'rinishi va qo'llaniladigan qidiruvni hisobga oladi. Sozlamalar alohida olinganligi sababli, siz o'zingizning maqsadlaringiz uchun maydonlar tarkibini o'zgartirishingiz va, masalan, foydalanuvchiga ko'rinadiganlarni emas, balki ro'yxatning barcha ustunlarini olishingiz mumkin.

Elektron jadval hujjatiga chiqishda yana bir yoqimli daqiqa bor. Umuman olganda, hisobotning ko'rinishi sxema va sozlamalar qabul qilingan vaqtda dinamik ro'yxat jadvalining ko'rinishiga mos keladi. Jadvalning shartli dizayni, shu jumladan. Shaklning shartli dizaynini hisobotga o'tkazmoqchi bo'lsangiz, sizga qo'shimcha harakatlar kerak bo'ladi.