Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Iron
  • Zašto uslovni stil možda neće raditi na upravljanom obrascu. Uslovno projektovanje upravljanih obrazaca 1C 8.3 primer uslovnog dizajna

Zašto uslovni stil možda neće raditi na upravljanom obrascu. Uslovno projektovanje upravljanih obrazaca 1C 8.3 primer uslovnog dizajna

Uslovno oblikovanje upravljanih formi.

Većina onih koji su radili sa sistemima kontrole pristupa i kreirali izveštaje o sistemima kontrole pristupa znaju o uslovnom dizajnu iz prve ruke. Promjena fonta polja, boje ćelije ili prezentacije ovisno o vrijednosti u drugom polju već je uobičajena.

Ali rjeđe nailazimo na uslovni dizajn kontroliranih oblika. Iako ovo nije ništa manje moćan, funkcionalan i neophodan mehanizam.
kakav je on? Ali sve je isto. Na osnovu bilo kojeg uslova, možemo konfigurirati poglede ili svojstva polja elemenata tabelarnog obrasca i oni će se mijenjati odmah u hodu.

Govorim o poljima dinamičke liste i poljima tabele. Ovdje iz koda možemo pristupiti zasebnoj koloni i postaviti svojstva za cijelu kolonu odjednom, ali ne možemo postaviti svojstva pojedinačnog polja.

Citat

Bitan!!! Mnogi ljudi se bore s tim i gube vrijeme. Uslovni stil ne radi za obična polja obrasca (ne polja tabele).

Gdje se ovo može koristiti osim polja za bojenje. Pa, klasičan primjer je predstavljanje pogleda u tabelarnom dijelu. Za računovodstvo, standardno ih mogu biti tri. I obično su poredani u jednom polju, jedan ispod drugog. Budući da svaka linija može imati svoj račun, sastav analitike može se razlikovati. I općenito, ako prikažete 3 analitike u svakoj liniji, to zauzima puno prostora. Zašto to činiti ako nam je dozvoljeno da negdje imamo jedan podkonto, ili negdje dva.

Postavljanje svojstava obrasca

Pogledajmo primjer sekcije tabele koju smo kreirali u obradi.

Kreirajmo obradu u kojoj ćemo dodati tabelarni dio sa tri Subconto detalja, a također dodati Subconto Quantity atribut, koji će ukazati na broj podkonto u liniji.

Podešavanje uslovnog izgleda obrasca nalazi se u svojstvima obrasca na kartici Izgled.

Sada je naš zadatak da ukažemo programu da ako je vrijednost u redu polja Količina podkonto 1, treba prikazati samo Subconto1, sa vrijednošću 2: Subconto1 i Subconto2, sa vrijednošću 3: Subconto1, Subconto2 , Subconto3.

Da biste to učinili, koristite obrazac za uvjetne postavke izgleda.

U koloni Formatirana polja označavamo polja Subconto1, Subconto2, Subconto3. Pošto će svako polje imati drugačiji dizajn, kreiraćemo 3 linije.

Naznačimo da ćemo dizajnirati svojstvo vidljivosti.

Postavićemo i uslov pod kojim će vidljivost biti isključena.

Da vidimo šta se desilo u preduzeću. Istovremeno ćemo dodati redove u tabelarni dio i urediti vrijednosti broja podkontoa.

Kao što vidite, različiti broj polja je prikazan u različitim redovima.

Podešavanje kodom

Osim podešavanja pomoću svojstava, ovo podešavanje se može obaviti pomoću programskog koda.
Ako koristite konfiguraciju izgrađenu na , to će izgledati ovako (ovo se odnosi na sve standardne):

ElementUO = ConditionalDesign.Elements.Add();
DataCompositionClientServer.AddDesignField(ElementUO.Fields, "TabularPartSubconto2");

GeneralPurposeClientServer.AddLayoutElement(ElementUO.Selection,
"TabularPartQuantitySubconto", DataCompositionComparisonType.Less, 2);

ElementUO.Design.SetParameterValue("Vidljivost", False);


Ako se BSP ne koristi, kod će biti malo duži. Samo ću dati standardne procedure iz istog BSP-a.

Funkcija AddDesignableField(CollectionofDesignableFields,FieldName) Izvoz

ElementField = Kolekcija FormattedFields.Elements.Add();
ItemField.Field = NewDataCompositionField(Ime polja);

returnItemField;

EndFunction


Funkcija AddLayoutElement(AddArea,
Vrijednost FieldName,
Vrsta poređenja vrijednosti,
Vrijednost RightValue = Nedefinirano,
Reprezentacija vrijednosti = Nedefinirano,
Upotreba vrijednosti = Nedefinirano,
valueDisplayMode = Nedefinirano,
valueUserSettingsIdentifier = Nedefinirano) Izvoz

Element = AdditionArea.Elements.Add(Type("DataComposition Selection Element"));
Item.LeftValue = NewDataCompositionField(Ime polja);
Element.ComparisonView = ComparisonType;

Ako je DisplayMode = Undefined Onda
Element.DisplayMode = ElementDisplayModeDataCompositionSettings.Unavailable;
Inače
Element.DisplayMode = DisplayMode;
endIf;

Ako RightValue<>Nedefinirano Onda
Element.RightValue = RightValue;
endIf;

Ako Reprezentacija<>Nedefinirano Onda
Item.View = Pogled;
endIf;

Ako koristite<>Nedefinirano Onda
Item.Use = Upotreba;
endIf;

// Važno: Postavljanje ID-a se mora izvršiti
// na kraju postavljanja elementa, inače će biti kopiran
// u korisničkim postavkama djelomično popunjeno.
IfUserIdentifierSettings<>Nedefinirano Onda
Element.UserSettingsIdentifier = UserSettingsIdentifier;
ElseIf Element.DisplayMode<>ItemDisplayModeDataLayoutSettings.Unavailable Then
Item.UserSettingIdentifier = Ime polja;
endIf;

Return Item;

U ovoj publikaciji ćemo razmotriti primjer bojanja linija neisplaćenih dokumenata u dnevniku dokumenata (dinamička lista) od trenutnog datuma i trenutnog vremena.

Naš zadatak je da liniju obojimo u ružičasto ako je ciljni datum manji od trenutnog datuma, uzimajući u obzir da se trenutni datum stalno mijenja. Odnosno, trenutni datum se mora čitati dinamički, a ne određivati ​​pri prvom otvaranju.

Naučićemo kako, na kontrolisan način:

Koristite obrađivač čekanja;

Programski konfigurirajte uvjetni izgled dinamičke liste

Recimo da imamo dokument "Smart Order" sa atributom "Control Date" i tipom "Date" (sastav datuma "Datum i vrijeme"):

I dnevnik dokumenata “SmartOrder” sa stupcem “Kontrolni datum” koji odgovara ovom detalju:

Naš zadatak je da obojimo red u ružičasto ako je ciljni datum manji od trenutnog datuma, uzimajući u obzir da se trenutni datum stalno mijenja.

Kreirajmo upravljani obrazac:

Sada, prilikom kreiranja na serveru, nazvat ćemo proceduru za bojenje linija “UpdatesDisplayOverdueOnServer”. I mi ćemo ovu proceduru nazvati sa datom frekvencijom.

Imamo neki oblik liste, na primjer, elemenata plana tipa karakteristike "Korisnička prava" u verziji 1.3 konfiguracije "Upravljanje proizvodnim poduzećem".

Forma je, kao što vidite, upravljiva. moramo dizajnirati listu na takav način da su svi redovi grupa elemenata označeni zelenom bojom. Hajde da počnemo!

Primjer

Elementi upravljanih obrazaca su stilizirani korištenjem uvjetnog stila oblika:

Da bismo riješili naš problem, dodajmo uslovni element dizajna sa sljedećim postavkama:


Kada sljedeći put otvorite obrazac, redovi grupe plana karakterističnih tipova trebaju biti označeni zelenom bojom. Ali...ovo se ne dešava!


Činjenica je da se lista elemenata i grupa plana tipova karakteristika prikazuje na obrascu pomoću objekta obrasca tipa "Dinamička lista". Dinamičke liste koriste prednosti sistema za sastav podataka, uključujući odabire i uslovno formatiranje. Potonji određuje konačni dizajn liste, zanemarujući postavke uvjetnog dizajna samog obrasca. Dodajmo slične postavke uvjetnog izgleda za dinamičku listu.


Jedina razlika je u tome što morate dodati sva vidljiva polja liste na listu polja koja će se formatirati na koja treba primijeniti uvjetni dizajn.

Zaključak

Često sam čuo da uslovni stil na upravljanim obrascima ne funkcioniše uvek. Na kraju se ispostavilo da jednostavno postavljate postavke za obrazac, a ne za dinamičku listu.

Nadam se da će ovaj članak nekome uštedjeti vrijeme pri rješavanju problema s uvjetnim formatiranjem.

Najbolji članci na ovu temu