Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315

    [delphi] dblookup in dbgrid

    Ciao a tutti,

    ho la solita tabella IBTableMovimenti in cui c'e' un filed Fornitori collegato ad una IBTableFornitori tramite una FOREIGN KEY.

    ho inserito un componente dbgrid nel quale visualizzo la tabella movimenti.

    quindi automaticamente visualizza i field della suddetta tabella:

    id_movimenti
    fornitore
    data
    numero_fattura

    ho inserito una nuova colonna al fine di visualizzare il nome del fornitore che devo recapitare nella IbTableFornitori.


    ma come devo fare per settare il nome fornitore nella colonna dbgrid?

    forse invece di collegare la IbTable nel datasource...devo inserire un componente IBDataset dove eseguo una query con il comando Join?

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Il metodo più aperto è forse il seguente:

    aggiungi un altro componente IBTable che carichi al suo interno la tabella FORNITORI.

    Nel componente IBTable che rappresenta la tabella MOVIMENTI, aggiungi un campo di tipo lookup.
    Per creare il campo, fai doppio clic sul componente per far apparire il "Field Editor"; con il tasto destro del mouse seleziona "Add Fields" oppure "Add all fields" per aggiungere tutti i campi.

    Si tratta dei "campi persistenti" che vengono creati per ciascun campo fisico presente nella tabella e consentono di personalizzare a livello di applicazione le proprietà dei campi dal punto di vista della loro rappresentazione come oggetti Delphi TFields.

    A questi campi, che hanno un corrispondente campo fisico, si possono aggiungere altri campi che sono invece calcolati oppure di lookup.

    Per definire un campo di lookup, seleziona la voce di menu "New fields" facendo clic con il tasto destro; attribuisci un nome e un tipo di dati appropriato al nuovo campo e imposta la tipologia "Lookup"; si abiliterà l'apposito pannello che ti consente di selezionare quale campo della tabella di origine confrontare con il campo di destinazione e quale campo deve essere restituito e visualizzato.

    Associando una colonna della DBGrid ad un campo di lookup, viene fornito anche il supporto diretto per l'editing di tale campo attraverso una combobox visualizzata nella cella che consente di scegliere il record della tabella secondaria da associare al campo nella tabella primaria.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    ciao a tutti,

    riesco a visualizzare i vari valori dei campi lookup.

    sto avendo questo problema:

    visualizzo nella mia dbgrid un datasetMovimeni in cui sta il field FORNITORE che referenzia un record nella tabella fornitori, e sta anke un field di lookup dove visualizzo automaticamente il nome del fornitore.

    ...a questo punto mi rendo conto di dover aggiungere un fornitore; lasciando sempre visualizzata la mia dbgrid, apro la form fornitori e procedo con la registrazione del nuovo fornitore. (sull'evento afterpost procedo con DataModule1.IBTransaction.CommitRetaining; al fine di rendere disponibile x tutti il nuovo record.)

    successivamente,

    nella dbgrid succede che viene accettato il codice fornitore, ma non visualizza il nome del fornitore.
    dal momento che viene accettato il codice fornitore e' chiaro che riesce a leggere il nuovo record fornitore inserito.

    ma nn riesco a capire xke' non mi visualizza il nome.
    x visualizzare il nome devo chiudere e riavviare il programma.

    mi sapete aiutare?
    a voi e mai successo? come avete risolto?

    grazie
    fulvio

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da 123delphi321
    mi sapete aiutare?
    a voi e mai successo? come avete risolto?
    Credo che tu debba chiudere e riaprire il DataSet che utilizzi come "sorgente" per i dati di lookup, presumibilmente la tabella dei FORNITORI.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.