Një gabim në llogaritjen e bilanceve në sistemin e ruajtjes dhe korrigjimin e softuerit të tij duke përdorur shembullin e një raporti universal. SCD është një burim i jashtëm i të dhënave, ne ngarkojmë nga specifikimi dhe më pas marrim bilancin për çdo dokument. Ju keni një pyetje, keni nevojë për ndihmën e një konsulenti

Ditë të mbarë, të dashur lexues të faqes së blogut! Herën e fundit ne kemi prekur tashmë një temë që foli për përdorimin e funksionit. Dhe sot, në të parën e kësaj serie artikujsh, do ta zbulojmë për çfarë përdoren rolet e fushës së përbërjes së të dhënave?, dhe gjithashtu merrni parasysh shembuj të plotësimit të këtyre roleve.

Roli i fushës ACS tregon çfarë është kjo fushë. Çdo rol i fushës mund të përmbajë vetitë e veta. Për shembull, ajo ka një vlerë numerike dhe përmban numrin e periudhës nëse fusha është pikë. Nëse vlera e vetive “Perioda” është 0 (zero), kjo do të thotë se kjo fushë nuk është një pikë. Ose vetia "Dimension" - përmban një tregues që fusha është një dimension. Nëse fusha është një dimension, atëherë ky informacion përdoret kur llogariten totalet për fushat e bilancit.

Për secilën fushë në skemën e përbërjes së të dhënave, mund të specifikoni një rol. Rolet ndikojnë në korrektësinë e llogaritjeve të bilancit. Në veçanti, bilanci fillestar dhe përfundimtar sipas një tabele. Nëse në pyetës zgjidhet tabela virtuale "Bilanci dhe qarkullimi", atëherë balancat fillestare dhe përfundimtare llogariten duke përdorur një algoritëm kompleks, veçanërisht nëse përdorim përhapje shtesë sipas periudhës.

Por nëse në pyetje e gjithë kjo funksionon si duhet, bazuar në një grup fushash dalëse, atëherë në përbërjen e të dhënave gjërat janë disi më keq. Në fund të fundit, ne nuk e dimë se cilat fusha do të zgjedhë përdoruesi. Gjithçka do të varet nga cilësimet e versionit të tij të raportit, të cilin ai mund t'i ndryshojë në çdo kohë. Prandaj, sistemi i përbërjes së të dhënave ka mekanizmin e vet për llogaritjen e bilanceve hapëse dhe mbyllëse për një grup të caktuar të dhënash, dhe rolet përdoren për këtë në përputhje me rrethanat. Le ta hapim dhe të shohim që mund të vendosni role për secilën fushë.

Le të shtojmë një grup të dhënash për pyetje. Për ta bërë këtë, ne duhet të bëjmë aktiv elementin rrënjë "Query Builder". Le t'i drejtohemi tabelës virtuale "Bilanci dhe qarkullim" të regjistrit të akumulimit. Çfarë shohim?

Siç mund ta shihni nga ilustrimi i mësipërm, shohim se për disa fusha roli është plotësuar. Kjo ndodhi sepse ne kemi vendosur flamurin AutoComplete. Por kjo nuk është gjithmonë e mundur, kështu që ndonjëherë ju duhet ta futni rolin me dorë. Le të shohim disa shembuj.

Le të supozojmë se në një pyetje që përdorim, për shembull, përdorim operatorin e gjuhës së pyetjes "SELECT". Le të përshkruajmë gjendjen e mëposhtme:

ZGJEDHJA KUR Produkti RemainingRemainingsAndTurnover.Nomenklatura = Vlera(Directory.Nomenclature.EmptyLink) THEN Value(Directory.Nomenklature.Shampo) ELSE Produkti RemainingRemainingsAndTurnover.Nomenklatura FUND

