Implementering av Master / Detalj relasjoner ved hjelp av egendefinerte lister

Forum brukere ofte som spørsmål som dette:

> hallo,
>
> Behage fortelle meg hvis det er noen muligheter til å bygge en egendefinert liste med
> overordnet og detaljert type (som fakturaer) uten å bruke InfoPath.
>

SharePoint gir litt ut av boksen-funksjoner som støtte typer forretningskrav sånn.

Generelt, en kobler to listene sammen med en oppslagskolonne. Liste A inneholder fakturaen meldingshodeinformasjonen og liste B inneholder Fakturaopplysninger.

Bruk flere lister til å vedlikeholde kundenumre, produktnumre, osv..

Bruke en webdel for innholdsspørring (i MOSS bare) og/eller en vise webdelen for å opprette flettede visninger av lister. SQLServer Reporting Services (SRS) er også tilgjengelig for rapportering siden av det.

Men, Det er noen viktige begrensninger som kan gjøre det vanskelig å bruke ren ut-av-esken funksjonene for noe som er selv moderat kompleks. Disse inkluderer:

  • Størrelsen på relaterte søk viser vs. "smartness" av kolonnetypen oppslag. Kolonnetypen oppslag presenterer seg på Grensesnittet forskjellig avhengig av om du har aktivert merker eller ikke. I begge tilfeller, out-of-the-box kontrollen viser alle tilgjengelige elementer fra listen. Hvis kildelisten inneholder 1,000 elementer, det skal være et problem. Kontrollen oppslag ikke bla gjennom elementene. I stedet, det trekker dem alle i kontrollen. Det gjør for en svært vanskelig brukergrensesnitt både dataregistrering og ytelse.
  • Oppslag "Trekk tilbake" én kolonne med informasjon. Du kan aldri trekke tilbake mer enn én kolonne med informasjon fra listen. For eksempel, Du kan ikke velge en kunde "12345" og vise nummeret som kundens navn og adresse samtidig. Oppslag bare viser antall og ingenting annet. Dette gjør for et vanskelig og vanskelig brukergrensesnitt.
  • Ingen intra-skjemaet kommunikasjon. Jeg har skrevet om dette her. Du kan ikke implementere gjennomgripende rullegardinlister, betinget aktivere/deaktivere felt, osv..
  • Ingen gjennomgripende sletting eller innebygd referanseintegritet. SharePoint behandler egendefinerte lister som uavhengige enheter og kan du koble dem til hverandre i en tradisjonell ERD forstand ikke. For eksempel, SharePoint kan du lage to egendefinerte lister, "kunde" og "fakturahodet". Du kan opprette et fakturahode som kobler til en kunde i kundelisten. Deretter, Du kan slette kunden fra listen. Esken, Det er ikke mulig å hindre dette. Å løse denne type problem, du bruker vanligvis hendelsesbehandling.

Det kan virke dystre, men jeg ville fortsatt bruke SharePoint som utgangspunkt for å bygge denne typen funksjonalitet. Selv om det er mellomrom mellom det du trenger i en løsning, SharePoint gjør det mulig for oss å fylle disse hullene med verktøy som:

  • Hendelsesbehandling. Bruk dem til å fremtvinge referanseintegritet.
  • Egendefinerte kolonner: Opprette egendefinerte kolonnen og bruke dem i stedet for standard oppslagskolonnen. Legge til personsøker, bufring og AJAX funksjoner for å gjøre dem mottakelig.
  • BDC. Denne MOSS-bare funksjonen kan vi spørre andre SharePoint-lister med overlegen brukergrensesnitt for vanlige oppslagskolonnen. BDC kan også nå ut til et serverprogram for bakenden. Bruk BDC for å unngå replikering. I stedet for å replikere kundeinformasjon fra bakdatabase forretningssystem, Bruk BDC i stedet. BDC funksjoner gir en hyggelig bruker grenseflate å rykk informasjonen direkte fra ERP-systemet der det hører og unngår å måtte opprettholde en replikering løsning.

    BDC er en MOSS-funksjon (ikke tilgjengelig i WSS) og er utfordrende for å konfigurere.

  • ASP.NET-webskjema: Opprette en fullfunksjons AJAX-aktivert skjema som bruker SharePoint-objekt modell og/eller tjenestene for å utnytte SharePoint-lister samtidig som det gir en svært forståelsesfull brukergrensesnitt.

