SCD'deki seçimleri kullanma. Veri kompozisyon sisteminin sorgu dili uzantısının DCS Sözdizimsel öğelerindeki seçimleri kullanma

Veri kompozisyon sistemi için sorgulama dili uzantısı

Veri kompozisyon sistemi için sorgu dilinin genişletilmesi, küme parantezleri içine alınmış ve doğrudan sorgu metnine yerleştirilen özel sözdizimsel talimatlar kullanılarak gerçekleştirilir.

Veri kompozisyon sistemi sorgu dili uzantısının sözdizimsel öğeleri

SEÇMEK

Bu cümle, kullanıcının çıktı için seçebileceği alanları açıklamaktadır. Bu anahtar kelimeden sonra, ana sorgu seçim listesindeki yapılandırma için kullanılabilecek alanların takma adları virgülle ayrılmış olarak listelenir.

Örneğin:

(Ürün SEÇİN, Depo)

Alan takma adından sonra, bu alanın alt alanlarının kullanılma olasılığını belirten “.*” karakterlerinin bir kombinasyonu bulunabilir.

Örneğin, Adlandırma.* girişi, "Adlandırma" alanının alt alanlarının (örneğin, "Nomenklatür.Kod" alanı) kullanılma olasılığını belirtir. SELECT öğesi yalnızca ilk birleştirme sorgusunda görünebilir.

NEREDE

Kullanıcının seçimi uygulayabileceği alanlar açıklanmaktadır. Bu teklif tablo alanlarını kullanıyor. Seçim listesi alanı takma adlarının kullanımına izin verilmez. Birliğin her parçası kendi WHERE öğesini içerebilir.

(NEREDE İsimlendirme.*, Depo)

Basit bir örnek

Dönemin satışlarını almak + satış olup olmadığına bakılmaksızın ürünün tamamını görüntülemek gerekir. Yani, Satış kaydının ciro tablosundan verileri, isimlendirme dizininden verileri seçmeniz gerekir. Tüm bu terminolojiye neden ihtiyaç duyduğumuz sorusunu geçelim.

Sorunu çözmek için kalemi ve Satış cirosu tablosunu sol birleştirme ile birbirine bağlayan bir sorgu oluşturabilirsiniz, bunun sonucunda seçilen dönemde satılmayan kalem için alan değerlerini alacağız. Karşı taraf, Anlaşma, Miktar, Toplam= Boş. Bu istek:

ReferansNomenclature.Link AS Nomenclature, SalesTurnover.Counterparty, SalesCirnover.Counterparty Convention, SalesTurnover.QuantityTurnover AS Quantity, SalesTurnover.CostTurnover AS Cost FROM Reference.Nomenclature AS ReferenceNomenclature SOL BAĞLANTI SEÇİN Accumulations.Sales.Turnover AS SalesReference'ı kaydedin SprNomenclature.Link = Satış Cirosu. İsimlendirme

İşte sonuç:

Karşı taraf Anlaşma İsimlendirme Miktar Toplam
hükümsüz hükümsüz _Test1 hükümsüz hükümsüz
LLC "Boynuzlar ve Toynak" Anlaşma1 Terlik 10 1200
"Gazprom" Harika sözleşme bot ayakkabı 5 13000
hükümsüz hükümsüz Galoşlar hükümsüz hükümsüz
hükümsüz hükümsüz Arduvazlar hükümsüz hükümsüz

Bu örnekte şu ürünlerin satışı yoktu: "Galoş" ve "Terlik"

Örneği karşı tarafa göre gruplandırırsak her şey yoluna girecek, o zaman satılmayan tüm öğeler ayrı bir gruba düşecek, burada Karşı Taraf = Boş, ancak müşteri raporda karşı taraf alanına göre rastgele bir seçim yapmak istiyor (doğal olarak bu Satış kaydındaki karşı taraf anlamına gelir). Ne yapmalıyım? Sonuçta aslında sadece tabloyu filtrelememiz gerekiyor Satış. ACS yapıcısında otomatik tamamlamayı kullanırsak, mevcut seçim alanları şu alanı içerecektir: Karşı taraf, her şey yolunda görünüyor, ancak karşı tarafa göre seçim içeren bir rapor yürütürken, öğeyle bağlantıdaki tüm kayıtları kaybedeceğiz. Örneğin seçimi ayarlayalım: Karşı taraf = LLC "Boynuzlar ve Toynak". Sonuç şöyle görünecek:

Hiç de ihtiyacımız olan şey değil, değil mi?

Sorunu çözmek için elbette sorguya, örneğin sanal bir tablonun parametrelerine bir parametre ekleyebilirsiniz. SatışCiro, ancak aynı zamanda karşılaştırma türünü ayarlama esnekliği de kaybolur.

Bir çözüm var: bunun için Sorgu oluşturucu sekmede Veri kompozisyonu => Tablolar sanal tablo koşullarına bir koşul alanı ekleme SatışCiro ve takma adını şu şekilde değiştir: Karşı Taraf Seçimi

Kullanıcının seçim alanlarıyla kafasını karıştırmamak için koşul alanını devre dışı bırakacağız Karşı taraf ve alanın başlığını değiştirin Karşı Taraf Seçimi


Bu şemanın karşı taraf alanı tarafından etkinleştirilen seçimle yürütülmesi sonucunda ortaya çıkan sorgu şu şekli alacaktır:

