Newsgroup: it.comp.lang.delphi
Titolo: DbCtrlGrid

Sto realizzando un gestionale per creazione fatture/ordini.
Nella finestra di inserimento ordini ho un pulsante che mi apre la
finestra in cui sono elencati tutti gli articoli.
Oltre ai dati articoli avevo bisogno di avere per ogni record un campo
di inserimento per la quantità e un campo di inserimento per lo
sconto. Sto provando ad usare una DbCtrlGrid con due DbEdit.
Una volta premuto il pulsante IMPORT devo portare tuti gli articoli la
cui quantità è > 0 nella mia fattura/ordine.
Non so come poter realizzare questa cosa utilizzando i componenti ADO.
Sapete darmi una mano ?
Grazie
ciao

 Sapete darmi una mano ?
Non ho capito il legame tra il controllo *TDBCtrlGrid*, da un lato, e la 
procedura di importazione tramite ADO.
Qual � il problema principale?
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 Qual � il problema principale?
Non ho mai usato ul DBCtrlGrid ma solo le Grid e DBGrid, detto cio', credo 
( siamo nel campo delle ipotesi) che voglia far vedere due edit in due 
colonne aggiuntive uno per lo sconto e l'altro per la quantita' acquistata 
per ogni riga !!.
Non so che Db sta usando, ma oggi quasi tutti i databse che offrono un 
listino hanno diversi campi tra i quali prezzo attuale, prezzo precedente1, 
prezzo precedente2, prezzo precedente 3, data di cambio prezzo 1,2,3, ed 
infine gli articoli che si intendono acquistare con lo sconto.
Nel caso in cui il db non abbia quei campi, credo non sia impossibile 
aggiungere al volo 2 colonne alla griglia e poi usare quelle per i valori.
Ciao, Daniele 
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4552 (20091028) __________
The message was checked by ESET NOD32 Antivirus.
http://www.eset.com

Utilizzo dei componenti  ADO per la connessione ad un DB Access.
Nella tabella articoli ho solo il prezzo attuale, descrizione e codice
articolo.
Voglio far vedere due edit in due colonne aggiuntive per ogni articolo
nella dbctrlgrid, uno per lo sconto e l'altro per la quantita'
acquistata come dice daniele !!.
Alla dbctrlgrid ho aggiunto due dbedit.

 infine gli articoli che si intendono acquistare con lo sconto.
Un database non offre una struttura preimpostata: ï¿œ fatto apposta per 
far sï¿œ che lo sviluppatore possa scegliere come realizzarla in base alle 
proprie esigenze. :)
Ciao,
   Marco.


 nella dbctrlgrid, uno per lo sconto e l'altro per la quantita'
Quelle colonne aggiuntive da qualche parte dovranno salvare il valore.
Devi creare una tabella che contenga queste informazioni, e precisamente 
i riferimenti all'articolo di cui si sta parlando (cio� l'identificativo 
dell'articolo che consente di collegare il record nella tabella 
"Articoli" e risalire alle altre informazioni) e le colonne per 
memorizzare i dati in pi�, cio� "quantit�" e "sconto".
Il controllo *TDBCtrlGrid* verr� quindi associato a quest'ultima tabella.
Ciao,
   Marco.


 Ciao, Daniele 
E se ti serve Prezzo precedente4 ???
un DB strutturato nel modo in cui sopra non ï¿œ per niente flessibile, di 
solito si usano relazioni Master/Detail per costruire queste realtï¿œ.
^_Goblin_^

   (
http://www.marco.breveglieri.name
)
Allora le tabelle di cui dispongo sono
ORDINE --> ho i dati generali dell'ordine
ARTICOLIORDINE --> ho i dati dei singoli articoli inseriti nell'ordine
con QUANTITA e SCONTO + riferimento all'id ordine
ARTICOLI --> ho tutti gli articoli a listino
Quello che devo realizzare :
1) sono in fase inserimento ordine (finestra A)
2) voglio assocaire delgi articoli all'ordine --> apro la finestra B
con elenco articoli
3) la finestra B mostra i dati degli articoli in una dbctrlgrid + due
campi di edit (TDbEdit) per quantità e sconto
articolo1 qta sconto
articolo2 qta sconto
articolo3 qta sconto
.......
In più ha un bottone di import
4) inserisco ad es quantita e sconto per l'articolo 2, quando clicco
sul bottone import devo tornare nella finestra A dove avrò i dettagli
ordine + elenco articoli scelti
Al punto 4 devo quindi fare un passaggio di dati dalla tabella
ARTICOLI alla tabella ARTICOLIORDINE.
Quindi dovrei ciclare su tutti gli articoli nella dbctrlgrid e
prendere solo quelli per cui la quantità è > 0.
Spero di essere stato un po piu chiaro

 Spero di essere stato un po piu chiaro
S� e no, nel senso che risulta impossibile avere un quadro completo 
dello stato della tua applicazione, che secondo me sta complicando un 
passaggio che, in realt�, � molto pi� semplice, sia dal lato database 
che dal lato applicazione Delphi.
Suggerisco anche un adeguata documentazione sugli argomenti di cui sopra. :)


Sono riuscito in parte a fare quello che volevo.
Per facilitare il tutto ho aggiunto i campi QTA E SCONTO alla tabella
ARTICOLI (li vado a ripulire a fine import) : i due dbedit li ho
associati dunque a questi campi.
La dbCtrlGrid è associata alla tabella ARTICOLI e quando clicco su
importa eseguo il seguente codice
if DMAzi.QArticoli.Active then
    DMAzi.QArticoli.close;
  DMAzi.QArticoli.sql.clear;
  DMAzi.QArticoli.sql.add('Select * From ARTICOLI where quantità >
0');
  DMAzi.QArticoli.open;
  DMAzi.QArticoli.first;
  while not DMAzi.QArticoli.Eof do
    begin
       //inserimento record nella tabella ARTICOLIORDINE
    end;
Il problema è che la select non funziona a dovere cioè se ho
articoli1  10 0
articolo2 2 0
articolo3 0 0
dove il secondo campo è la quantità e il terzo lo sconto, la select mi
restituisce un record invece di due.
Non capisco perchè .....

 ARTICOLI (li vado a ripulire a fine import) [...]
Io ci rinuncio ad aiutarti perch� penso sia una perdita di tempo 
risponderti fornendoti suggerimenti per quella che ipotizzo sia la 
scelta migliore - chiaramente a livello personale, e discutibilissima, 
ci mancherebbe - quando poi ad ogni replica tu vai unicamente per la tua 
strada.


 ARTICOLI (li vado a ripulire a fine import)
CAZZATA IMMANE.
A.

 solito si usano relazioni Master/Detail per costruire queste realt�.
Quelli non l'hanno usato ....
Ripeto, era solo un esempio.
Ciao e alla prossima
Daniele 
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4556 (20091029) __________