Det siste alternativet kan føle som om du starter fra scratch, men vurdere det faktum at SharePoint-plattformen starter du med følgende nøkkelfunksjoner:

  • Sikkerhetsmodellen med vedlikehold.
  • Menysystem med vedlikehold.
  • "Master tabell" (dvs.. egendefinerte lister) med sikkerhet, innebygd vedlikehold og overvåking.
  • Søk.
  • Bakenden integrasjonsverktøy (BDC).

Hvis du starter med et nytt tomt prosjekt i visual studio, du har mye infrastructure og avløp å bygge før du nærmer hva SharePoint tilbyr.

Jeg tror at Microsoft har til hensikt å utvide SharePoint i denne retningen programutvikling. Det virker som en naturlig utvidelse til eksisterende SharePoint base. Microsoft CRM-programmet gir en stor utvidelse av måtte topptekst/detaljert programutvikling. Selv om disse funksjonene i CRM, teknologien er åpenbart tilgjengelig for SharePoint-utviklingsteam og jeg forventer at det vil gjøre sin vei til SharePoint-produktet slutten av 2008. Hvis noen har en kunnskap eller innsikt i dette, Legg igjen en kommentar.

</slutten>

Technorati Merkelapper:

5 tanker om “Implementering av Master / Detalj relasjoner ved hjelp av egendefinerte lister

  1. Paul Galvin

    Raghu, Jeg tror ikke det er noen enkel måte å gjøre det. Jeg ville fokusere på trening brukerne når du bruker hvilke ettall av seg og kanskje gi dem et tips med navnet på innholdet skriver seg selv. Jeg tror ikke du kan virkelig spikre dette, teknisk.

    Svar
  2. Raghu skrev:
    Jeg oppretter foreldre/barn realationship ved hjelp av to innholdstyper og egendefinert liste som forklart i de ovennevnte commnet. Men jeg har et problem; Jeg nød å lage innhold elementtype utilgjengelig på mappenivå og mappe tilgjengelig på varenivå. Vennligst guide meg på denne. takk…
    Svar
  3. Michael Vickers

    Det er litt av en kludge men jeg bruker en ASP.Net dropdown som skygger oppslaget "dropdown" generert av SharePoint. Jeg peke ASP.Net rullegardinlisten til en datakilde basert på listen som inneholder elementet oppslag, tillater meg å bruke ID-feltet som verdien og kolonnen i mitt valg som visningstekst. Jeg binde ikke ASP.Net rullegardinlisten til feltet for oppslagsliste fordi den genererer serversiden feil.

    På sideinnlasting bruker jeg javascript til å tilordne riktig verdi til ASP.Net rullegardinlisten, og deretter legge onchange arrangementer til at listen for å tilordne nye verdier til tilsvarende SharePoint oppslag rullegardinlisten. Jeg faktisk skjule raden som inneholder SharePoint rullegardinlisten.

    En siste ting — fordi gjengir SharePoint goofy oppslag rullegardinlistene når antallet varer blir forbi 20 Jeg bruker tilpasset hylster objektet til get-og set dropdown verdien. Jeg har en blogginnlegg detaljering prosessen her:

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

    Ha det,

    Michael

    Svar
  4. David

    Du kan opprette en innholdstype for fakturahodet basert på mappen innhold og deretter opprette en faktura innholdstype og legge til både til en SharePoint-liste. Dette i praksis oppretter en overordnet/underordnet forhold som vil tillate deg å lage flere fakturaer basert på fakturaen innholdstypen som lever under faktura Header innholdstypen som gir deg og umiddelbar forholdet mellom de to elementene og hvis fakturahodet listeelement er slettet alle barn faktura elementene i mappen slettes. Du kan også angi at en innholdstype bare være tilgjengelig i en bestemt mappe. Denne tilnærmingen er lik hvordan diskusjon biblioteket fungerer og er svært nyttig for relasjon mellom elementer. Hendelsesbehandlinger og koden vil hjelpe med noen andre begrensninger men samlet en rask enkel løsning.

    Svar

Avreise en svar til Raghu skrev: Avbryt svar

e-postadressen din vil ikke offentliggjøres. Obligatoriske felt er merket *