Kiszámítja értéket közvetlenül egy táblázatba dokumentum, vr-line - ingyenes e-zine az
Ok, most ez a helyzet. A múlt héten vettem egy gyors elrontott egy egyszerű jelentés a számviteli osztály. A munka nagyon kevés - írásbeli kérelemre hozott adatok és kész. Ha nem egy kis „de”. A jelentésben volt egy oszlopban az „Egyéb”, az adatokat, amelyek nem szerezhetők képződése során a jelentés. Egy adott vonal adat lehet vagy nem lehet. A fej azonnal jött a döntés: „meg kell végrehajtani képes szerkeszteni a megfelelő sejtek táblázatdokumentum és szervezi az átalakítás összefoglaló területeken.” Mint bármi bonyolult, de eddig a pontig hasonló problémákkal szembesültem, és az első alkalommal kellett törni a fejét egy kicsit.
Rajz egy darab papírra durva cselekvési tervet, elkezdtem megvalósítani. A végén, kapok a következő műveletsorozatot:
1. Határozza meg a dokumentum elrendezésének táblázat cella, amelynek értékeit módosulni fog. Az Object Inspector (még mindig nem tudom, hogy ez a dolog, az úgynevezett nyelvi 1S'nikov, így megszokásból használja Delph'yachyu értelmezés) az ilyen sejtek ki tulajdon „magában”, és válassza ki a megfelelő adattípust (esetemben „száma „). Az egyszerűbb szerkesztési és megjelenítésére a bevitt adatok azt is javasolta, hogy az értéket a vagyon „Format” és a „szerkesztési formáját.” A rekord, tettem „CC = 15; CHDTS = 2; * P = 3,0. "
2. táblázat dokumentum, amelyet a kimeneti (I-ben található, a forma) hozzon létre egy eseménykezelő „PriIzmeneniiSoderzhimogoOblasti”. Ez az esemény mindig előfordul szerkesztése közben bármely területén táblázatdokumentum. A kezelő szerv írok a következő kódot:
TablichnyyDokumentPriIzmeneniiSoderzhimogoOblasti eljárás (Element Area) = TabDok ElementyFormy.TablichnyyDokument; // „PoluchitNomeraOblasteyDannyh” függvény egy szerkezetet, amely tartalmazza a // pozíció adatok oszlopokat kell szerkeszteni. A teljes kód elérhető // alábbi függvény. NomeraOblastey PoluchitNomeraOblasteyDannyh = (); NomeraOblastey.OblastDannyhNiz TabDok.VysotaTablitsy = - 3; // Ha az aktuális koordináta mezőbe írja be a szerkesztési listában, akkor elkezdheti a szerkesztést // Ha Oblast.Levo> = NomeraOblastey.KolonkaNachisleno És Oblast.Levo <= НомераОбластей.КолонкаСуммаКВыплате И Область.Верх>= NomeraOblastey.OblastDannyhVerh És Oblast.Verh <= НомераОбластей.ОбластьДанныхНиз Тогда //Получаем введенные пользователем значения СуммаНачислено = ТабДок.Область(Область.Верх, НомераОбластей.КолонкаНачислено).Значение; СуммаНалогНаДоходы = ТабДок.Область(Область.Верх, НомераОбластей.КолонкаНалогНаДоходы).Значение; СуммаПрочие = ТабДок.Область(Область.Верх, НомераОбластей.КолонкаПрочие).Значение; //Расчитываем итоги по строке СуммаУдержаноВсего = СуммаПрочие + СуммаНалогНаДоходы; СуммаКВыплате = СуммаНачислено - СуммаУдержаноВсего; //Выводим в область расчитанное значение ТабДок.Область(Область.Верх, НОмераОбластей.КолонкаВсего).Значение = СуммаУдержаноВсего; ТабДок.Область(Область.Верх, НомераОбластей.КолонкаСуммаКВыплате).Значение = СуммаКВыплате; //Приступаем к расчету итогов ИтоговоеЗначение = 0; //считаем итог по колонке Для сч = НомераОбластей.ОбластьДанныхВерх ПО НомераОбластей.ОбластьДанныхНиз-1 Цикл ИтоговоеЗначение = ИтоговоеЗначение + ТабДок.Область(сч, Область.Лево).Значение; КонецЦикла; ТабДок.Область(НомераОбластей.ОбластьДанныхНиз, Область.Лево).Значение = ИтоговоеЗначение; КонецЕсли; КонецПроцедуры
Remélem, hogy a megértés ezen eljárás probléma merül fel, és ha igen, akkor csak nézd meg PoluchitNomeraOblasteyDannyh () függvény kódja:
PoluchitNomeraOblasteyDannyh funkció () vissza új struktúrát ( "KolonkaNachisleno, KolonkaNalogNaDohody, KolonkaProchie, KolonkaVsego, KolonkaSummaKVyplate, OblastDannyhVerh, OblastDannyhNiz", 29, 38, 45, 52, 60, 22); KonetsFunktsii
A funkció áll egy sorban, és minden, ami történik, mert ez a struktúrák kialakítását értékekkel oszlopok eredetű.
Az én egész gyakorlat, hogy foglalkozni kell az ilyen probléma merült fel, csak egyszer, és nem vagyok benne biztos, hogy valami ilyesmi fog jelentkezni a közeljövőben, de fel kell készülnünk. Lehetséges, hogy valami ilyesmi lesz ráakad Önnek. Ha ez megtörténik, remélem utáni lehetővé teszi, hogy mentse egy csöppnyi időt.