Results 1 to 11 of 11

Thread: DataSetPageProducer - select veld

  1. #1
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415

    DataSetPageProducer - select veld

    Ik ben bezig met een webapplicatie waarin ik een web formulier heb waarmee de gebruiker een nieuwe record aan de database kan toevoegen. Deze web formulier bestaat uit een paar tekst invoervelden, een memo veld en een select veld(Html ComboBox). Dit select veld vul ik vanuit de database met de keuze mogelijkheden. Tot zo veer alles prima.
    Maar nu wil ook de gebruiker de mogelijkheid geven om een bestaande record te muteren. I gebruik hiervoor een DataSetPageProducer. In de web formulier set ik dan de value gelijk aan de een TagString met de naam van de veld uit de database bv. "value=<#VOORNAAM>".
    Dit werkt prima voor de Tekst en memo velden, maar hoe krijg ik de select veld ingesteld op de waarde uit de database?
    Ik kan mij iets bij voorstellen dat je het select veld weer vult en dan en hetzelfde doet in een TStrinList, dan met een CompareString de Item index uithalen, en dan met dit ItemIndex de Item in het select veld laten selecteren?
    Dit leek mij een hele lange weg, en dacht ik dit kan vast slimmer opgelost worden. Maar hoe?
    Anders

    May your code compile!

  2. #2
    Het is niet erg veel slimmer te maken. Ik gebruik meestal een tag in de vorm <#Select FieldName=SomeID ListData=SomeDataSet>. De parameters lees ik vervolgens in de dispatcher uit en maak aan de hand hiervan de select aan. Met FieldName weet ik waar ik naar moet kijken om te controleren welke er selected is, met ListData weet ik wat er te selecteren valt. Het aantal parameters kun je in principe oneindig uitbreiden.
    Marcel

  3. #3
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Bedankt Marcel

    Ik begrijp hem niet helmaal hoe je dat bedoeld met : "FieldName=SomeID " en hoe ik daarmee de geselecteerde kan zetten?
    Anders

    May your code compile!

  4. #4
    Je loopt SomeDataSet af om de items in de combo te zetten. Als de inhoud van het veld FieldName in SomeDataSet gelijk is aan de inhoud van het veld FieldName in de dataset die je aan het wijzigen bent weet je dat je Selected moet toevoegen.
    Marcel

  5. #5
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Bedankt - Zoveer ik hier even tussen door kan zien begrijp ik hem nu. Zal het van de weekend verder uitzoeken.
    Anders

    May your code compile!

  6. #6
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Ik begrijp toch niet helemaal hoe ik de transperante parameters in dit geval kan gebruiken. Maar ik heb het zo opgeloost:
    Code:
    procedure TWebModule1.dsppTipWijzigenHTMLTag(Sender: TObject; Tag: TTag;
      const TagString: String; TagParams: TStrings; var ReplaceText: String);
    var
      TmpSoortID: integer;
    begin
      TmpSoortID := IBTipsToon.FieldByName('SOORTID').AsInteger;
      if TagString = 'soort' then begin
        IBQSoort.Open;
        IBQSoort.First;
        While not IBQSoort.Eof do begin
          if IBQSoort.FieldByName('SOORTID').AsInteger = TmpSoortID then
            ReplaceText := ReplaceText + '<option selected>'+
                         IBQSoort.FieldByName('SOORTID').asString +
                         ' - ' + IBQSoort.FieldByName('SOORT').asString +
                         '</option>' + #13
          else
            ReplaceText := ReplaceText + '<option>'+
                         IBQSoort.FieldByName('SOORTID').asString +
                         ' - ' + IBQSoort.FieldByName('SOORT').asString +
                         '</option>' + #13;
          IBQSoort.Next;
        end; // While
        IBQSoort.Close;
      end; //if
    end;
    Is dit de beste manier of is er een betere / makelijker?
    Anders

    May your code compile!

  7. #7
    Het enige verschil is dat je de veldnaam niet meer vanuit de HTML stuurt, maar dit is zeker ook een goede oplossing.
    Marcel

  8. #8
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Sorry Marcel. Maar ik zie nog niet hoe ik een paramaeter in det gval had kunnen gebruiken. Ik heb de artikel van Matlus gelezen er over dat begrijp ik redelijk, maar kan het even niet op deit voorbeeld toepassen. Is het misschien mogelijk dat je een klein, pieo klein voorbeeldje kan maken?
    Anders

    May your code compile!

  9. #9
    Hmm, misschien snap ik dan niet wat jij niet snapt.

    Je gebruik in je code nu een aantal maal 'SOORTID' als veldnaam. Als je mijn syntax voor de tag had gebruikt (FieldName=SoortID) was deze parameter meegekomen in de TagParams parameter van je event. Die had je dan vervolgens op kunnen vragen met TagParams.Values['FieldName'].

    Op dezelfde manier zou je ook je IBQSoort als parameter door kunnen geven. Met een FindComponent op je DataModule zou je die dan weer terug kunnen vinden.

    Je hebt nu zowel SoortID als IBQSoort variabel gemaakt, zou je dat dan ook nog voor IBTipsToon doen dan kun je je code voor elke select gebruiken en hoef je hem niet steeds te kopiëren.

    Ben ik nu duidelijker? Zo niet, gewoon weer roepen dan werk ik een voorbeeldje uit.
    Marcel

  10. #10
    Senior Member Anders's Avatar
    Join Date
    Dec 2001
    Location
    Doetinchem
    Posts
    1,415
    Helemaal duidelijk. Nu snap ik gewoon niet waarom ik het niet snapte - snap je

    Nee zonder gein. Ik zie het nu dat je hiermee dezelfde code kan gebruiken voor verschillende ComboBoxen / select velden. Waarschijnlijk zag ik het niet omdat ik hier maar één select veld heb.

    Nogmaals bedankt
    Anders

    May your code compile!

  11. #11
    Hmm, mijn code is altijd gebaseerd op hergebruik Bovendien ben ik momenteel voor een project een framework aan het schrijven, dan heb je die denkwijze al snel...
    Marcel

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 4
    Last Post: 04-Nov-04, 01:18
  2. hoe vind ik een datum in een memo veld
    By arnold in forum Algemeen
    Replies: 4
    Last Post: 11-Sep-04, 18:19
  3. Inhoud Blob veld wijzigen/verwijderen
    By Maiko in forum Algemeen
    Replies: 2
    Last Post: 04-Sep-01, 14:34

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •