Creazione di un programma per gestione fatture e articoli

mercoledì 25 giugno 2008 - 13.16

86Marco Profilo | Expert

Salve,
ho creato un applicativo abbastanza potente con microsoft Access ma vorrei lo crearlo in Visual Biasic 2008 Express Edition.
il mio problema + grande è quello di riprodurre la procedura di emissione di una fattura.

Di seguito vi mostro l'immagine di come il form dovrebbe essere impostato.

807x508 44Kb


Ora la mia applicazione ha 3 tabelle:
1) Clienti (Per gestire l'anagrafica dei clienti)
2) Fatutre/Commissione (per gestire il numero di fattura e la data di fattura)
3) DettagliFattura (per gestire i vari record degli articoli della tabella fattura)

Tramite un pulsante logicamente dovrei archiviare la fattura.
Il mio problema è come poterlo fare in linguaggio sql in quanto non si tratta (credo) solo di una insert in una sola tabella, ma dovro inserire i dati relativi al cliente nella tb clienti, il dato della fattura e la data della stessa nell tb fatture e nella tabella dettaglifattura le righe che materialmente compongono il corpo della fattura.

Qualcuno sarebbe cosi gentile da aiutarmi il + possibile?
Grazie mille.

Anonimo Profilo | Senior Member

Allora il modo più professionale indubbiamente è quello di usare una stored procedure su sql server nella quale si aggiornano in sequenza le tabelle che si vuole. Con VB basterà solo richiamare una stored e lanciarla con i parametri richiesti e il gioco è fatto.

Per maggiori informazioni sulle stored procedure in sql server 2005:
http://msdn.microsoft.com/it-it/library/6z6w48f5(VS.80).aspx



Team Icon - Software Engineering
------------------------------
Unicredit Global Information Services Spa
Chief Solution Architect

86Marco Profilo | Expert

Si ma dico io la stored procedure deve solo inserire i dati all'interno di quale tabella????

Anonimo Profilo | Senior Member

Beh sono due insert perchè si suppone che il cliente tu l'abbia già memorizzato prima.

Allora la prima insert è nella tabella della fattura dove inserisci la data, il cliente e l'id della fattura.

Ti tieni in memoria l'id della fattura e lo usi per fare tante insert nella tabella dettaglio fattura tanti quanti sono gli articoli inseriti.

Quindi:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

e poi per ogni prodotto

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Spero di esserti stato d'aiuto, ricordati solo che la seconda insert deve essere messa dentro un ciclo, vedi tu se un while, un for o un foreach.
Team Icon - Software Engineering
------------------------------
Unicredit Global Information Services Spa
Chief Solution Architect

mr.bds Profilo | Newbie

Come nel Visual Basic 6 anche il VB.net è provvisto di un Dataenv., dove potrai creare una Query più o meno complessa inserendo , le varie tabelle ,
interessate.


377x291 18Kb


Da li puoi gestire le tabelle del tuo DataBase , dopo averlo caricato.
In SQL Server è possibile creare query distribuite ed eterogenee, ovvero query da tabelle e oggetti strutturati a tabella esterni al server verso il quale è stata creata una connessione dei dati. SQL Server consente di accedere a qualsiasi origine dati che supporta OLE DB. È possibile utilizzare tabelle e oggetti strutturati a tabella di tali origini dati esterne come se fossero tabelle disponibili sul server di base, a condizione di disporre delle corrette autorizzazioni per l'accesso all'origine dati esterna.

Microsoft SQL Server consente di accedere a origini dati esterne in due modi. Il primo modo consiste nell'utilizzare un server collegato, che viene definito nel database di SQL Server in modo che punti all'origine dati esterna. Un server collegato rende accessibile l'origine dati utilizzando una convenzione di denominazione simile a quella degli oggetti dati nativi di SQL Server. Il secondo modo consiste nell'utilizzare un riferimento dinamico all'origine dati esterna con la funzione OpenRowset( ), che consente di connettersi nella query a qualsiasi origine dati accessibile, anche se per essa non è definito alcun server di collegamento.

Le tabelle e gli oggetti strutturati a tabella di server esterni non vengono inseriti nell'elenco delle tabelle. Per utilizzarli, si usa la sintassi nel riquadro SQL di Progettazione query per fare riferimento al server collegato o per includere la funzione OpenRowset( ). Tuttavia, quando si fa riferimento a un'origine dati esterna nel riquadro SQL, Progettazione query aggiungerà un rettangolo che rappresenta la tabella o l'oggetto strutturato a tabella nel riquadro Diagramma per rappresentare l'origine dati esterna.

Per fare riferimento a un'origine dati esterna utilizzando un server collegato

Nel riquadro SQL utilizzare la seguente sintassi per fare riferimento alla tabella:
linkserver.catalog.schema.object
Dove:

linkserver rappresenta il nome dell'origine dati locale di Microsoft SQL Server assegnato al server collegato in OLE DB.
catalog rappresenta il nome del database che contiene l'oggetto.
schema rappresenta il proprietario dell'oggetto.
object rappresenta la tabella o la vista nel database.
Nota È necessario definire l'origine dati di SQL Server (la parte linkserver del nome) prima di utilizzare questo nome nella query. Le origini dati specificate non verranno visualizzate in Esplora server. Verranno utilizzate soltanto nel contesto della query.
Quello che segue è un esempio di istruzione SQL che unisce i dati di tabelle del database locale con una tabella su un server denominato "hrserver":

SELECT e.id, e.lname, h.hiredate
FROM employee AS e INNER JOIN hrserver.hr.dbo.hiredata AS H
ON e.emp_id = h.emp_id
Per fare riferimento in modo dinamico a un'origine dati esterna

Nel riquadro SQL utilizzare la funzione OpenRowset( ) al posto del riferimento alla tabella, con la seguente sintassi:
OpenRowset(provider,connectString,object)
Dove:

provider rappresenta il nome descrittivo del provider OLE DB.
connectString rappresenta una stringa che include le informazioni per connettere l'origine dati esterna. Questo parametro è facoltativo se è già stata stabilita una connessione ODBC tra il server locale e l'origine dati esterna. Il parametro connectString può assumere le seguenti forme:
datasource;user id;password, che contiene specifici attributi della connessione.

- oppure -

provider string, che è un'unica stringa di attributi predefiniti con valori per la creazione della connessione, analoga alla stringa utilizzata in un file DSN.

object rappresenta il nome di un oggetto di database. È possibile fare riferimento a una tabella, una vista o un altro oggetto di database mediante la convenzione di denominazione standard riconosciuta dall'origine dati esterna.
Suggerimento L'origine dati a cui fa riferimento OpenRowset( ) è più facile da utilizzare se a essa viene assegnato un alias di tabella.

E valida questo piccolo sunto , se il tuo Visual Studio incorpora l'interpris... , perchè solo in esso è contenuto l'envirop... , che ti permette di creare una query valida . in caso contrario una strada seplice è che , se stai utilizando una fonte dati Acess , puoi creare la query da li , e poi caricarla in visual studio x , tramite sql server editando lo script , come già sai.

Ciao
MR. BDS

un esempio :


891x499 82Kb

mr.bds Profilo | Newbie

n
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5