Kjo hyrje do të thotë se nëse artikulli korrespondon me një lidhje boshe (i referohemi drejtorisë së vlerave të funksionit "Nomenklatura", lidhje boshe), atëherë vlera e elementit të paracaktuar do të kthehet. Le të supozojmë se konfigurimi ynë ka diçka të tillë element i paracaktuar dhe quhet “Shampo”. Përndryshe, ne i kthejmë vlerën e vetë artikullit. Ne marrim sa vijon:

Siç mund ta shihni, roli nuk u plotësua për fushën "Nomenklatura". Por siç mund ta shihni në imazh, në realitet nuk kemi një rol të futur për fushën “Fusha1” dhe në këtë rast pjesa e mbetur nuk do të llogaritet saktë.

Ka shembuj të tjerë ku roli nuk mund të caktohet në mënyrë të pavarur. Për shembull, ky është përdorimi i , d.m.th., një tabelë e caktuar vlerash ofrohet si hyrje, të themi, e ngarkuar nga një bazë tjetër e të dhënave, dhe balancat duhet të llogariten prej saj. Në këtë rast, ne duhet të caktojmë role vetë. Ne do të shikojmë se si bëhet kjo në.

Në fund të artikullit dua t'ju rekomandoj një falas nga Anatoli Sotnikov. Ky është një kurs nga një programues me përvojë. Ai do t'ju tregojë në një bazë të veçantë se si të ndërtoni raporte në sistemin e kontrollit të aksesit. Thjesht duhet të dëgjoni me kujdes dhe të mbani mend! Do të merrni përgjigje për pyetjet e mëposhtme:
  • Si të krijoni një raport të thjeshtë të listës?
  • Për çfarë shërbejnë kolonat Fusha, Shtegu dhe Titulli në skedën "Fushat"?
  • Cilat janë kufizimet për fushat e paraqitjes?
  • Si të konfiguroni rolet në mënyrë korrekte?
  • Cilat janë rolet për fushat e paraqitjes?
  • Ku mund ta gjej skedën e përbërjes së të dhënave në një pyetje?
  • Si të konfiguroni parametrat në sistemin e kontrollit të hyrjes?
  • Bëhet edhe më interesante...
Ndoshta nuk duhet të përpiqeni të shfletoni vetë në internet në kërkim të informacionit të nevojshëm? Për më tepër, gjithçka është gati për përdorim. Vetëm filloni! Të gjitha detajet rreth asaj që ka në mësimet video falas

Nuk e di se sa njerëz kanë hasur tashmë në gabimin e llogaritjes së bilanceve fillestare dhe përfundimtare sipas grupimeve. Personalisht, kam qenë "me fat", më shumë se një herë. Arsyeja, siç munda të zbuloja, qëndron në cilësimet e gabuara të fushave të të dhënave ACS, rëndësinë e të cilave shumë programues fillestarë (dhe jo aq fillestarë) nuk e dinë ende plotësisht.

Kur një grup i të dhënave ACS krijohet automatikisht bazuar në një pyetje, problemet zakonisht nuk lindin, sepse vetë platforma plotëson saktë cilësimet e fushës bazuar në tekstin e kërkesës. Por ka situata kur cilësimet e fushës së të dhënave nuk plotësohen automatikisht (për shembull, ju përdorni burim i jashtëm të dhënat), dhe të dhënat burimore përmbajnë lëvizje me mbetje dhe rrotullime.

Nëse nuk e keni hasur më parë këtë problem, atëherë për të kuptuar më mirë thelbin e tij, unë sugjeroj ta riprodhoni vetë duke përdorur një raport universal (bazuar në metadata). Ne hapim raportin, zgjedhim çdo regjistër akumulimi jo bosh me bilancet dhe qarkullimin, aktivizojmë kutinë e kontrollit "Regjistrime të detajuara" në cilësimet e raportit (), tregojmë disa grupime dhe shtojmë Regjistruesin në fushat e daljes. Voila - bilancet e hapjes dhe mbylljes janë përmbledhur për çdo grupim. Rezultati është një raport me numra absolutisht të pasaktë, i cili nuk mund t'u shfaqet përdoruesve.

