Implementere Master / Detaljeret relationer ved hjælp af brugerdefinerede lister

Forum brugere ofte som spørgsmål som dette:

> Hej,
>
> Venligst fortælle mig, hvis der er nogen muligheder for at opbygge en brugerdefineret liste med
> Master og detaljeret type (ligesom fakturaer) uden at bruge InfoPath.
>

SharePoint giver nogle af de boks funktioner, der understøtter typer forretningskrav like that.

Generelt, man forbinder to lister sammen ved hjælp af en opslagskolonne. Liste A indeholder headeren fakturaoplysninger og liste B indeholder Fakturadetaljer.

Bruge yderligere lister til at vedligeholde kundenumre, produktnumre, osv.

Bruge webdelen indholdsforespørgsel (i MOSS kun) og/eller en data Se webdel til at oprette flettede visninger af lister. SQL Server Reporting Services (SRS) er også tilgængelig for rapportering side af det.

Dog, der er nogle vigtige begrænsninger, der vil gøre det vanskeligt at bruge ren out-of-the-box funktioner til noget, der er selv moderat komplicerede. Disse omfatter:

  • Størrelsen af relaterede opslag viser vs. "smartness" af typen opslag kolonne. Et opslag kolonnetype præsenterer sig selv på UI forskelligt afhængigt af om du har aktiveret flere valg eller ej. I begge tilfælde, out-of-the-box-kontrol viser alle tilgængelige elementer fra kildelisten. Hvis kildelisten har 1,000 elementer, der vil være et problem. Kontrolelementet opslag bladre ikke gennem disse elementer. I stedet, det trækker dem alle i kontrolelementet. Det gør for en meget akavet brugergrænseflade både med hensyn til indtastning af data og resultater.
  • Opslag "pull tilbage" én kolonne med oplysninger. Du kan aldrig trække tilbage mere end én kolonne med oplysninger fra kildelisten. For eksempel, Du kan ikke vælge en kunde "12345" og vise antal samt kundens navn og adresse på samme tid. Opslaget viser kun kunden nummer og intet andet. Dette gør for en akavet og vanskelige brugergrænseflade.
  • Ingen intra-form kommunikation. Jeg har skrevet om denne her. Du kan ikke implementere overlappende drop-downs, betinget aktiverer/deaktiverer felter, osv.
  • Ingen kaskadevise sletninger eller indbygget referentiel integritet. SharePoint behandler brugerdefinerede lister som uafhængige enheder og tillader ikke dig at linke dem til hinanden i en traditionel ERD forstand. For eksempel, SharePoint kan du oprette to brugerdefinerede lister, "kunde" og "fakturahovedet". Du kan oprette et fakturahoved der linker tilbage til en kunde på listen debitor. Derefter, Du kan slette kunden fra listen. Ud af boksen, der er ingen måde at forhindre dette. Til at løse slags problemer, du vil normalt bruge hændelseshandlere.

Det kan synes dystre, men jeg vil stadig bruge SharePoint som udgangspunkt for at opbygge denne form for funktionalitet. Selvom der er huller mellem hvad du har brug for i en løsning, SharePoint gør det muligt for os at udfylde disse huller ved hjælp af værktøjer som:

  • Hændelseshandlere. Brug dem til at gennemtvinge referentiel integritet.
  • Brugerdefinerede kolonner: Opret brugerdefinerede kolonnetyper og bruge dem i stedet for standard opslagskolonne. Tilføje personsøgning, buffering og AJAX funktioner at gøre dem lydhør.
  • BDC. Kun mos-funktionen giver os mulighed for at forespørgsel andre SharePoint-lister med en overlegen brugergrænseflade til den sædvanlige opslagskolonne. BDC kan også nå ud til en back-end-serverprogram. Bruge BDC for at undgå replikering. I stedet for at replikere kundeoplysninger fra back-end ERP system, bruge BDC i stedet. BDC-funktioner giver en nice brugergrænseflade for at trække disse oplysninger direkte fra ERP-systemet, hvor det hører hjemme og undgår besværet med at opretholde en replikering løsning.

    BDC er en funktion, MOSS (ikke tilgængelig i WSS) og er udfordrende for at konfigurere.

  • ASP.NET-webformular: Oprette en komplet AJAX-aktiveret formular, der bruger SharePoint-objekt model og/eller web services til at udnytte SharePoint lister samtidig en meget lydhør brugergrænseflade.

