Domanda

Ho bisogno di generare un'interfaccia utente per l'inserimento di un documento di vendita (ad esempio, fattura). Sto cercando di utilizzare componenti del "Developer Express" specificamente la componente QuantumGrid (TcxGrid). Ho visto le demo dei componenti master-detail e di ricerca nel centro di supporto DevExpress, ma nessuno mi ha aiutato, perché tutti utilizzano 2 griglie per gestire la relazione master-detail, e modificare più record contemporaneamente.

Ho solo bisogno di modificare un record (documento) alla volta e con una coppia di oggetti componenti dataware (es TDBEdit) nell'intestazione e una griglia per gestire al dettaglio.

qualcosa di simile

alt text

Dove posso trovare un esempio di base di utilizzo di questi componenti in questo modo?

È stato utile?

Soluzione

Proprietà Lla master / bambini in QuantumGrid sono progettati principalmente per nidificare più elementi nella griglia. Se si imposta il rapporto nei componenti di dati è sufficiente collegare i controlli fino al DataSource corretto e tutto funzionerà.

Quindi, se si dispone di due set di dati del cliente e della fattura. La fattura Maestro origine dati è il DataSource Cliente. Poi sui vostri controlli di modifica si punta il DataSource Cliente e si punta la griglia per la fattura DataSource.

Se si pensa a cosa il rapporto master / dettaglio sta facendo davvero solo filtra i risultati sulla DataSet dettaglio per abbinare il record corrente sul Master DataSet. I singoli controlli di modifica saranno sempre visualizzare il record "corrente" nel DataSet al quale sono collegati. Griglie mostrerà tutti i record visibili nel DataSet al quale sono collegati.

ho la tendenza a non utilizzare i rapporti master / dettaglio in un modulo di modifica, come si mostra qui. Sto assumendo c'è qualche modo su uno schermo diverso per scegliere la fattura da modificare. Io di solito creare una copia dei dataset necessari con solo i record necessari per questa modifica. Se io sono l'editing una fattura esistente copio i record attuali. Se si tratta di una nuova fattura che posso iniziare con un recordset vuoto. E 'più di lavoro - ho alcune funzioni di libreria generiche che si copia una struttura DataSet e quindi copiare uno o più record in quella Dataset. A seconda della configurazione è possibile anche richiedere nuovamente il database per ottenere solo i record a cui è interessato. Ovviamente questo non dovrebbe essere fatto in tutti i casi. Un altro problema con questo approccio è che è necessario un modo per aggiornare tutti gli altri set di dati si possono avere con questi dati -. Vale a dire la vostra schermata di ricerca principale

Tuttavia, una volta che ottengo nella schermata Modifica trovo rende le cose eaiser. Ora non ho bisogno di preoccuparsi per la relazione principale dettagli al livello più alto. Se la fattura ha rapporti master / dettagli interni si può trattare solo con quelli, ma si sa che i set di dati hanno solo i dati per questo una fattura -. Non tutto nel database

Nel caso di modulo se si limita i dati nel DataSet si può semplicemente collegare tutto direttamente e dovrebbe funzionare come previsto. Si avrebbe un solo record nel DataSet cliente e la fattura sarebbe solo avere il record per questa fattura.

Altri suggerimenti

Credo che avrete bisogno di prendersi cura delle relazioni master-detail in componenti ClientDataSource. La griglia viene poi seguire questa relazione.

Perché non si chiede questo a support@devexpress.com?

Il motivo per cui ho un abbonamento VCL è, a parte la qualità dei componenti, naturalmente, perché hanno un grande sito di supporto e il personale?

Ci si chiede direttamente alle persone che hanno scritto la roba, e sono probabilmente felici di fornirvi un programma di esempio (almeno ho ricevuto un sacco di campioni nel corso degli anni).

La premessa è la stessa come con qualsiasi altro rapporto master-detail, a prescindere dalle componenti. Sarà necessario impostare il master-detail a livello dataset per compiere ciò che si desidera.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top