Për të zgjidhur këtë problem, është e nevojshme të plotësoni saktë cilësimet e fushës së grupit të të dhënave ACS - në veçanti, fushën "Roli", e cila ka një rëndësi kryesore.

SOLUTION interaktive ( jo i përshtatshëm për raportin universal):

Hapni diagramin e paraqitjes së të dhënave për raportin tuaj dhe shikoni cilësimet e fushës së grupit të të dhënave.

Për fushat e bilanceve fillestare dhe përfundimtare për çdo burim, duhet të plotësoni rolin: zgjidhni grupin e roleve "E mbetur" dhe në të specifikoni përkatësisht vlerën "Bilanci fillestar" ose "Bilanci përfundimtar". Kështu që ( ) kjo bëhet në konstruktorin ACS.

Në mënyrë të ngjashme, ju duhet të caktoni rolin "Dimension" për të gjitha dimensionet në grupin tuaj të të dhënave.

Por kjo nuk mjafton që raportet të funksionojnë siç duhet. Për të llogaritur saktë fushat e mbetura, duhet të dini periudhën e secilës lëvizje në mënyrë që t'i vendosni ato në rendin e saktë kronologjik. Nëse burimi juaj origjinal i të dhënave nuk ka një fushë me pikë, duhet ta shtoni atje. Nëse fusha e periudhës ekziston tashmë në grupin e të dhënave, ajo duhet të specifikohet me rolin "Periudha" dhe numrin përkatës të periudhës (mund të lexoni më shumë rreth numërimit të periudhave në ndihmë).

Cilësimet e tilla të fushave të të dhënave ACS në shumicën e rasteve bëjnë të mundur arritjen e llogaritjes së saktë të bilanceve duke grupuar kur me cilësimet e paracaktuara janë llogaritur gabimisht.

ZGJIDHJA Softuerike (duke përdorur shembullin e Raportit Universal të Metadatave):

Tani le të shohim se si të rregullojmë të njëjtin gabim në Raportin Universal të Metadata. Raporti universal ndryshon nga shumica e raporteve të tjera në atë që skema e paraqitjes së të dhënave atje është krijuar tërësisht në mënyrë programore, kështu që ju gjithashtu duhet të konfiguroni rolet për fushat e të dhënave ACS në mënyrë programore.

Për rolet bilancet e fillimit dhe të fundit për çdo burim Mënyra më e lehtë është të mos rishpikni timonin (gjithçka është shkruar tashmë para nesh) dhe të përdorni procedurën standarde Plotësoni DataSetFieldRemainder() nga moduli i përgjithshëm StandardReports. Aty kaloni fushën e grupit të të dhënave dhe emrin e burimit si parametra, dhe si rezultat, në grupin e të dhënave krijohet një fushë e mbetur me një rol të plotësuar saktë.

Në mënyrë të ngjashme, kur krijoni fushat e të dhënave për dimensionet, duhet t'u caktoni atyre rolin Dimension. Kodi do të jetë diçka e tillë:

NewDimension = TypicalReports.AddDataSetField(DataCompositionSchema.DataSets, Dimension.Name, Dimension.Sinonim); Dimensioni i Ri.Roli.Dimensioni = E vërtetë;

Manipulimet me fushat e burimeve dhe dimensioneve të përshkruara më sipër janë të nevojshme, por jo të mjaftueshme për të zgjidhur problemin - problemi kryesor i raportit universal është mungesa e numërimit të periudhave. Fushat e periudhës janë të pranishme në grupin e të dhënave, por rolet e tyre nuk plotësohen.

Fushat e periudhës i shtohen raportit me procedurën e modulit të përgjithshëm StandardReports.AddPeriodFieldsToDataSet(), i cili thirret nga procedura e modulit të objektit AddDataSetFields(). Fatkeqësisht, kjo procedurë nuk cakton numrat e periudhave.

Përveç kësaj, fushat "Numri i linjës" dhe "Regjistruesi" nuk shtohen askund në mënyrë programore në raport. Më dukej e çuditshme, sepse... ato janë të pranishme në grupin përfundimtar të të dhënave.