Referans Nomenclature.Link AS Terimlendirme, SalesCiro.Karşı Taraf AS Karşı Taraf, SalesCiro.Karşı Taraf Anlaşması AS Karşı Taraf Anlaşması, SalesCiro.QuantityCirnover AS >Quantity, SalesCirnover.CostCirnover AS Cost, PRESENTATIONLINK(SalesCirnover.Karşıparti Anlaşması) AS ContractCon karşı tarafıGiriş, TEMSİLLINK(SalesCiro. Karşı Taraf) AS Karşı TarafGiriş, SprNomenclature.Sunum AS NomenclaturePresentation FROM Directory.Nomenclature AS SprNomenclature SOL BAĞLANTI Kayıt Birikimleri.Sales.Ciro(&P , , , Karşı Taraf = &P3 ) AS SalesCiro BY SprNomenclature.Link = SalesTurnover.Nomenclature

Ve buna göre sonuç:

Karşı taraf Anlaşma İsimlendirme Miktar Toplam
hükümsüz hükümsüz _Test1 hükümsüz hükümsüz
LLC "Boynuzlar ve Toynak" Anlaşma1 Terlik 10 1200
hükümsüz hükümsüz bot ayakkabı hükümsüz hükümsüz
hükümsüz hükümsüz Galoşlar hükümsüz hükümsüz
hükümsüz hükümsüz Arduvazlar hükümsüz hükümsüz

Test1, İsimlendirme dizininde her şeyin bulunduğu bir gruptur

Yayında kullanılan raporun XML şeması yayına eklenmiştir. Devreyi Integrated Automation'da oluşturdum ancak hem UPP'de hem de UT 10'da her şeyin yolunda gideceğini düşünüyorum

Özetleme

Bu örnek, erişim kontrol sisteminde kendi seçim ayarlarınızı nasıl oluşturacağınızı ve bayrak etkinleştirilmiş bir devre tasarlıyorsanız otomatik olarak oluşturulan ayarları nasıl devre dışı bırakacağınızı gösterir. Otomatik doldurma.

Kullanmadan devre oluşturmak için yeterli deneyiminiz varsa Otomatik doldurma- o zaman bu tavsiyenin bir anlamı yok.

Kullanılan yazılım

  • Ekran görüntüsü programı SnimOK!
  • XML Dosya Düzenleyicisi

Dikkat! Bu, materyalleri eksik olabilecek dersin giriş versiyonudur.

Öğrenci olarak siteye giriş yapın

Okul materyallerine erişmek için öğrenci olarak oturum açın

Yeni başlayanlar için veri kompozisyon sistemi 1C 8.3: veri kümelerini bağlama

  • Müşterileri ve favori ürünlerini gösteren bir rapor yazın. Her müşterinin favori bir rengi vardır ve her ürünün kendi rengi vardır - bu renklere göre ürünün "favorisini" belirlemeniz gerekir. Örneğin Andrey'in en sevdiği renk kırmızı ise en sevdiği yiyeceklerden biri domates olacaktır (onlar kırmızıdır).
  • Rapora iki veri kümesi uygulayın. İlk grup "İstemciler" dizin tablosundaki verilerdir. İkincisi “Yiyecek” dizin tablosundaki verilerdir.
  • Uygulamak bu iki küme arasındaki bağlantı böylece rapor her müşterinin yalnızca favori ürünlerini içerir.

Yeni bir rapor oluştur

Yapılandırıcıda "Gastronom" veritabanını açın ve ana menü aracılığıyla yeni bir rapor oluşturun:

Belge türü - "Harici rapor":

Yeni bir rapor biçiminde “Ders 6” adını belirtin ve “Veri kompozisyon diyagramını aç” düğmesini tıklayın:

Varsayılan şema adını bırakın:

İlk veri kümesini ekleme

Açılan diyagramda “Veri Setleri” sekmesine gidin ve yeşil artı işaretini kullanarak “Veri Seti Ekle - Sorgu” seçeneğini seçin:

İstek yapıcısını arayın:

"Müşteriler" tablosunu ve istekten alınması gereken alanları belirtiyoruz:

İkinci bir veri kümesi ekleme

İkinci bir veri kümesi ekleyin:

Bunu seçin (DataSet2) ve sorgu yapıcısını tekrar çağırın:

"Yiyecek" dizininin tablosunu ve istekten alınması gereken alanları belirtiyoruz:

Ortaya çıkan istek metni şuydu:

Şu anda raporda iki veri kümemizin bulunduğunu lütfen unutmayın: Veri Kümesi1 ve Veri Kümesi2. Her birinin kendi istek metni ve verileri vardır.

İsimleri daha açıklayıcı hale getirme

Daha net anlaşılması açısından DataSet1'i Müşteriler, DataSet2'yi de Gıda olarak yeniden adlandıralım.

Bunu kümelerin her birine çift tıklayarak yapın:

Her setin verilerini raporumuzda kullanabiliriz. Bu verilere alanlar aracılığıyla ulaşacağız.

Şu anda, "Müşteriler" setinde şu alanlar bulunmaktadır: "Ad" ve "Favori Renk", "Yiyecek" setinde ise "Ad" ve "Renk" bulunmaktadır.

İsimlerin örtüştüğünü ve kolaylıkla karışabildiğimizi görüyoruz. O halde alan adlarını daha açıklayıcı olacak şekilde değiştirelim.

