Internet Windows Android
Kengaytirish

1c 8.3 shartli dizayn misoli. Nima uchun shartli uslublar boshqariladigan shaklda ishlamasligi mumkin

Boshqariladigan shakllarning shartli ko'rinishi.

ACS bilan ishlagan va ACS bo'yicha hisobotlarni yaratganlarning ko'pchiligi shartli dizayn haqida eshitishdan emas. Maydon shriftini, katak rangini yoki boshqa maydondagi qiymatga qarab taqdimotni o'zgartirish allaqachon odatiy holdir.

Ammo biz boshqariladigan shakllarning shartli dizayni bilan kamroq tarqalgan. Garchi u kuchli, funktsional va zarur mexanizm bo'lmasa-da.
U nimaga o'xshaydi. Va hamma narsa bir xil. Ba'zi shartlarga ko'ra, biz jadval shakli elementlari maydonlarining ko'rinishini yoki xususiyatlarini sozlashimiz mumkin va ular tezda o'zgaradi.

Men dinamik ro'yxat maydonlari va jadval maydonlari haqida gapiryapman. Bu erda koddan biz alohida ustunga murojaat qilishimiz va bir vaqtning o'zida butun ustun uchun xususiyatlarni o'rnatishimiz mumkin, lekin biz alohida maydonning xususiyatlarini o'rnatolmaymiz.

Iqtibos

Muhim!!! Ko'p odamlar bunga duch kelishadi va vaqtlarini behuda sarflashadi. Oddiy shakl maydonlari uchun shartli ko'rinish ishlamaydi (jadvalli emas).

Maydonlarni bo'yashdan tashqari qayerda foydalanish mumkin. Xo'sh, klassik misol - jadval bo'limidagi ko'rinishlarning taqdimoti. Buxgalteriya hisobi uchun standart sifatida ulardan uchtasi bo'lishi mumkin. Va odatda ular bir maydonda, biri ikkinchisining ostida joylashgan. Har bir satr o'z balliga ega bo'lishi mumkinligi sababli, tahlilchilarning tarkibi farq qilishi mumkin. Va umuman olganda, agar siz har bir satrda 3 ta tahlilni ko'rsatsangiz, u juda ko'p joy egallaydi. Va agar biror joyda bitta subkonto etarli, qaerdadir ikkita deb faraz qilsak, nima uchun buni qilamiz.

Shakl xususiyatlari bo'yicha sozlash

Qayta ishlashda yaratilgan jadvalli qismning misolini ko'rib chiqamiz.

Keling, qayta ishlashni yarataylik, u erda biz qo'shamiz jadval qismi Subcontoning uchta tafsiloti bilan, shuningdek, qatordagi subconto sonini ko'rsatadigan Subconto raqami atributini qo'shing.

Shaklning shartli ko'rinishini sozlash "Tashqi ko'rinish" yorlig'idagi shakl xususiyatlarida joylashgan.

Endi bizning vazifamiz dasturga NumberSubconto 1 maydonidagi qiymat bilan faqat Subconto1 ko'rsatilishi kerakligini, 2 qiymati bilan: Subconto1 va Subconto2, qiymati 3: Subconto1, Subconto2, Subconto3 ko'rsatilishini dasturga ko'rsatishdan iborat.

Buning uchun shartli ko'rinishni o'rnatish uchun shakl ishlatiladi.

Formatlantiriladigan maydonlar ustunida Subconto1, Subconto2, Subconto3 maydonlarini ko'rsating. Har bir maydon uchun boshqa dizayn bo'lganligi sababli, biz 3 qatorni olamiz.

Biz ko'rinish xususiyatini belgilab berishimizni bildiramiz.

Shuningdek, ko'rinish o'chiriladigan shartni ham o'rnating.

Keling, korxonada nima bo'lganini ko'rib chiqaylik. Shu bilan birga, jadval bo'limiga qatorlarni qo'shing va subkontolar soni uchun qiymatlarni tartibga soling.

Ko'rib turganingizdek, turli qatorlar turli xil maydonlarni ko'rsatadi.

Kod bo'yicha sozlash

Xususiyatlari bilan moslashtirishdan tashqari bu sozlama dastur kodi yordamida ishlab chiqarilishi mumkin.
Agar siz o'rnatilgan konfiguratsiyadan foydalansangiz, u quyidagicha ko'rinadi (bu barcha odatiylarga tegishli):

ElementUO = Shartli.Elementlar.Qo'shish ();
DataCompositionClientServer.AddFormableField (ElementUO.Fields, "TabularSubConto2");

SharedAssignmentClientServer.AddCompositionElement (UO.Selection,
"TabularPartNumberSubconto", DataCompositionComparisonView.Less, 2);

ElementUO.Design.SetValueParameter ("Ko'rinish", False);


Agar BSP ishlatilmasa, kod biroz uzunroq bo'ladi. Men sizga bir xil BSP dan odatiy protseduralarni beraman.

AddFieldField (StyledFields Collection, FieldName) funktsiyasi

ElementField = StyledFields Collection.Elements.Add ();
ElementField.Field = NewDataCompositionField (FieldName);

ElementField-ni qaytarish;

EndFunction