Siç doli, fushat "Numri i linjës" dhe "Regjistruesi"(Regjistruesi) shtohet nga vetë platforma automatikisht kur inicializohet ndërtuesi i cilësimeve. Për më tepër, platforma nuk i plotëson rolet për fushat që krijon dhe nuk është e mundur të plotësohen ato në mënyrë programore, gjë që krijon probleme gjatë punës së mëtejshme me to. Por nëse i krijoni këto fusha "me dorë" dhe u caktoni atyre rolet e duhura në mënyrë programore, atëherë platforma nuk përpiqet më t'i krijojë ato përsëri.

Më poshtë unë ofroj një recetë që më ndihmoi të zgjidh pothuajse plotësisht këtë problem të platformës dhe Raportit Universal të Metadata:

Këtu është kjo pjesë e kodit të modulit të objektit:

// Shto fushat e periodave Nëse TableName = "RemainsAndTurnover" OSE TableName = "Turnover" Pastaj TypicalReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); fundNëse; duhet të zëvendësohet me sa vijon: // Shto fushat e periudhës Nëse TableName = "RemainsAndTurnover" OSE TableName = "Turnover" Pastaj PeriodList = TypicalReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); //Plotësoni fushat e shërbimit dhe vendosni periodat me dorë, sepse platforma nuk i plotëson ato Field = TypicalReports.AddDataSetField(DataCompositionSchema.DataSets, "Numri i Rreshtit", "Numri i Rreshtit"); Fusha.Roli.Numri i periudhës = 1; Fusha = TypicalReports.AddDataSetField(DataCompositionSchema.DataSets, "Registrator", "Registrar"); Fusha.Roli.Numri i periudhës = 2; ч = 3; Për çdo FieldPeriod Nga Lista e Periodave Cikli FushaPeriudha.Vlera.Roli.PeriudhaNumber = count; Nëse numëroni > 3 Pastaj FieldPeriod.Value.Role.PeriodType = DataCompositionPeriodType.Additional; fundNëse; sch = sch+1; Cikli i Fundit; fundNëse;

Unë kam qenë në gjendje të gjej një kufizim që lidhet me këtë zgjidhje. Për llogaritjen e saktë të fillimit. dhe kon. bilanceve, është e nevojshme që kur përdorni ndonjë detaj të një dokumenti regjistrues në një raport, duhet të zgjidhet edhe vetë regjistruesi. Ndryshe, raporti universal pas modifikimeve të tilla nuk shkakton më alergji tek përdoruesit.

UPDATE: Më thanë në komente se një artikull mbi këtë temë u botua dikur në diskun e ITS. Fatkeqësisht, ky artikull më kaloi, por mund të më ndihmonte vetëm pjesërisht në zgjidhjen e problemeve me raportin universal. Mjerisht, problemet e platformës me fushat e shërbimit ACS, si "Regjistruesi", gjithashtu nuk përshkruhen atje.

Në çdo rast, shpresoj që artikulli im të ndihmojë të gjithë ata që kanë probleme të ngjashme. Kam kaluar shumë kohë duke kërkuar këtë zgjidhje ...

Një gabim tjetër i zakonshëm kur krijoni raporte mbi sistemet e kontrollit të hyrjes për ndërmarrjen 1C është se balancat fillestare dhe përfundimtare në tabelat virtuale të regjistrave të akumulimit janë llogaritur gabimisht. Për shembull, le të krijojmë një raport të thjeshtë që do të tregojë bilancet dhe lëvizjet në regjistrin GoodsInWarehouses. Kërkesa e tij do të duket si kjo:

Ne gjithashtu do të krijojmë cilësime të thjeshta variante:

Si rezultat, marrim raportin e mëposhtëm:

Keni një pyetje apo keni nevojë për ndihmë nga një konsulent?