“İstemciler” kümesini seçin ve alan adlarını şu şekilde değiştirin:

Daha sonra “Yiyecek” setini seçin ve alan adlarını şu şekilde değiştirin:

Ayarlar yapıcısını çağırma

Son olarak “Ayarlar” sekmesine gidin ve ayar tasarımcısını açmak için sihirli değneğe tıklayın:

Rapor türü - "Liste...":

Her iki gruptan da rapor için alanları seçin:

Alan adlarını değiştirmenin neden bu kadar önemli olduğunu anladınız mı? Veri kompozisyonu ayarları aşamasında bu alanların hangi setlerden olduğunu göremiyoruz. Sadece isimlerini görüyoruz.

Raporun kontrol edilmesi

Raporu kaydediyoruz ve kullanıcı modunda oluşturuyoruz:

Evet. Tamam ama aslında değil. İki kümenin çapraz birleşimi olarak adlandırılan bir olay meydana geldi (önceki modüllerde incelediğimiz sorgulardaki birleştirmelerden buna çok aşina olmalısınız). Müşteriler tablosundaki her kayıt, Yemek tablosundan karşılık gelen bir kayda sahiptir.

Ancak tüm bu kayıtlardan yalnızca "Müşterinin Favori Rengi" alanı "YiyecekRengi" alanına eşit olanları bırakmamız gerekiyor:

İki veri kümesini birbirine bağlıyoruz

Bunu yapmak için, Müşterinin Favori Rengi ve Yiyecek Rengi alanlarını kullanarak iki veri kümesini (Müşteriler ve Yiyecek) birbirine bağlayacağız.

“Veri Seti Bağlantıları” sekmesine gidin ve yeni bir bağlantı eklemek için artı düğmesine tıklayın:

Parametreleri aşağıdaki şekildeki gibi yapılandırıyoruz:

Bir açıklama yapacağım.

İletişimin kaynağı ve alıcısı. Burada her şey açık. İlk veri kümesini (Müşteriler) ve ikinci veri kümesini (Gıda) belirtiriz. İletişimin ilkesine göre yürütüleceğine özellikle dikkat çekmek isterim. dış sol birleştirme(bu konuyu önceki modüllerdeki istekler konusunda ele almıştık). Buna dayanarak hangi setin kaynak, hangisinin alıcı olacağını seçmeniz gerekir.

İfade kaynağı. Burada kaynak veri setinden bir ifadeyi veya basitçe bir alanı belirtiyoruz (burada ayarlanan Clients'tan ClientFavoriteColor alanını belirttik).

Alıcı ifadesi. Burada alıcı veri setinden bir ifadeyi veya basitçe bir alanı belirtiyoruz (burada Food setinden ColorFood alanını belirttik).

Böylece bu bağlantı önceki listeden yalnızca Müşterinin FavoriRenk alanının YiyecekRenk alanına eşit olduğu satırları bırakacaktır.

Raporu kaydedip kullanıcı modunda çalıştıralım:

Harika!

Alanla ilgili açıklama yapacağım" İletişim durumu", acemi programcıların bu kadar sık ​​\u200b\u200bsık mızraklarına vurduğu şey.

Bağlantı koşulu yardımcı bir alandır. İfadeleri oraya yazabilirsiniz yalnızca bağlantı kaynağında belirtilen veri kümesindeki alanları içeren.

Bu durumda bağlantı kaynağından gelen tüm satırlar için bağlantı yapılmadan önce bu ifade (bağlantı koşulu) kontrol edilecektir. Ve eğer bu ifade DOĞRU ise bu satır ile bağlantı alıcısından gelen satırlar arasında bağlantı kurulmaya çalışılacaktır. Eğer ifade YANLIŞ ise böyle bir girişimde bulunulmayacaktır.

Öğrenci olarak siteye giriş yapın

Yeni başlayanlar için veri kompozisyon sistemi 1C 8.3: SKD ile ilgili ilk rapor

Bu modülün girişini okumadıysanız lütfen okuyun: .

İhtiyacınız olan dersleri tamamlamak için 1C 8.3 (düşük değil 8.3.13.1644 ) .

Zaten 1C sürüm 8.3 yüklüyse onu kullanın. Değilse, 1C'nin özellikle eğitim amaçlı ürettiği eğitim sürümünü indirip yükleyin: .

Masaüstünüzde aşağıdaki kısayol görünmelidir:

Bu serideki tüm derslerde hazırladığım Gastronomi veri tabanını kullanacağız. Okul modüllerinde sorguları incelerken kullandığımız temelle tamamen örtüşüyor. Bu nedenle referans kitaplarına ve belgelerine aşina olmanızı bekliyorum.

Eğer sildiyseniz, aşağıdakini kullanarak tekrar indirin, paketini açın ve veritabanları listesine ekleyin.

Son olarak çalışma tezgahı kuruldu ve şimdi veri kompozisyon sistemini kullanarak ilk raporumuzu birlikte oluşturacağız. Bir veri kompozisyon sisteminin (kısaltılmış hali) genel yeteneklerini göstermek çok basit olacaktır. SKD).

Bir hedef belirlemek

Bu dersin amacı- kullanıcı modunda aşağıdaki alanlarla istemcilerin listesini görüntüleyen bir rapor oluşturun:

  • İsim
  • Zemin
  • Müşterinin en sevdiği renk.