AddCompositionElement funktsiyasi (AddScope,
Qiymat maydoni nomi,
Qiymatni ko'rish solishtirish,
Qiymat RightValue = Aniqlanmagan,
Qiymatni ifodalash = Aniqlanmagan,
Foydalanish qiymati = Aniqlanmagan,
qiymatni ko'rsatish rejimi = Aniqlanmagan,
valueCustomSettingId = Aniqlanmagan) Eksport

Element =AddScope.Elements.Add (Tur (“DataCompositionFeatured Element”));
Element.LeftValue = NewDataCompositionField (FieldName);
Element.CompareType = ComparisonType;

Agar Displey rejimi = Aniqlanmagan bo'lsa
Item.DisplayMode = DataCompositionSettingsSettingsni ko'rsatish rejimi.Mavjud emas;
Aks holda
Element.Display Mode = Displey rejimi;
EndIf;

Agar RightValue<>Keyin aniqlanmagan
Element.RightValue = RightValue;
EndIf;

Agar View<>Keyin aniqlanmagan
Element.View = Ko'rish;
EndIf;

Foydalansa<>Keyin aniqlanmagan
Element.Use = Foydalanish;
EndIf;

// Muhim: identifikatorni sozlash bajarilishi kerak
// element sozlamalari oxirida, aks holda u nusxalanadi
// v moslashtirilgan sozlamalar qisman to'ldirilgan.
CustomSetting ID bo'lsa<>Keyin aniqlanmagan
Element.UserSettingsID = UserSettingIdentifier;
ElseIf Element.Display rejimi<>ItemDisplay ModeDataComposition Settings.U holda mavjud emas
Element.CustomSettingsID = FieldName;
EndIf;

Elementni qaytarish;

Ushbu nashrda biz hujjat jurnalida (dinamik ro'yxat) joriy sana va joriy vaqtdan boshlab muddati o'tgan hujjatlarning chiziqlarini bo'yash misolini ko'rib chiqamiz.

Bizning vazifamiz, agar oxirgi sana joriy sanadan kamroq bo'lsa, joriy sana doimo o'zgarib turishini hisobga olgan holda chiziqni pushti rangga bo'yashdir. Ya'ni, joriy sana dinamik ravishda o'qilishi kerak va birinchi ochilishda aniqlanmasligi kerak.

Qanday qilib kirishni bilib olamiz boshqariladigan shakl:

Kutish moslamasidan foydalaning;

Dasturiy ravishda sozlang shartli dizayn dinamik ro'yxat

Aytaylik, bizda "CheckDate" atributi va "Sana" turiga ega "Aqlli buyurtma" hujjati bor (sana tarkibi "Sana va vaqt"):

Va ushbu rekvizitga mos keladigan "Nazorat muddati" ustuni bilan "SmartZakaz" hujjat jurnali:

Bizning vazifamiz, agar oxirgi sana joriy sanadan kamroq bo'lsa, joriy sana doimo o'zgarib turishini hisobga olgan holda chiziqni pushti rangga bo'yashdir.

Keling, boshqariladigan shaklni yarataylik:

Endi, serverda yaratishda, biz "RenewalDisplayOverdiesOnServer" qatorlarini bo'yash protsedurasini chaqiramiz. Va biz ushbu protsedurani ma'lum chastotada chaqiramiz.

Bizda ro'yxatning ba'zi shakllari mavjud, masalan, "Ishlab chiqarish korxonalarini boshqarish" konfiguratsiyasining 1.3-versiyasidagi "Foydalanuvchi huquqlari" xarakterli turdagi reja elementlari.

Ko'rib turganingizdek, shakl boshqariladi. biz ro'yxatni shunday shakllantirishimiz kerakki, elementlar guruhlarining barcha qatorlari yashil rangda ta'kidlanadi. Qani boshladik!

Misol

Boshqariladigan shakl elementlari shartli shakl uslubi yordamida uslublanadi:

Muammoni hal qilish uchun quyidagi sozlamalar bilan shartli dizayn elementini qo'shamiz:


Shaklni keyingi safar ochganingizda, xarakterli turdagi rejalar guruhining chiziqlari yashil rangda ta'kidlanishi kerak. Lekin... unday emas!


Gap shundaki, xarakteristikalar diagrammasi elementlari va guruhlari ro'yxati "Dinamik ro'yxat" tipidagi forma ob'ekti yordamida shaklda ko'rsatiladi. Dinamik ro'yxatlar tanlash va shartlarni o'z ichiga olgan ma'lumotlar tarkibi tizimining imkoniyatlaridan foydalanish. Ikkinchisi ro'yxatning yakuniy dizaynini belgilaydi, shaklning o'zi shartli dizayn sozlamalarini e'tiborsiz qoldiradi. Keling, dinamik ro'yxat uchun shunga o'xshash shartli ko'rinish sozlamalarini qo'shamiz.


Yagona farq shundaki, barcha ko'rinadigan ro'yxat maydonlari shartli dizayn qo'llanilishi kerak bo'lgan uslublar ro'yxatiga qo'shilishi kerak.

Chiqish

Men ko'pincha boshqariladigan shakllardagi shartli har doim ham ishlamasligini eshitganman. Natijada, siz dinamik ro'yxat uchun emas, balki faqat shakl uchun sozlashlarni amalga oshirayotganingiz ma'lum bo'ldi.

Umid qilamanki, ushbu maqola shartli muammolarni hal qilishda kimdir vaqtni tejaydi.