Sepse Ne nuk kemi treguar askund fillimin dhe fundin e periudhës, raporti duhet të tregojë të dhëna nga fillimi i mbajtjes së bazës së të dhënave. Por në magazinën tonë dhe grupimet e artikujve ka balanca hapëse jo zero. Është e lehtë të kuptohet që të dhënat shfaqen gabimisht, sepse... Nuk duhet të ketë bilanc në fillim të mbajtjes së bazës së të dhënave. Edhe pse vetë kërkesa është e saktë.

Fakti është se ACS ka mekanizmin e vet për llogaritjen e bilanceve. Për funksionimin e saktë të tij, është e nevojshme të përcaktohet pa mëdyshje vendndodhja e regjistruesve në boshtin e kohës. NË në këtë rast vetëm lidhja është e pranishme në përzgjedhje, kështu që sistemi i paraqitjes nuk mund ta bëjë këtë. Për të shmangur këtë sjellje të sistemit të kontrollit të aksesit, duhet të zgjidhni fushën PeriodSecond në kërkesë. Në këtë rast, sistemi do të llogarisë saktë bilancet:

Ju lutemi mbani mend se fushat me rolin "Periudha" kanë një kuti kontrolli "Shtesë". Dhe nëse për ndonjë arsye hiqet nga fusha PeriodSecond, raporti do të kthehet në versionin e pasaktë. Për të llogaritur saktë bilancet, ose duhet të keni të kontrolluar kutinë "Shtesë" në rol, ose praninë e fushës në fushat e zgjedhura të raportit në nivelin e variantit.

Nuk e di se sa njerëz kanë hasur tashmë në gabimin e llogaritjes së bilanceve fillestare dhe përfundimtare sipas grupimeve. Personalisht, kam qenë "me fat", më shumë se një herë. Arsyeja, siç munda të zbuloja, qëndron në cilësimet e gabuara të fushave të të dhënave ACS, rëndësinë e të cilave shumë programues fillestarë (dhe jo aq fillestarë) nuk e dinë ende plotësisht.

Kur një grup i të dhënave ACS krijohet automatikisht bazuar në një pyetje, problemet zakonisht nuk lindin, sepse vetë platforma plotëson saktë cilësimet e fushës bazuar në tekstin e kërkesës. Por ka situata kur cilësimet e fushës së të dhënave nuk plotësohen automatikisht (për shembull, po përdorni një burim të jashtëm të dhënash), dhe të dhënat e burimit përmbajnë lëvizje me bilanc dhe qarkullim.

Nëse nuk e keni hasur më parë këtë problem, atëherë për të kuptuar më mirë thelbin e tij, unë sugjeroj ta riprodhoni vetë duke përdorur një raport universal (bazuar në metadata). Ne hapim raportin, zgjedhim çdo regjistër akumulimi jo bosh me bilancet dhe qarkullimin, aktivizojmë kutinë e kontrollit "Regjistrime të detajuara" në cilësimet e raportit (), tregojmë disa grupime dhe shtojmë Regjistruesin në fushat e daljes. Voila - bilancet e hapjes dhe mbylljes janë përmbledhur për çdo grupim. Rezultati është një raport me numra absolutisht të pasaktë, i cili nuk mund t'u shfaqet përdoruesve.

Për të zgjidhur këtë problem, është e nevojshme të plotësoni saktë cilësimet e fushës së grupit të të dhënave ACS - në veçanti, fushën "Roli", e cila ka një rëndësi kryesore.

SOLUTION interaktive ( jo i përshtatshëm për raportin universal):

Hapni diagramin e paraqitjes së të dhënave për raportin tuaj dhe shikoni cilësimet e fushës së grupit të të dhënave.

Për fushat e bilanceve fillestare dhe përfundimtare për çdo burim, duhet të plotësoni rolin: zgjidhni grupin e roleve "E mbetur" dhe në të specifikoni përkatësisht vlerën "Bilanci fillestar" ose "Bilanci përfundimtar". Kështu që ( ) kjo bëhet në konstruktorin ACS.

