Newsgroup: it.comp.lang.visual-basic
Titolo: Problemi DataGrid

Ho riempito una dataGrid con una serie di informazioni prese da un file sql
linkati con il metodo dbgrid1.datasource che si connette ad un adodc gestito
da codice.
Ho la necessità di aggiungere una colonna calcolabile (è il risultato di una
differenza tre due colonne della grid riempita).
Quando provo a riempire la nuova colonna della grid con un ciclo, prendendo
i valori delle due colonne oggetto dell'operazione, e cerco di immettere il
valore risultato nella colonna vuota, mi dice che non la trova.
L'errore deriva dal fatto che devo per forza linkare la colonna vuota ad un
campo del file sql?
Non posso usare una flexgrid perchè ho bisogno, una volta riempita la grid
di fare una selezione multipla dei record (quella con CTRL) che flexggrid
non mi permette.
Ho provato ad aggiungere una nuova grid (anche flex) di una sola colonna con
il risultato, ma poi non posso fare lo scrolling insieme.
Come potrei risolvere il problema?
es. dataGrid di partenza
colonna1 colonna2 colonna3
10  5
20  10
ecc.  ec..
Grid di arrivo dopo il ciclo
colonna1 colonna2 colonna3
10  5  5
20  10  10
ecc.  ecc.  ecc.

 differenza tre due colonne della grid riempita).
(snip)
Approccio alternativo: generare la differenza direttamente dall'istruzione
sql con la quale raccogli il recordset.
Una cosa tipo:
select *, [campo3]-[campo4] as differenza from tabella
ti ritrovi la differenza già bella e che fatta nella tua grid
Salutoni, spero di non aver scritto una pirlata...
Sergio

grazie,
Ho provato a fare quello che mi hai detto, ma non funziona, probabilmente
sono io la merda,
questa è la mia select
Takingsql.ConnectionString = "dsn=taking;uid=sa;pwd=;"
Takingsql.RecordSource = "select * from articoli inner join oclrighe on
articoli.articolo = oclrighe.articolo,cfanagra,oclsped,ocltesta,cfsedi where
oclrighe.idordcli = " & _
"oclsped.idordcli and oclsped.idordcli = ocltesta.idordcli and " & _
 "cfanagra.clifor = oclrighe.cliente and cfanagra.clifor = cfsedi.clifor and
" & _
"cfanagra.tipoclifor = 3211264 and " & _
"oclrighe.giaconsegn = 0 and oclrighe.rigaann = 0 and " & _
"(oclrighe.tiporiga = 3538947 or oclrighe.tiporiga = 3538946) and " & _
"((oclrighe.articolo >= '" & Form2.Text6 & "') and (oclrighe.articolo <= '"
& Form2.Text5 & "')) and " & _
"((oclrighe.cliente >= '" & Form2.Text4 & "') and (oclrighe.cliente <= '" &
Form2.Text3 & "')) "
Dove devo inserire quello che mi hai detto?
io l'ho messo con una virgola dopo l'asterisco ("select *,
(oclrighe.quantita - oclrighe.qtagiacons as pezzi) from ecc. ecc.) ma dà
errore sul primo campo come non riconosciuto
grazie anticipatamente

Altra soluzione e che ti crei un recorset disconnesso.

 errore sul primo campo come non riconosciuto
prova con
("select *, (oclrighe.quantita - oclrighe.qtagiacons) as pezzi from ecc.
ecc.
direi di spostare la parentesi insomma.
Più di così non so, il comando SQL di origine è parecchio complicato
(secondo me verrebbe meglio con una serie di join, ma in effetti utilizzo
sempre il metodo "albe v°" per costruire le query complicate, e così a mano
sono un po' anchilosato...
Salutoni
Sergio

 errore sul primo campo come non riconosciuto
Vero. Come ti ha già suggerito Sergio, semmai:
select *, (oclrighe.quantita - oclrighe.qtagiacons) as pezzi from ...

 ha scritto nel messaggio
news:_KNA9.28765$8E3.8...@twister2.libero.it...