Den sidste mulighed kan føle som om du starter fra bunden, men overveje det faktum, at SharePoint-platformen starter du ud med de følgende vigtigste funktioner:

  • Sikkerhedsmodellen med vedligeholdelse.
  • Menusystemet med vedligeholdelse.
  • "Overordnet tabel" (dvs. brugerdefinerede lister) med sikkerhed, indbygget vedligeholdelse og auditering.
  • Søg.
  • Backend integrationsværktøjer (BDC).

Hvis du starter med et nyt tomt projekt i visual studio, du har en masse infrastruktur og VVS til at bygge før du komme tæt på SharePoint tilbyder.

Jeg mener, at Microsoft har til hensigt at udvide SharePoint i denne retning af applikationsudvikling. Det virker som en naturlig forlængelse af den eksisterende SharePoint base. Microsofts CRM ansøgning giver stor mulighed for udvidelse af de typer, der er nødvendige for at understøtte header/detaljeret applikationsudvikling. Selv om disse funktioner i CRM, teknologien er naturligvis tilgængelige til SharePoint udviklingsteam og jeg forventer, at det vil gøre sin vej ind i SharePoint produktet ved udgangen af 2008. Hvis nogen har en viden eller indsigt i dette, venligst efterlade en kommentar.

</slutningen>

5 tanker om ”Implementere Master / Detaljeret relationer ved hjælp af brugerdefinerede lister

  1. Paul Galvin

    Raghu, Jeg tror ikke der er nogen nem måde at gøre det. Jeg vil fokusere på uddannelse dine brugere når at bruge som en af dem og måske give dem et vink med navnet på indholdet skriver sig selv. Jeg tror ikke, du kan virkelig søm denne ene ned, teknisk.

    Svar
  2. Raghu skrev:
    Jeg opretter forælder/barn realationship ved hjælp af to indholdstyper og brugerdefinerede liste som beskrevet i den ovenfor Holstebro. Men jeg har et problem; Jeg skal gøre elementet indholdstype ikke tilgængelig på mappeniveau og mappe indholdstype ikke tilgængelig på vareniveau. Behage lede mig på denne ene. Tak…
    Svar
  3. Michael Vickers

    Det er lidt af en lappeløsning, men jeg bruger en ASP.Net dropdown, som skygger opslag "dropdown" genereret af SharePoint. Jeg pege en datasource, baseret på den liste, der indeholder elementet opslag ASP.Net dropdown, tillader mig at bruge id-feltet som værdien og kolonnen i mit valg som skærmtekst. Jeg binde ikke ASP.Net dropdown til listen opslagsfeltet, fordi det genererer server-side fejl.

    På side belastning bruge jeg javascript til at tildele den korrekte værdi til ASP.Net dropdown, og derefter vedhæfte onchange begivenheder til at dropdown til at tildele nye værdier til de tilsvarende SharePoint opslag dropdown. Jeg faktisk skjule den række, der indeholder SharePoint dropdown.

    En sidste ting — på grund af måde gengiver SharePoint Fedtmule opslag dropdowns når antallet af varer bliver fortiden 20 Jeg bruger brugerdefinerede wrapper-objekt til at få/sæt værdien dropdown. Jeg har en blog-indlæg beskriver processen her:

    http://www.idiotsyncrasies.com/2007/12/lookup-list-dropdowns-in-sharepoint.aspx

    Hej,

    Michael

    Svar
  4. David

    Du kan oprette en indholdstype for fakturahovedet baseret på indholdstypen mappe og derefter oprette en anden faktura indholdstype og tilføje både til en SharePoint-liste. Dette i realiteten skaber en forælder/barn-forhold, som vil tillade dig at oprette flere fakturaer baseret på faktura indholdstype, der lever under faktura Header indholdstypen, som giver dig og instant forholdet mellem de to punkter og hvis fakturahovedet listeelementet er slettet alle barn faktura emnerne i mappen vil blive slettet. Du kan også angive, at en indholdstype kun være tilgængelig i en bestemt mappe. Denne tilgang er lig hvor biblioteket diskussion virker og er meget nyttigt for denne type relation mellem elementer. Hændelseshandlere og kode vil hjælpe med nogle andre begrænsninger men generelt en hurtig nem løsning.

    Svar

Efterlad et svar til Raghu skrev: Annuller besvarelse

Din e-mail adresse vil ikke blive offentliggjort. Krævede felter er markeret *