Në mënyrë të ngjashme, ju duhet të caktoni rolin "Dimension" për të gjitha dimensionet në grupin tuaj të të dhënave.

Por kjo nuk mjafton që raportet të funksionojnë siç duhet. Për të llogaritur saktë fushat e mbetura, duhet të dini periudhën e secilës lëvizje në mënyrë që t'i vendosni ato në rendin e saktë kronologjik. Nëse burimi juaj origjinal i të dhënave nuk ka një fushë me pikë, duhet ta shtoni atje. Nëse fusha e periudhës ekziston tashmë në grupin e të dhënave, ajo duhet të specifikohet me rolin "Periudha" dhe numrin përkatës të periudhës (mund të lexoni më shumë rreth numërimit të periudhave në ndihmë).

Cilësimet e tilla të fushave të të dhënave ACS në shumicën e rasteve bëjnë të mundur arritjen e llogaritjes së saktë të bilanceve duke grupuar kur me cilësimet e paracaktuara janë llogaritur gabimisht.

ZGJIDHJA Softuerike (duke përdorur shembullin e Raportit Universal të Metadatave):

Tani le të shohim se si të rregullojmë të njëjtin gabim në Raportin Universal të Metadata. Raporti universal ndryshon nga shumica e raporteve të tjera në atë që skema e paraqitjes së të dhënave atje është krijuar tërësisht në mënyrë programore, kështu që ju gjithashtu duhet të konfiguroni rolet për fushat e të dhënave ACS në mënyrë programore.

Për rolet bilancet e fillimit dhe të fundit për çdo burim Mënyra më e lehtë është të mos rishpikni timonin (gjithçka është shkruar tashmë para nesh) dhe të përdorni procedurën standarde Plotësoni DataSetFieldRemainder() nga moduli i përgjithshëm StandardReports. Aty kaloni fushën e grupit të të dhënave dhe emrin e burimit si parametra, dhe si rezultat, në grupin e të dhënave krijohet një fushë e mbetur me një rol të plotësuar saktë.

Në mënyrë të ngjashme, kur krijoni fushat e të dhënave për dimensionet, duhet t'u caktoni atyre rolin Dimension. Kodi do të jetë diçka e tillë:

NewDimension = TypicalReports.AddDataSetField(DataCompositionSchema.DataSets, Dimension.Name, Dimension.Sinonim); Dimensioni i Ri.Roli.Dimensioni = E vërtetë;

Manipulimet me fushat e burimeve dhe dimensioneve të përshkruara më sipër janë të nevojshme, por jo të mjaftueshme për të zgjidhur problemin - problemi kryesor i raportit universal është mungesa e numërimit të periudhave. Fushat e periudhës janë të pranishme në grupin e të dhënave, por rolet e tyre nuk plotësohen.

Fushat e periudhës i shtohen raportit me procedurën e modulit të përgjithshëm StandardReports.AddPeriodFieldsToDataSet(), i cili thirret nga procedura e modulit të objektit AddDataSetFields(). Fatkeqësisht, kjo procedurë nuk cakton numrat e periudhave.

Përveç kësaj, fushat "Numri i linjës" dhe "Regjistruesi" nuk shtohen askund në mënyrë programore në raport. Më dukej e çuditshme, sepse... ato janë të pranishme në grupin përfundimtar të të dhënave.

Siç doli, fushat "Numri i linjës" dhe "Regjistruesi"(Regjistruesi) shtohet nga vetë platforma automatikisht kur inicializohet ndërtuesi i cilësimeve. Për më tepër, platforma nuk i plotëson rolet për fushat që krijon dhe nuk është e mundur të plotësohen ato në mënyrë programore, gjë që krijon probleme gjatë punës së mëtejshme me to. Por nëse i krijoni këto fusha "me dorë" dhe u caktoni atyre rolet e duhura në mënyrë programore, atëherë platforma nuk përpiqet më t'i krijojë ato përsëri.

Më poshtë unë ofroj një recetë që më ndihmoi të zgjidh pothuajse plotësisht këtë problem të platformës dhe Raportit Universal të Metadata:

