Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315

    [delphi] campo dblookup

    ciao a tutti,

    non so che tecnica utilizzare per compilare una sceda movimenti con il codice di una tabella Lookup

    ho le due tabelle fornitori e movimenti:
    codice:
    CREATE TABLE FORNITORI(
        CODICE             INTEGER  NOT NULL UNIQUE,
        NOME               VARCHAR(30));
    
    CREATE TABLE MOVIMENTI (
        ID_MOVIMENTI       INTEGER  NOT NULL UNIQUE,
        FORNITORE          VARCHAR(5)   REFERENCES FORNITORI (codice),
        NUMERO_FATTURA     INTEGER,
        DATA               DATE)

    sulle proprieta del campo FORNITORE del ibdataset ho dichiarato il campo fdlookup.
    Poi ho inserito in una form il dei campi dbedit collegati alla ibtabella.

    mi potete spiegare come devo fare per far si che il dbeditFornitore sia equivalente ad un elemento della tabella fornitori?
    mi spiego meglio:
    devo utilizzare dei dblookupcombo o mi conviene lasciare il campo libero da editare e poi verificare l'esistenza del suo contenuto nella tabella fornitori?

    non so come e meglio fare.

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,310
    Devi creare una chiave primaria sulla tabella FORNITORI e utilizzare un campo nella tabella MOVIMENTI che faccia riferimento a tale campo (cioè che contenga il valore della chiave primaria del record correlato nella tabella secondaria).

    Non ho mai fatto uso di REFERENCES. Generalmente, creo delle FOREIGN KEY per correlare i campi di tabelle primarie e secondarie.

    A livello di applicazione, la DBLookupComboBox ti permette di elencare i contenuti di un campo da una tabella primaria (ad esempio, una ragione sociale) e associare il valore della chiave primaria al campo correlato nella tabella secondaria.

    Non ho ben capito comunque quale sia il tuo effettivo problema, cioè cosa vuoi ottenere di preciso a livello di funzionalità.
    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
    Non ho ben capito comunque quale sia il tuo effettivo problema, cioè cosa vuoi ottenere di preciso a livello di funzionalità.
    vorrei ottenere..... che sopra un form ci sia in campo dbedit e in esso 'costringere' l'utente a digitare un codice esistente della tabella fornitori...e poi di fianco fare uscire una label contenente il nome del fornitore.


    grazie

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,310
    Originariamente inviato da 123delphi321
    vorrei ottenere..... che sopra un form ci sia in campo dbedit e in esso 'costringere' l'utente a digitare un codice esistente della tabella fornitori...e poi di fianco fare uscire una label contenente il nome del fornitore.
    Perchè costringere l'utente a digitare un codice?

    Generalmente, faccio in modo che i miei utenti digitino il meno possibile; una selezione di questo tipo, ad esempio, la farei utilizzando un pulsante che richiama una form in grado di visualizzare i fornitori disponibili, magari permettendo di ordinarli in vari modi e di filtrarli visualizzandoli in un controllo DBGrid. Il valore della chiave primaria del record selezionato viene restituito poi quando l'utente chiude la form premendo il pulsante di conferma.

    In alcune applicazioni gestionali che ho prodotto, questo approccio veniva "standardizzato" (anche se il termine non è del tutto appropriato) creando un frame di base in grado di visualizzare una griglia (da associare ad una tabella dati) con incorporati meccanismi di ordinamento e selezione. Questi meccanismi o funzionalità sono implementati da metodi virtuali che vengono poi "scavalcati" nelle classi discendenti del frame per poter specificare l'origine dei dati ed applicare in modo ordinato e uniforme il codice di ordinamento e filtro, senza ripeterlo in ogni ambito di utilizzo.

    L'uso dei frame, uno degli strumenti più interessanti di Delphi a mio avviso, è di grande aiuto in questo frangente: permette di creare interfacce utente, complete o parziali, che è possibile ereditare per renderle maggiormente specifiche scrivendo una volta sola e condividendo con tutti i discendenti le caratteristiche di base.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    sto cercando un po con google per trovare una spiegazione a come utilizzare i frame,...ma almeno per adesso non ho trovato nulla che mi spiegasse semplicemente come adoperarli.

    ho capito che sono come i form,....ma non so come visualizzare il loro contenuto o altro.


    mi sai dire dove posso trovare quale semplice esempio che mi spieghi il ifunzionamento?

    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    ho trovata una spiegazione che mi ha aiutato....

    se a qualc'uno interessa questo e' l'indirizzo:

    http://www.raize.com/DevTools/Delphi...cles/DbD58.htm

    ciao a tutti

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,310
    Avevo in mente una spiegazione pratica, ma mi hai preceduto.

    Ad ogni modo, in generale fai bene a documentarti autonomamente, magari con esempi pratici.

    Poi, quando ti sei chiarito le idee, magari scrivi sul forum per ricevere dritte o chiarimenti in merito ad un particolare aspetto dei frame.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    ciao

    ho creato un frame (frameCerca) nel quale ho messo una dbgrid.


    precedentemente la stessa dbgrid la avevo direttamente su di un form che facevo chiudere nel momento in cui selezionavo un elemento dalla dbgrid.
    codice:
    procedure TFormCerca.DBGrid1DblClick(Sender: TObject);
    begin
       Codice2 :=  DBGrid1.Fields[0].AsString ;
       Close;
    end;
    adesso, come si fa per chiudere il Form contenente il frame?

    grazie

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,310
    Se vuoi chiudere qualsiasi form che ospiti il frame puoi fare così:
    codice:
      if Parent is TForm then
        TForm(Parent).Close;
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    Per cortesia potresti chiarirmi un attimo le idee….

    devo utilizzare un campo lookup in una tabella.

    Ho il mio Ibdatabase con 2 tabelle:
    codice:
    CREATE TABLE FORNITORI (
        CODICE    VARCHAR(5) NOT NULL,
        NOME      VARCHAR(40));
    
    CREATE TABLE MOVIMENTI (
        ID_MOVIMENTI    INTEGER NOT NULL,
        FORNITORE       VARCHAR(5),
        NUMERO_FATTURA  INTEGER); 
    
    Foreign Keys
    ALTER TABLE MOVIMENTI ADD FOREIGN KEY (FORNITORE) REFERENCES FORNITORI (CODICE);
    al fine di una buona progettazione del database, devo costruire la tabella MOVIMENTI in qualche maniera particolare….intendo con opzioni che gestiranno il campo lookup (FORNITORE)?

    Mi spiego:
    nella tabella movimenti il codice fornitore deve essere un campo sia obbligatorio che esistente nella tabella fornitori e inoltre l’esistenza di un record con fornitore X dovra impedire la cancellazione dello stesso fornitore X dalla tabella fornitori.


    Nella form di input/modifica dati utilizzo Ibdataset... devo dichiarare il campo fornitori in una maniera particolare?
    (ho creato la Foreign key che fa riferimento al codice della tabella fornitori)

    Che controlli devo inserire in un programma delphi al fine di ottenere queste funzionalita?
    Voi che tecnica utilizzate?

    Grazie
    fulvio

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.