Rapor harici olmalıdır. Bu, yapılandırıcıda oluşturulup yapılandırılacağı ve ardından bilgisayarda ayrı (harici) bir dosya olarak kaydedileceği anlamına gelir.

1C'de böyle bir rapor oluşturmak için kullanıcının veritabanını kullanıcı modunda başlatması, bu dosyayı açması ve "Oluştur" düğmesine tıklaması gerekecektir.

Gitmek!

Rapor oluşturma

Gastronom veritabanı için yapılandırıcıyı başlatıyoruz:

Ana menüden "Dosya" -> "Yeni..." seçeneğini seçin:

"Harici rapor"u seçin:

Raporun içinde veri düzeni diyagramı oluşturma

Harici bir rapor oluşturma penceresi açılır. Ad olarak şunu girin: " Ders 1"ve ardından" düğmesine basın Veri kompozisyon diyagramını aç":

Şema oluşturma tasarımcısı başladı. Varsayılan adı kabul ediyoruz " AnaVeri Düzeni Şeması"ve düğmeye basın" Hazır":

Veri düzeni şemamızı yapılandıracağımız birçok sekme ve alan içeren ana çalışma penceresi açıldı.

Korkmaya gerek yok; burada gerçekten çok fazla fırsat var ama hepsine ihtiyacımız yok. Özellikle ilk derste.

Artık yer imindeyiz " Veri kümeleri"Orada kalacağız."

Yapıcı aracılığıyla bir istek yazıyoruz

Veri kompozisyon sistemi (DCS olarak kısaltılır) şunları yapmamızı gerektirir: veri, kullanıcıya gösterecektir.

En kolay yol - bir istek yazÜsse. Okulda istekleri yazmayı ve anlamayı öğrendik; bu nedenle sizden uygun becerilere sahip olmanızı bekliyorum.

Tıklamak yeşil artı işaretini kullanın ve açılır listeden " öğesini seçin Veri Kümesi Ekle - Sorgu":

Görevimiz bu alana istek metnini yazmaktır. Bunu nasıl yapacağınızı henüz unuttunuz mu?

Size bir ipucu vereceğim:

Bu sorguda üç alan seçtik (" İsim", "Zemin" Ve " Favori renk") tablodan" Dizin.İstemciler".

Ancak bu metni “İstek” alanına manuel olarak yazmak için acele etmeyin.

Şimdi aynı isteği sadece fareyi kullanarak görsel olarak oluşturacağız. Bu yönteme " denir Sorgu oluşturucu".

Bu kurucuyu çağırmak için "düğmesine tıklayın" Sorgu yapıcısı..." "Talep" alanının sağ üst kısmında:

Açılan pencerede tabloyu sürükleyin " Müşteriler" verileri bu tablodan sorgulayacağımızı belirtmek için ilk sütundan ikinciye:

Şöyle ortaya çıktı:

Sonra masayı açacağız " Müşteriler"İkinci sütunda işaretle" Artı"tüm alanlarını görmek ve alanı sürüklemek için" İsim" bu tablodan "Ad" alanını sorgulamamız gerektiğini belirtmek için ikinci sütundan üçüncüye:

Şöyle ortaya çıktı:

Aynısını tarlalar için de yapalım" Zemin" Ve " Favori renk". Sonuç şöyle olacak:

Sorgu oluşturucudan çıkmak için "Tamam" düğmesini tıklayın ve sorgu metninin otomatik olarak "Sorgu" alanına eklendiğini görün.

Ayrıca, istek metnine dayanarak 1C, veri kompozisyon şeması tarafından kullanılacak alanların adlarını (isteğin üstündeki alan) kendisi çıkardı:

Artık bir talep derledik, ACS rapor için verileri nasıl elde edeceğini biliyor.

Veri sunumunu ayarlama

Bir şekilde kalıyor bu verileri görselleştir Kullanıcı için basılı bir form biçiminde. ACS'nin harikalar yaratabileceği yer burasıdır!

Böyle bir mucize yaratmak için sekmeye gidelim " Ayarlar" ve ayar tasarımcısı düğmesini tıklayın ( sihirli değnek):

Açılan pencerede rapor türünü belirtin " Liste" ve bas " Daha öte":

Bir sonraki pencerede, listede görüntülenmesi gereken alanları seçin (sürükleyerek) (bize sunulanların tümünü sürükleyin: " Favori renk", "İsim" Ve " Zemin"):

Bu sonucu elde edelim ve düğmeye basalım " TAMAM":

Ayarlar tasarımcısı kapandı ve " Ayrıntılı girişler":

Rapor hazır, kontrol edelim. Bunu yapmak için öncelikle raporu harici bir dosya olarak kaydedin.

Raporu dosya olarak kaydedin

Ana menü öğesini açın " Dosya"->"Kaydetmek":

Masaüstüme " adı altında kaydedeceğim Ders 1":

Raporu kullanıcı modunda kontrol etme

Son olarak yapılandırıcıyı kapatıp kullanıcı modunda veritabanımıza gidelim:

Kullanıcı adı "Yönetici", şifre yok:

Menüden "öğesini seçin Dosya"->"Açık...":

Ve rapor dosyasını belirtin (Masaüstüne “Lesson1.erf” adı altında kaydettim:

Rapor formu açıldı, " butonuna tıklayın Biçim":

Hazır! İşte müşterilerin, en sevdikleri rengin ve cinsiyetin bir listesini içeren yazdırılabilir dosyamız:

Yazdırılabilir form kolayca yazdırılabilir. Bunu yapmak için "öğesini seçin" Dosya"->"Fok...":

Aynen öyle, programlamaya gerek kalmadan kullanıcıların kendi veritabanlarında açabileceği, oluşturup yazdırabileceği tam kapsamlı bir rapor oluşturmayı başardık.

öğrenciler - postayla cevap veriyorum, ama önce bak.

Öğrenci olarak siteye giriş yapın

Okul materyallerine erişmek için öğrenci olarak oturum açın

Son yazımda 1C'nin paradoksal bir platform olduğunu zaten yazmıştım. Veri kompozisyon sistemi bu paradokslardan biridir. SKD, karmaşık raporlar tasarlamak için tasarlanmıştır ve "manuel" rapor programlamanın, çok işlevli bir araç setindeki tasarımla değiştirilmesini içerir. Erişim kontrol sistemlerini kullanma yeteneği sekizinci versiyonda ortaya çıktı, ancak 1C'nin standart ürünlerinde kullanabilmesi için 8.2 versiyonunun ortaya çıkması uzun zaman aldı. Bir yandan ACS, tek bir kod satırı olmadan çok karmaşık raporlar oluşturabileceğiniz çok işlevli bir araç setidir. Bununla birlikte, erişim kontrol sisteminin giriş engeli oldukça yüksektir; onu "anında" öğrenmek ve tam olarak kullanmaya başlamak çok zordur, çünkü arayüz tamamen sezgisel değildir ve en eksiksiz kullanım kılavuzları yalnızca web sitesinde mevcuttur. ücretli edebiyat biçimi.

SKD çalışmam sürecinde bir sorun ortaya çıktı. Bir sorgulama dili kullanarak üçüncü taraf bir değer tablosundan veri elde etmek ve daha sonra bu veriyi veritabanı tablolarındaki benzer verilerle (indirgeme işlemleri, gruplama vb.) çalıştırmak gerekir. Klasik formatta sorguya parametre olarak iletilen tablodan bilgi alan bir sorgu oluştururduk.

İstek = Yeni İstek(
"SEÇMEK
| Tablo.Adlandırma,
| Masa.Depo
|DAN
| &TK AS Tablosu");
request.SetParameter("TZ", TZ);

Ancak SKD ile her şey o kadar basit değil. Ne yazık ki yukarıda açıklanan işlemi veri kompozisyon sisteminde gerçekleştirmek imkansızdır. Ancak sistem, harici değer tablolarını yükleme özelliğini hayata geçirmiştir.

Burada kısa bir ara verip Veri Kümeleri hakkında konuşmakta yarar var. Veri kümeleri, veri yönetim sisteminin daha sonra bir rapor halinde derleyeceği verileri aldığı bilgi kaynaklarıdır. Veri setleri, programcının veritabanına bir sorgu yazdığı, esas olarak “Sorgu” türü kullanılarak türlere ayrılır. "Nesne" türü harici nesnelerden veri yüklemek için kullanılır. Her iki durumda da çıktı, bir isteğin yürütülmesi veya harici bir nesnenin yüklenmesi sonucunda elde edilen belirli bir alan kümesidir. Daha sonra bu alanlar, rapor yapısına ilişkin ayrıntılı ayarlarla birlikte “Ayarlar” sekmesinde değiştirilebilir. Farklı kümeleri birbirine bağlamak için ACS, aynı adı taşıyan sekmede veri kümeleri arasındaki bağlantıları gösterme olanağı sağlar. Bu bağlantılar, klasik bir sorgudaki sol birleşimin doğrudan bir benzeridir. Ancak herhangi bir veri setinde yer alan sorguların diğer veri setlerinin varlığından “bilmesinin” mümkün olmadığı, sonuçta veri setleri arasındaki ilişkilerin “de belirtilen yapıya göre veri düzenini etkileyeceği” dikkate alınmalıdır. Ayarlar” sekmesine tıklayın.

Sorunu bir örnekle detaylandıralım. Standart bir rapor var: ZiK 8 konfigürasyonunun organizasyonu için bordro beyanları. Rapordaki hesaplama türlerinin belirli gruplar halinde gruplandırılması gerekir. Hesaplama Görünümü-Grup yazışmaları harici bir değer tablosunda saklanır. Ana veri yerleşim şemasına yüklemek için “Gruplar” adında bir “veri seti nesnesi” oluşturuyoruz (Şekil 2). Hesaplama türüne göre “sorgu veri seti” - “Tahakkuklar” ile bağlantı kuruyoruz (Şekil 3). “Talep veri seti” - “Tahakkuklar” bölümünde gruplara yönelik bilgiler var, tüm girişleri siliyoruz. Daha sonra “Ayarlar” sekmesinde harici bir veri kaynağından değeri yüklenen “Grup” alanını kullanabiliriz (Şekil 4). Rapor oluşturma işlevinde harici verilerin yüklenmesini tamamlıyoruz.

Function GenerateReport(Sonuç = Tanımsız, Şifre Çözme Verisi = Tanımsız, OutputInReportForm = True) Dışa Aktarma

//gerekli “Gruplar” değerleri tablosunun elde edilmesi veya oluşturulması ve aynı isimli değişkene yazılması

HariciVeri = Yeni Yapı();//harici veri yapısını oluşturup doldurun
HariciData.Insert(Gruplar);

UserPanelValue = TypicalReports.GetUserPanelSettingsValuesofObject(ThisObject);
DefaultSettings = SettingsComposer.GetSettings();
TypicalReports.GetAppliedSetting(ThisObject);
TypicalReports.GenerateTypicalReport(ThisObject, Result, Şifre Çözme Verileri, OutputToReportForm, HariciData);
SettingsLinker.LoadSettings(DefaultSetting);
Dönüş Sonucu;

Son Fonksiyon

Sıfırdan bir rapor hazırlıyor olsaydık rapor oluşturma başlatma kodu şöyle görünürdü:

HariciVeriSetleri = yeni Yapı;
HariciDataSets.Insert("Gruplar", Gruplar); //Gruplar - istenen değer tablosu
DataCompositionSchema = GetLayout("MainDataCompositionSchema"); //veri akış diyagramlı düzenimiz
Ayarlar = DataCompositionScheme.DefaultSettings;
LayoutLinker = newDataLayoutLayoutLinker;
LayoutLayout = LayoutComposer.Execute(DataLayoutSchema, Ayarlar);
DataCompositionProcessor = yeniDataCompositionProcessor;
DataCompositionProcessor.Initialize(LayoutLayout, HariciDataSets);
TabDoc = Yeni TabularDocument;
OutputProcessor = Yeni OutputProcessorDataCompositionResultInTabularDocument;
OutputProcessor.SetDocument(TabDoc);
OutputProcessor.Output(DataCompositionProcessor);

Okumak 9660 bir kere

İyi günler okuyucularım! Bugün yerleşim sisteminin temellerine bakmaya devam edeceğiz. Bu yazı dizisinde erişim kontrol sisteminin ne olduğunu öğrendiniz ve erişim kontrol sisteminin ana bileşenleri hakkında bilgi sahibi oldunuz. Ayrıca bir rapor oluşturmak için girdi verilerine baktık ve bir erişim kontrol sisteminde rapor çalıştırmanın ana aşamalarını öğrendik. Ayrıca birçok kişi kısa bir testi geçerek bilgilerini test etme fırsatı buldu. Artık makalenin içeriğine göz atabilir ve içinde nelerin ele alınacağını görebilirsiniz.

Veri kümesi - sorgu.

  1. Normal bir sorgunun aksine, veri kompozisyonu sorgusunda RESULTS yan tümcesi yoktur. Bunun yerine toplamlar "Kaynaklar" sekmesinde oluşturulur. Bu sekmede son ifadelerini almak istediğiniz alanları seçersiniz. “Ayarlar” sekmesinde ise sonuçların hangi bölümde elde edileceği belirtilir, yani burada uygun gruplamalar oluşturulur ve bunlardan kaynaklar hesaplanır. Bununla ilgili daha fazla bilgiyi makalede okuyabilirsiniz.
  2. Bir sonraki nokta seçim ayarlarıyla ilgilidir. İki yürütme olasılığı vardır.
    1. Rapor seçeneği ayarları aracılığıyla. Bu “Ayarlar” - “Seçim” sekmesinde yapılabilir. Bu seçeneği kullanırsak, kullanıcının bile seçebileceği farklı karşılaştırma türlerini belirleyebildiğimiz için en esnek olanıdır. Ayrıca, bu seçeneği kullanırken filtreleme koşulları sorgunun kendisine uygulanır. Rapor, geçici tablolar kullanan bir toplu sorguyu temel alıyorsa seçim, seçim alanının oluştuğu toplu sorgudaki tüm tabloları etkileyecektir.
    2. Talep düzeyinde. Sorgu kullanırsak eşitlik işlemi dışında hiçbir şeyi kullanamayız.
      Bunun istisnası, verileri belirli bir değere göre "sert" filtrelememiz gerektiği durumdur. Diyelim ki numaralandırma değerine göre. “Parametreler” sekmesinde bir koşul ayarlayabiliriz. “Kullanılabilirliği Sınırla” bayrağını etkinleştirirsek kullanıcı bu koşulu iptal edemeyecek.
  3. Ayrıca sıralamayı rapor seçeneği ayarları düzeyinde uygulamak daha doğrudur.
    1. Eğer istekte bir sıralama alanı belirtirseniz kullanıcı rapor versiyonunu ayarlarken başka bir alan belirleyecek ve istek seviyesinde yaptığımız ayar en düşük önceliğe sahip olacaktır. İlk olarak rapor varyantı kurulumunda kullanıcı tarafından belirlenen sıralama gerçekleştirilecektir. Bu nedenle, sıralamayı "varsayılan olarak" ayarlamanız gerekiyorsa, Yapılandırıcıdaki rapor seçeneğinin ayarlarını kullanırız.
    2. Kullanıcının değiştirememesi için bir raporda "katı" sıralamayı ayarlamanız gerekirse ne olur? Daha sonra sorgu seviyesinde sıralama ayarlıyoruz ve “Veri Setleri” sekmesinde alan sınırlaması belirliyoruz. Gerekli veri setini seçin ve “Alan sınırlaması” - “Sıralama” sütunundaki kutuyu işaretleyin.

Sanal tablo parametreleri.

  • Muhasebe kayıtları, birikim kayıtları ve bilgi kayıtlarının sanal tablolarının oluşturulması belirli bir tarihe bağlıdır. Bu, bir tarih veya bakiyeler ve ciro tablosu gibi bir aralık olabilir. SDS, eğer rapor sanal bir tabloya dayanıyorsa, raporun hangi aralıkta veya hangi tarihte oluşturulacağını kullanıcının seçmesine izin verecek şekilde oluşturulur. SKD, gerekli dönem parametrelerini otomatik olarak yerleşim şemasına ekler.
  • Sorguda sanal bir bakiye tablosu veya sanal bilgi kayıtları tablosu seçilirse, otomatik olarak “Dönem” adı verilen bir parametre eklenir.
  • Talepte sanal bakiye ve ciro tablosu veya sanal ciro tablosu seçilirse “Dönem Başı” ve “Dönem Sonu” parametreleri otomatik olarak eklenir.
  • Dönem sonunda bakiye almanız gerekiyorsa ne yapmalısınız? İki yol var:
    1. “Parametreler” sekmesine gidin ve “İfadeler” sütunundaki “Dönem” parametresine aşağıdakileri yazın:
      &EndPeriyodu. Ayrıca “Kullanılabilirliği sınırla” işaretini de etkinleştireceğiz.
    2. “Dönem” parametresinden tamamen kurtulup yerine “Dönem Sonu” parametresini koyuyoruz. İsteğe bağlı bir sanal tablo parametresi yapılandıralım:
      • “Veri Kümeleri” sekmesine gidin ve “Sorgu Oluşturucu…” düğmesine tıklayın.
      • Sol üst köşedeki "Veri Kompozisyonu" sekmesinde, "Sanal Tablo Seçenekleri" iletişim kutusunu açmak için düğmeye tıklayın (bu, küçük bir tablonun arka planında bir dişli resminin bulunduğu gri kare bir düğmedir).
      • İletişim kutusunun “Dönem” alanına şunu yazıyoruz: &Dönem Sonu.
      • Artık sanal tablonun parametrelerindeki veri seti isteğinin metninde, bu parametre süslü parantezlerle çevrelenmiş olarak görünecektir:
Biriktirme Kaydı. Kalan Mallar. Kalan(((&EndPeriod) ), ) AS Kalan

Kıvrımlı parantezler veri kompozisyonu sorgu dili uzantısını gösterir. Bu aynı zamanda bu parametrenin isteğe bağlı olduğunu da gösterir. Bu, veri kompozisyon şemasında tanımlanmadığı takdirde bakiyelerin güncel tarih itibarıyla elde edileceği anlamına gelir.

Sorgu dili uzantısı.

Bunlar, istek gövdesinde küme parantezleri içine alınmış özel talimatlardır. Bu talimatlar, bir rapor sürümünü ayarlarken değiştirilebilecek alanları ve parametreleri belirtir. Otomatik Tamamlama onay kutusu devre dışı bırakılsa bile küme parantezlerinden gelen veriler düzen diyagramında mevcut olacaktır.

Bir sorgu veri kümesi oluşturulduğunda, varsayılan olarak veri kompozisyon şemasının mevcut alanları, oluşturulan sorguya göre otomatik olarak doldurulur ("Veri Kümeleri" sekmesinde "Otomatik Doldur" onay kutusu seçilidir).

Kullanılabilir veri kompozisyonu şema alanlarının otomatik tamamlanması nasıl çalışır?

    1. Sorgu seçim listesindeki alanlar ve bunların alt alanları kullanılabilir hale gelir.
    2. Biriktirme kaydından seçim yaparsak, istekte yer almayan kayıt alanları bile veri kompozisyonu alanlarında kullanılabilir hale gelir. Ancak bu alanlar yalnızca seçim için kullanılabilir (koşullu ifadelerde)
      ve çıktı alanları olarak kullanılamazlar.
    3. “Dönem”, “Dönem Başlangıcı” ve “Dönem Sonu” sanal tablolarının parametreleri şu şekilde olur:
      seçim için kullanılabilir.
    4. İstek metninde “zor” bir koşul belirtilirse bu parametre de “Parametreler” sekmesine eklenecektir.

Otomatik Tamamlama onay kutusunun işareti kaldırılırsa, veri kompozisyon şemasının alanları temizlenir, ancak istek metninde küme parantezleri içine alınmış parametreler kalır.

Veri kompozisyon şemasının alanlarını kendiniz nasıl doldurabilirsiniz?

“Veri Kümeleri” sekmesindeki “Otomatik Doldur” onay kutusunun işaretini kaldırın.

“Sorgu Oluşturucu…” düğmesine tıklayın. Aşağıdaki isteği oluşturalım:

Kalanları SEÇİN. İsimlendirme AS İsimlendirme, Kalır. Miktar AS Miktar KaydıBirikim. Kalan Mallar. Kalan(((&EndPeriod) ), ) AS Kalan

“Tablolar” sekmesinde tüm tablolar için sanal tablo parametrelerini ayarlayabiliriz.

Şimdi “Veri Düzeni” sekmesinde “Alanlar” sekmesini seçin. Burada seçim alanlarını ayarlıyoruz
yerleşim şemasında sunulacaktır.

“Ve..” alanı alt kayıtların seçime dahil edileceği anlamına gelir
dizinler ve belgeler vb. gibi karmaşık türde alanlar. Eğer alan sayı gibi ise “Ve..” alanına bayrak koymak mümkün olmayacaktır.

“Adlandırma” ve “Miktar” olmak üzere iki alanı seçelim. “Adlandırma” alanı için “I..” bayrağını ayarlayın,
böylece alt kayıtlar seçilir. Aşağıdaki sorguyu alacaksınız:

Kalanları SEÇİN. İsimlendirme AS İsimlendirme, Kalır. Miktar AS Miktar (Adlandırmayı SEÇİN. * , Miktar) Biriktirme Kaydı. Kalan Mallar. Kalan(((&EndPeriod) ), ) AS Kalan

Yeni istekte küme parantezleri içinde başka bir SEÇİM bölümü ortaya çıktı - bu, düzende mevcut olacak alanları belirten uzantı metnidir. “Adlandırma.*” alanı, “Adlandırma” alanının ve onun “Kod”, “Ad” vb. gibi alt ayrıntılarının mevcut olacağını belirtir. Böylece düzen alanlarını kendimiz doldurduk.

Ancak artık düzen koşullarındaki alanları kullanamıyoruz. “Ayarlar” sekmesine gidip “Seçim” sekmesini seçerseniz, önceki paragrafta seçtiğimiz alanların hiçbirine koşul koyamazsınız. Neden?

Sanal tablo parametrelerine uygulanacak koşulların Sorgu Tasarımcısının “Veri Bileşimi” sekmesinde de belirtilmesi gerekir. Sol üst köşedeki “Sanal tablo parametreleri” iletişim kutusunu açmak için düğmeye tıklayın
(Bu, küçük bir masanın arka planında bir dişli resmi bulunan gri kare bir düğmedir). İletişim kutusunun “Koşul” alanına şunu yazıyoruz: İsimlendirme. Artık sanal tablonun parametrelerindeki veri seti talebinin metninde, bu "Adlandırma" parametresi küme parantezleriyle çevrelenmiş olarak görünecektir:

Biriktirme Kaydı. Kalan Mallar. Bakiyeler(((&Dönem Sonu) ), ((Adlandırma) )) AS Bakiyeler

Olağan sorgu dilinde, bir parametrenin belirtilmesi şuna benzer: Nomenclature = &Nomenclature. Ancak sorgu dili uzantısında farklı yazılmıştır. Yalnızca alan adı belirtilir. Burada eşitlik, eşitsizlik veya hiyerarşideki işlemi belirtmiyoruz çünkü kullanıcı istediği işlemi ayarlarında kendisi seçecektir.

Sorgu Oluşturucunun “Veri Kompozisyonu” sekmesinde başka bir sekme olan “Koşullar” görüyoruz. Sorgu dili uzantısında WHERE deyiminin koşullarını belirtmek gerekir. “Miktar” alanını seçin. Bu alan artık “Ayarlar” - “Seçim” sekmesindeki koşullarda mevcuttur. Ve istek metninde küme parantezleri içine alınmış yeni satırlar belirdi.

(NEREDE Kalır. Adet)

Miktar alanına göre seçim belirtilirse bu cümle son talebe eklenecektir. Rapor seçeneği ayarlanarak koşulun türü ve karşılaştırma değeri belirlenecektir.

Bugünlük bu kadar malzemenin yeterli olduğunu düşünüyorum. Anlaşılmayan noktalar varsa sormaktan çekinmeyin çünkü bu nedenle yorum yapmak mümkündür. Bu materyal yakında sabitlenmek üzere hazırlanacak, bu yüzden kaçırmamak için web sitemizdeki güncellemelere abone olun!

Bu ders dizisinde SKD ifade dilinin işlevlerine bakacağız, düzen sisteminin özelliklerinden bahsedeceğiz ve ayrıca düzen alanlarının temel ayarlarını analiz edeceğiz. Bu zor materyali anlamada iyi şanslar!

Makalenin sonunda size Anatoly Sotnikov'dan ücretsiz bir tane önermek istiyorum. Bu deneyimli bir programcının vereceği bir kurstur. Erişim kontrol sisteminde raporların nasıl oluşturulacağını ayrı ayrı gösterecektir. Sadece dikkatlice dinlemeniz ve hatırlamanız gerekiyor! Aşağıdaki soruların yanıtlarını alacaksınız:
  • Basit bir liste raporu nasıl oluşturulur?
  • "Alanlar" sekmesindeki Alan, Yol ve Başlık sütunları ne işe yarar?
  • Düzen alanlarının sınırlamaları nelerdir?
  • Roller nasıl doğru şekilde yapılandırılır?
  • Düzen alanlarının rolleri nelerdir?
  • Bir sorguda veri kompozisyonu sekmesini nerede bulabilirim?
  • Erişim kontrol sistemindeki parametreler nasıl yapılandırılır?
  • Daha da ilginçleşiyor...
Belki de gerekli bilgiyi bulmak için internette kendi başınıza gezinmeye çalışmamalısınız? Üstelik her şey kullanıma hazır. Sadece başlayın! Ücretsiz video eğitimlerinde neler olduğuna dair tüm ayrıntılar yazarın sayfasında yumuşak yapıcı http://www..pngyumuşak yapıcı 2015-12-07 14:51:12 2018-06-12 13:14:13 Veri kompozisyon sistemi (DCS). Bölüm 2.