Këtu është kjo pjesë e kodit të modulit të objektit:

// Shto fushat e periodave Nëse TableName = "RemainsAndTurnover" OSE TableName = "Turnover" Pastaj TypicalReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); fundNëse; duhet të zëvendësohet me sa vijon: // Shto fushat e periudhës Nëse TableName = "RemainsAndTurnover" OSE TableName = "Turnover" Pastaj PeriodList = TypicalReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); //Plotësoni fushat e shërbimit dhe vendosni periodat me dorë, sepse platforma nuk i plotëson ato Field = TypicalReports.AddDataSetField(DataCompositionSchema.DataSets, "Numri i Rreshtit", "Numri i Rreshtit"); Fusha.Roli.Numri i periudhës = 1; Fusha = TypicalReports.AddDataSetField(DataCompositionSchema.DataSets, "Registrator", "Registrar"); Fusha.Roli.Numri i periudhës = 2; ч = 3; Për çdo FieldPeriod Nga Lista e Periodave Cikli FushaPeriudha.Vlera.Roli.PeriudhaNumber = count; Nëse numëroni > 3 Pastaj FieldPeriod.Value.Role.PeriodType = DataCompositionPeriodType.Additional; fundNëse; sch = sch+1; Cikli i Fundit; fundNëse;

Unë kam qenë në gjendje të gjej një kufizim që lidhet me këtë zgjidhje. Për llogaritjen e saktë të fillimit. dhe kon. bilanceve, është e nevojshme që kur përdorni ndonjë detaj të një dokumenti regjistrues në një raport, duhet të zgjidhet edhe vetë regjistruesi. Ndryshe, raporti universal pas modifikimeve të tilla nuk shkakton më alergji tek përdoruesit.

UPDATE: Më thanë në komente se një artikull mbi këtë temë u botua dikur në diskun e ITS. Fatkeqësisht, ky artikull më kaloi, por mund të më ndihmonte vetëm pjesërisht në zgjidhjen e problemeve me raportin universal. Mjerisht, problemet e platformës me fushat e shërbimit ACS, si "Regjistruesi", gjithashtu nuk përshkruhen atje.

Në çdo rast, shpresoj që artikulli im të ndihmojë të gjithë ata që kanë probleme të ngjashme. Kam kaluar shumë kohë duke kërkuar këtë zgjidhje ...

41
Kohët e fundit kam bërë një raport me një numër të pacaktuar kolonash. Nuk doja të ndërhyja me kodin, kështu që vendosa ta bëj atë në sistemin e kontrollit të hyrjes. Nuk kishte asnjë problem me këtë, ishte e nevojshme të shtrihej rezultati në një plan urbanistik (koka juaj +... 27
Edhe pse studentët e CDS-së e hasin këtë në ditën e parë ose të dytë, ajo duhet të jetë në seksionin FAQ. Një shembull i thjeshtë i nxjerrjes programatike të një raporti në një plan urbanistik, duke përdorur cilësimet e paracaktuara. //Merrni diagramin nga... 18
Kur gjeneroni raporte në sistemin e kontrollit të aksesit, si parazgjedhje të gjitha grupimet zgjerohen, por ndonjëherë është e nevojshme të shfaqet një raport me grupime të shembur menjëherë pas gjenerimit! Ky kod në modulin e raportit ju lejon të rrëzoni... 10
Në këtë skedë mund të specifikoni se çfarë lidhjesh bëhen midis dy ose më shumë grupeve të të dhënave, sipas cilës parametra dhe kushte..png 1. “Burimi i lidhjes” - tregon grupin e parë të të dhënave, nga... 9
Ajo që kërkohet gjatë zhvillimit të raporteve është që për një përdorues me të drejta të kufizuara, raporti të gjenerohet plotësisht pa të drejta kontrolli! Sidomos nëse RLS është konfiguruar Ka disa mënyra për ta bërë këtë: 1. Instaloni...