Gestione della Produzione con Gea.Net

La gestione della produzione che affrontiamo di seguito ci serve per seguire ogni fase del processo produttivo ed è comunque funzionante anche se è possibile adottare la gestione del piano di produzione esposto in seguito che risulta essere operativamente più funzionale. Anche se si adotta la gestione del processo produttivo utilizzando la funzione di gestione del piano di produzione alcune fasi del processo sono comuni. In ogni caso anche la fase del processo classico è molto interessante a livello didattico perché definisce punto per punto le varie fasi del processo.

La gestione della produzione fatta in questo modo tende ad assolvere compiti di produzione prettamente manuale e può essere utilizzata anche con il metodo di gestione commesse mentre per alcune fasi può essere sostituita dalla gestione del piano di produzione pensato ad hoc per velocizzare l’operatività di inserimento e pianificazione dei vari reparti.

Vediamo di seguito le varie fasi del ciclo produttivo dall’offerta fino all’evasione. Alcune fasi sono opzionali e pertanto potrebbe essere saltate.

E1.1 – Offerta Cliente (Opzionale)

Il ciclo solitamente parte con una offerta presentata al cliente. Qualora non fossero gestite le offerte è possibile fare iniziare il processo dal punto successivo.

Ricordiamo che il modulo degli ordini in realtà gestisce tutti i documenti non fiscali tra cui anche le offerte e le schede di lavorazione.

Da Ordini à Ordini

Inserirne un nuovo documento con il pulsante clip_image002

Inserire il tipo documento (Preventivo)

clip_image004

quindi inserire tutti i dati dell’ordine. Al termine stampare ed inviare l’offerta.

E1.2 – Ordine Cliente

Nel momento in cui il cliente accetta l’offerta dovremo inserire l’ordine con il quale ci si impegna reciprocamente a fare iniziare il processo produttivo vero e proprio.

Per acquisire automaticamente gli articoli già inseriti nell’offerta ci sono due modi a seconda che si voglia o meno conservare l’offerta originale che il più delle volte risulta essere uguale all’ordine stesso.

Se non si vuole conservare l’offerta si può semplicemente modificare il Tipo Documento trasformandolo da Preventivo ad Ordine Cliente.

Se invece si desidera mantenere anche il documento di offerta possiamo eseguire una duplicazione con sostituzione del tipo documento.

clip_image005

Viene mostrata la lista dei tipi disponibili

clip_image007

selezioniamo il tipo di documento da creare (Ordine Cliente) ed accettiamo la richiesta conferma.

A questo punto abbiamo inserito due documenti (preventivo e ordine cliente) con gli stessi articoli e quantità. Possiamo intervenire sull’ordine eliminando o inserendo righe oppure modificando le quantità senza che l’offerta venga intaccata.

E1.3 – Ordine Fornitore o Scheda Lavoro (Opzionale)

La fase successiva del processo riguarda la creazione di un ordine di produzione. Per impostazione predefinita Gea.Net usa termini diversi come “ordine fornitore” o “scheda lavoro” ma in realtà stiamo parlando della stessa cosa e l’operatore potrebbe anche decidere di intervenire sulla tabella “Tipo Ordini” se preferisce modificare i termini.

La differenza tra ordine fornitore o scheda lavoro è determinata principalmente dalla sede della lavorazione (esterna o presso terzi la prima, interna la seconda). In realtà per creare l’uno o l’altro il processo è il medesimo perché entrambi saranno creati come un nuovo documento.

La creazione di un ordine fornitore o di una scheda lavoro è un obbligo per le aziende certificate ma il processo potrebbe continuare anche senza questa fase, da qui l’identificazione della fase come opzionale. E’ bene dire che anche se non si ha l’obbligo sarebbe buona norma creare una scheda lavorazione da consegnare agli addetti alla produzione anziché fare girare foglietti o dare comunicazioni verbali.

Da Ordini à Ordini

Inserirne un nuovo documento con il pulsante clip_image008

Inserire il tipo documento (Ordine Fornitore o Scheda Lavoro).

Se la gestione del processo produttivo non è frammentato tra tante sedi o centri di costo differenti, per cui si rende necessario creare tanti ordini diversi, l’operazione più veloce potrebbe essere la funzione di “duplica documenti con cambio tipo” come abbiamo fatto per creare un’offerta da un preventivo.

In questo caso l’ordine cliente potrebbe essere il documento originale e l’ordine fornitore o la scheda lavoro sarebbe il documento obiettivo. Naturalmente una volta duplicato si può intervenire liberamente per modificare righe e quantità.

Se si usa il piano di produzione, l’ordine a fornitore potrebbe essere generato nella funzione “Stato d’Avanzamento Piano di Produzione”.

Stampa della scheda di lavorazione.

Sia che si tratti di un ordine a fornitore sia che si tratti di scheda lavoro possiamo stampare il documento cartaceo vero e proprio da consegnare agli addetti alla produzione. La stampa potrebbe essere fatta nel modo classico come si fa per ogni entità dalla voce “Stampa” presente sulla barra comandi. Ma esiste una stampa creata appositamente per riportare solo le informazioni che servono alla produzione e con caratteri più grandi

clip_image009

clip_image011

Sulla stampa di esempio non sono riportati i centri di costo o l’articolo di derivazione perché non assegnati nel ciclo dell’articolo. Se fossero inseriti i centri di costo gli addetti avrebbero una maggiore informazione relativa a quali operazioni sono di loro competenza e a quale reparto deve essere inoltrato il pezzo nel momento in cui è terminato.

E1.4 – Invio merce al terzista (Opzionale)

Anche questa fase è opzionale perché se la lavorazione avviene internamente il più delle volte non occorre creare alcun documento.

Se la merce deve essere inviata ad un terzista occorre ragionare sulla modalità di consegna dei componenti.

Se il terzista deve creare un assemblaggio di componenti per la creazione di un prodotto, alle volte i componenti, solitamente di minor valore, possono essere consegnati in tempi diversi affinché il lavorante ne possieda una scorta sufficiente per eseguire le attività richieste. Per questi componenti non occorre fare nulla in quanto ci si aspetta che siano già presenti o che qualora non fossero sufficienti dovremmo essere avvertiti per tempo.

I componenti di maggior valore (ma alcune aziende operano cosi per tutti i componenti) saranno consegnati solo nel momento in cui il terzista deve eseguire la lavorazione.

Se il terzista esegue la fase di un ciclo deve essere consegnato il prodotto nella fase del ciclo precedente alla lavorazione che questi deve eseguire.

Da DDT e Assistenza à Documenti di Trasporto

Inserirne un nuovo documento con il pulsante clip_image012

Per consegnare la merce occorre creare un documento di trasporto in conto lavorazione (CL) o con una causale che abbia una configurazione in tabella tale per cui ogni articolo sia scaricato dal magazzino di origine e caricato nel magazzino di destinazione.

La consegna di pochi articoli non crea grosse problematiche mentre se si è soliti fare eseguire assemblaggi esterni e consegnare tutti i componenti in un’unica soluzione (e magari i componenti sono diverse decime) potrebbe venire in aiuto la funzione “Esplodi Componenti Distinta base di livello 1”

clip_image013

Occorre indicare l’articolo da assemblare o posizionarsi sulla riga con tale articolo ed eseguire il comando. Questa funzione potrebbe essere ripetuta per tutti le righe che hanno distinta base e in questo modo potrebbe essere riportati facilmente i componenti di qualunque livello.

Se si usa il piano di produzione, il documento di trasporto a terzista potrebbe essere generato più semplicemente nella funzione “Stato d’Avanzamento Piano di Produzione”.

E1.5 – Produzione

Le funzioni di produzione sono due. La prima gestisce l’assemblaggio dei componenti mentre la seconda gestisce le lavorazioni. Entrambe sono state create per inserire le lavorazioni interne o esterne (presso terzisti). L’interfaccia è estremamente semplice e permette il solo inserimento di movimenti. Queste due caratteristiche permettono di poter portare questo strumento in magazzino e renderlo disponibile ad un operatore che non conosce in alcun modo la realtà del gestionale ma che semplicemente inserisce ciò che e stato prodotto.

Se indicato il numero ordine cliente, inserisce il quantitativo di pezzi prodotti come merce pronta da consegnare.

Se indicato il lotto di produzione genera la registrazione del lotto abbinando i componenti ai rispettivi lotti di acquisti.

Qualora un articolo da produrre fosse composto da distinta base e uno o più cicli di lavorazione occorre procedere nell’ordine di eventi che segue :

  • Assemblaggio del prodotto, deve sempre essere la prima operazione che corrisponde un po’ alla preparazione di una scatola contenente i vari componenti. Questa è una convezione utilizzata anche se materialmente il ciclo non avviene in questo modo. Serve al contempo per creare ordine e per essere certi che non mancheranno i componenti nelle fasi che seguiranno.
  • Prima Lavorazione.
  • Seconda Lavorazione
  • Ultima Lavorazione

Se le diverse fasi di lavorazione avvengono tutte presso il magazzino principale o tutte presso lo stesso terzista non ci sono altre accortezze da seguire ma se avviene il luoghi diversi (cioè magazzini diversi) occorre registrare ogni singolo documento di trasporto ricevuto o emesso con causale “CL” Lavorazione o altra causale che in tabella sia configurata come azione che prevede un carico e un scarico. Di conseguenza i movimenti di magazzino generato creeranno la tracciabilità e lo stato d’avanzamento della produzione.

Qualora ci fossero più fasi di lavorazione eseguite presso lo stesso magazzino può essere creata un sola lavorazione che scarica il prodotto grezzo e carica il prodotto finito.

Se si usa il piano di produzione, la produzione è certamente più semplice e veloce se eseguita dalla funzione “Stato d’Avanzamento Piano di Produzione”.


E1.5.1 – Assemblaggio

Da Produzione à Produzione, Assemblaggio

clip_image015

Salvo personalizzazioni specifiche questa schermata permette di eseguire operazioni standard :

Assemblaggio (Esplosione Distinta Base 1’ Livello)

Per i prodotti che hanno distinta base è possibile esplodere la distinta base al primo livello. Questa funzione è particolarmente utile per chi assembla o monta prodotti infatti in un’unica operazione permette di caricare il prodotto finito e di scaricare tutti i componenti.

In alternativa è possibile eseguire il

Ritorno Materiale da Terzista (Assemblaggio Distinta Base 1’ Livello)

Questa opzione è un estensione dell’assemblaggio e tende a raggruppare in una unica operazione la lavorazione eseguita dal terzista e il rientro del materiale prodotto. Deve essere eseguita una operazione per ogni articolo rientrato e opera come segue :

· Crea il movimento di assemblaggio di primo livello presso il magazzino del terzista.

· Crea il movimento di scarico del prodotto finito dal magazzino del terzista e il carico nel magazzino principale

· Se indicato il numero ordine cliente, inserisce il quantitativo di pezzi prodotti come merce pronta da consegnare.

· Se indicato il lotto di produzione genera la registrazione del lotto abbinando i componenti ai rispettivi lotti di acquisti.

Per la lavorazione dei kit assemblati in sede, dopo aver scaricato i prodotti realizzati dal terzista, si deve eseguire il comando di assemblaggio indicando il numero d’ordine del cliente..

Attenzione ! Utilizzare la funzione di “Ritorno Materiale da Terzista” se e solo se il terzista non consegna il prodotto finito con documento di trasporto, altrimenti si avrebbe un doppio scarico/carico dei prodotti finiti


E1.5.2 – Ciclo di lavorazione

Da Produzione à Produzione, Lavorazioni

clip_image017

Permette la trasformazione di un prodotto da una o più fasi/varianti. Se non è indicata la fase/variante di partenza viene scaricato l’articolo di derivazione. Se un non è indicata la fase/variante di arrivo viene caricato il prodotto finito in tutti gli altri casi la trasformazione avviene in considerazione delle fasi/varianti indicate. Naturalmente la lavorazione può comprendere più cicli in una sola registrazione.

E1.6 – Consegna merce lavorata dal terzista (Opzionale)

Anche questa fase è opzionale perché se la lavorazione avviene internamente il più delle volte non occorre creare alcun documento.

Quando invece il terzista ci consegna un prodotto lavorato dobbiamo registrare il carico di magazzino. Le operazioni sono le stesse da eseguire quando si carica un documento di trasporto passivo con la differenza che deve essere usata un tipo fattura che sia agganciato ad una causale di movimentazione di conto lavorazione (CL).

Da Contabilità à Acquisti à Fatture e DDT Passivi

Inserirne un nuovo documento con il pulsante clip_image018

Per impostazione predefinita Gea.Net mette a disposizione un tipo fattura, che in realtà esegue solo il carico di magazzino, con codice D3 (reso da lavorazione). Se si verifica sulla tabella “tipo fattura“ possiamo notare come questo tipo sia abbinato al codice causale di movimentazione di conto lavorazione (CL).

La consegna con fattura immediata non dovrebbe mai capitare visto che relativa alla consegna di articoli di nostra proprietà e dovrebbe essere fatturata la prestazione e non i beni. Qualora avvenisse non potrebbe essere usato il tipo fattura “fattura accompagnatoria” che per impostazione predefinita è agganciato ad una causale di vendita. Occorrerebbe creare un altro tipo in tutto simile ma abbinato alla causale conto lavorazione (CL).

Naturalmente se le lavorazioni da cedere all’esterno sono più di una è possibile ripetere i punti 4, 5 e 6 tutte le volte che serve. Se invece ci sono più lavorazioni interne ripetere il punto 5 per ognuna di esse.

E1.7 – Consegna al cliente

L’ultima fase è certamente la più semplice e non occorre dare ulteriori dettagli se non ricordare che sia dalla gestione dei documenti di trasporto che dalla gestione delle fatture è possibile importare l’ordine cliente generato all’inizio del processo.

E1.8 – Cosa cambia se i terzisti siamo noi

Il processo analizzato lo abbiamo visto con gli occhi dell’azienda che commissiona all’esterno. Ma cosa succede se è la nostra azienda che esegue le funzioni del terzista ?

Caso 1. Terzista con solo merce dei clienti

Potrebbe cambiare poco nel momento in cui teniamo tracciato anche gli articoli del nostro committente. Ricordiamo però che gli articoli di terzi non possono essere mischiati ai nostri pertanto avremo dovuto fare a priori un magazzino articoli di terzi che ad esempio abbiamo chiamato con codice MAGA3 per distinguerlo dal nostro magazzino principale con codice MAGAZ.

Per ogni fase del processo, a partire dagli ordini, ai documenti di trasporto, alle funzioni di produzione, ovunque dovremo ricordarci di sostituire il codice MAGAZ proposto in automatico con il codice MAGA3.

In verità quanto stiamo facendo è tutt’altro che ideale. Ci siamo presi carico di un’incombenza a cui non saremmo obbligati (la merce non è nostra e non abbiamo obblighi di legge).

Se scegliamo di semplificarci la vita e quindi non gestire il magazzino di altri le cose si semplificano un po’.

  • Non cambia niente nella gestione delle offerte, degli ordini e delle schede lavoro. Tutti questi documenti non creano movimenti di magazzino e quindi li gestiamo allo stesso modo
  • Non siamo tenuti a registrare il documento di trasporto che riceviamo dal cliente nel momento in cui ci consegna i componenti.
  • Tutti gli eventuali documenti di trasporto (punto 4) che noi emettiamo nei confronti di sublavoranti non devono creare movimenti di magazzino pertanto dobbiamo usare una causale che non crea ne carichi ne scarichi.
  • Non trattandosi di articoli nostri possiamo evitare di creare la produzione (punto 5).
  • Non siamo tenuti a registrare il documento di trasporto che riceviamo dal sublavorante.
  • Il documento di trasporto (punto 7) che noi emettiamo nei confronti del cliente non deve creare movimenti di magazzino pertanto dobbiamo usare una causale che non crea ne carichi ne scarichi.

Caso 2. Terzista con merce dei clienti e merce di proprietà

Nel caso in cui la merce oggetto della nostra produzione sia conferita in parte dal cliente che commissiona la lavorazione ed in parte dalla nostra azienda le cose sono un po’ più complesse.

In questo caso dobbiamo prevedere di avere almeno tre magazzini : Il magazzino con il materiale di nostra proprietà (MAGAZ), il magazzino presso la sede del cliente (ad esempio codice 00001), il magazzino di materiale di proprietà del cliente presso la nostra sede (ad esempio codice MAG01)

La gestione corretta prevederebbe che il materiale del cliente non venisse mai mischiato al materiale di nostra proprietà senonchè per eseguire la produzione non è possibile prelevare materiale presente in due magazzini diversi. Pertanto siamo costretti a caricare la merce conferita dal nostro cliente in un magazzino separato quindi all’atto della produzione dovrebbe essere venduta la merce di proprietà dell’azienda al cliente stesso. Gli step del processo sono :

  • Registrazione della ricezione della merce attraverso la registrazione di un documento di trasporto passivo con magazzino destinazione MAG01 utilizzando una causale che preveda il solo carico del magazzino destinazione.

· Emissione di un documento di trasporto con una causale che preveda solo lo scarico e che abbia come destinazione il magazzino del cliente depositato presso la nostra sede cioè MAG01. Questa operazione è una operazione virtuale e non prevede alcun trasporto all’esterno perciò potrebbe essere evitata registrando al suo posto un movimento di magazzino con origine MAGAZ e destinazione MAG01. Se invece che creare documento di trasporto si esegue solo il movimento di magazzino non verrà creata in automatico alcuna fattura ma il più delle volte è corretto sia così in quanto non sono venduti componenti ma una lavorazione (o commessa).

  • Esecuzione della lavorazione prezzo MAG01
  • Consegna del prodotto finito con documento di trasporto che viene originato dal magazzino MAG01 e con destinazione 00001. Anche in questo caso è a discrezione dell’operatore decidere quale causale utilizzare. Occorre comunque utilizzare un causale che esegue solo lo scarico del magazzino di provenienza. Se si utilizza una causale “Vendita” si ha il vantaggio che la fattura viene generata in automatico con la funzione “Genera fattura”. In caso contrario la fattura dovrà essere creata manualmente o partendo dall’ordine cliente.

Il processo analizzato ora, per quanto formalmente corretto potrebbe essere dispersivo in quanto obbliga l’operatore a fare una operazione (punto 2) piuttosto noiosa di trasporto del materiale di proprietà dell’azienda (MAGAZ) al magazzino del cliente (MAG01). Inoltre ogni operazione (documento di trasporto di ricezione merce, lavorazione, documento di trasporto di consegna del prodotto finito) deve essere eseguita su MAG01 invece che su MAGAZ che viene proposto in automatico e questo rischia di essere causa di errori.

Per questi motivi alle volte si usa la scorciatoia impropria di caricare la merce del cliente direttamente sul magazzino aziendale. Per quanto non corretta è una soluzione pratica e se la si vuole adottare si raccomanda di identificare inequivocabilmente il materiale di proprietà dei clienti ad esempio assegnando codici che iniziano con la lettera “Z”.

Pubblicità

Personalizzare le stampe dei documenti con Gea.Net

 

Attenzione !! Per poter stampare un documento essere presente almeno una stampante in linea.

Le stampe e le anteprime di stampa richiedono che il sistema riconosca la presenza di una almeno una stampante attiva (stampante predefinita). Qualora non si disponga di alcuna stampante collegata è necessario crearne una virtuale anche per la sola anteprima di stampa. In realtà le versioni più recenti del sistema operativo Windows, creano già autonomamente almeno una stampante virtuale ed in questo caso non occorre crearne altre.

In seguito parleremo genericamente di “scheda” in quanto ogni entità (anagrafica, articolo di magazzino, ordine, fattura, movimento contabile, ecc.) dispone di una o più stampa preconfezionate. Ad esempio l’entità “fatture” possiede una stampa per le fatture differite, una per le fatture dirette, una per le ricevute fiscali e altre possono essere create dall’utente.

Probabilmente l’operatore avrà interesse a personalizzare i documenti mentre per la maggior parte delle altre entità non si utilizzeranno neppure le stampe predisposte.

Per ogni scheda gestita è possibile eseguire una stampa/anteprima di stampa.

Aprire l’elenco di riferimento ad esempio per le fatture

Da Fatture à Fatture

Selezionare la registrazione o inserirne una nuova con il pulsante clip_image002

Per ogni scheda viene fornita una impostazione predefinita che si genera automaticamente alla prima stampa. L’operatore potrà scegliere di modificare secondo le proprie esigenze, spostando e modificando i valori da stampare. Si può modificare le impostazioni tramite “Impostazioni di stampa” presente nel menu “Opzioni”.

clip_image003

Si apre l’elenco delle tabelle che possono essere personalizzate

Attenzione ! Se non è stata eseguita almeno una stampa (anche in passato) non vedremo alcuna tabella e non avremo la possibilità di modificare le impostazioni.

clip_image004

Vediamo che le tabelle sono composte da una coppia (nell’esempio FATTURA e FATTURA_DETAIL). La prima è e la tabella principale che contiene tutte le impostazioni della scheda. Aprendola notiamo che abbiamo indicativamente una riga per ogni campo di testata. Per ogni riga abbiamo una serie di informazioni che specificano come deve essere riportato in stampa il campo.

clip_image006

Sarà possibile inserire voci non presenti o togliere alcune di quelle presenti. Per ogni voce sarà possibile modificare :

  • Tipo (Type) : Non gestito
  • Pagina (Page) : Pagina in cui deve essere presente il dato se la scheda si snoda su più pagine. Indicare 0 se si vuole riportarlo su tutte le pagine, 99 se riportarlo sull’ultima.
  • Posizione Orizzontale Inizio e Fine (PosX_IN, PosX_END) : Questi due valori sono espressi in centimetri ed indicano il punto di inizio e di fine (sull’asse X-orizzontale) in cui deve essere stampato il campo.
  • Posizione Verticale Inizio e Fine (PosY_IN, PosY_END) : Questi due valori sono espressi in centimetri ed indicano il punto di inizio e di fine (sull’asse Y-verticale) in cui deve essere stampato il campo.
  • Lunghezza (Length) : Numero di caratteri da stampare.
  • Righe (Lines) : Numero di righe da stampare. Questo valore è solitamente uguale a uno tranne per i campi note che possono essere su più righe.
  • Bordatura (Printline) : Esegue una bordatura del campo in base ai valori di posizionamento orizzontale e verticale
  • Grassetto (Bold) : Esegue la stampa in grassetto della voce.
  • Font (FontName) : Tipo di font da utilizzare. Il font deve essere presente sul PC nel momento in cui verrà stampato il documento. In questa sede non viene eseguito alcun controllo.
  • Dimensioni (FontSize ) : Dimensioni del font o percentuale ridimensionamento immagine su file PDF. Dalla versione 2.31, è possibile indicare in questo campo la percentuale con cui si vuole ridimensionare l’immagine sulle stampe in formato PDF (ad. Esempio se si indica 60, l’immagine sarà ridimensionata al 60%)
  • Colore (Color) : Colore del font.
  • Visualizza Zero (ViewZero) : Se indicato non stampa un eventuale voce che assumi il valore zero.
  • Stampa dell’intestazione ( PrintHeader ) : Se indicato viene sempre stampata anche la descrizione della voce e non solo il suo valore. Anche per la descrizione è possibile scegliere Font, dimensioni, colore e grassetto.

Se scorriamo la tabella notiamo che la maggior parte dei campi ha la coordinate (POSX e POSY) uguale a 0. Questo significa che il campo non viene stampato a meno che l’operatore non intervenga a modificare i valori.

Notiamo anche che ci sono due righe con descrizione (DESCFIELDNAME) “Mittente”. Queste riportano l’intestazione della ditta e devono essere “azzerate” se si possiede stampa preintestata. Si veda di seguito “Stampa documenti e stampa logo aziendale su documenti” per maggiori dettagli.

Notiamo anche una riga con descrizione (DESCFIELDNAME) “RIGHE”. Qui viene definito un rettangolo virtuale all’interno del quale si occuperà di stampare la tabella FATTURA_DETAIL. In pratica quest’area viene destinata a stampare le righe del documento. Si veda di seguito “Stampa righe documenti” per maggiori dettagli.

Attenzione ! Deve essere usato il punto come separatore decimale.

Nel caso sia stata utilizzata la virgola, la stampa del documento potrebbe generare un “errore di programmazione”. Questo è causato dal fatto che il file XML che contiene la configurazione di stampa non è più wellformed e quindi risulta danneggiato.

I files che contengono la configurazione di stampa, si chiamano

  • [cartella applicazione]\ ClsB_Gea.[nomeoggetto].XML
  • [cartella applicazione]\ ClsB_Gea.[nomeoggetto].XSD

Qualora sia già stato danneggiato si può provare ad aprire il file XML con un editore di testi come NOTEPAD e modificare le impostazioni non corrette.

Se ancora non si riesce a risolvere il problema i files devono essere eliminati cosicché alla prima stampa eseguita l’applicazione ricostruirà tali file con struttura corretta.

Stampa di oggetti statici

Tra le impostazioni di stampa si trovano alcuni oggetti particolari che non fanno riferimento a valori presenti sul database ma riguardano oggetti statici che possono essere stampati in un determinato punto della stampa.

Questi oggetti sono identificabili perché il loro nome (FeldName) inizia per “COLL.LIBERO_” e per impostazione hanno la descrizione (DescFieldName) vuota.

Gli oggetti statici che possiamo stampare sono :

· Linee : i diversi oggetti linee rappresentano un rettangolo o una linea. Deve essere impostato un punto di inizio e di fine per mezzo di POSX e POSY in base al quale viene disegnata una linea retta o un rettangolo. La colonna Printline deve essere impostata a true. La descrizione del campo (DescFieldName) può essere lasciata vuota.

· Testo : sono disponili oggetti testo che rappresentano un testo fisso. Per utilizzare questi oggetti devono essere impostate le coordinate (POSX* e POSY*), deve essere indicato il testo da stampare nella descrizione (DescFieldName) e deve essere impostata a vero la colonna Stampa dell’intestazione ( PrintHeader ). Possono essere modificati font, dimensione e colore.

· Immagine : Per stampare un immagine nel campo descrizione (DescFieldName) deve essere indicato il nome del file da stampare (compreso il percorso). Per stampare l’oggetto devono anche essere impostate le coordinate (POSX* e POSY*).

· Codice a Barre : Per stampare un codice a barre nel campo descrizione (DescFieldName) deve essere indicato il codice a barre da stampare seguito dal prefisso “[BC]” ( esempio : “[BC]12345678” stampa il codice a barre 12345678. Per stampare l’oggetto devono anche essere impostate le coordinate (POSX* e POSY*). Per definire la dimensione del codice a barre stampato si vedano le impostazioni settate in “Configurazione”.

Gli oggetti Linee possono essere usati autonomamente o in abbinamento agli altri tipi di oggetto. Per non stampare la linea di contorno per un oggetto testo, immagine o codice a barre, la Bordatura (Printline) deve essere impostato a falso.

Oggetti stampabili

Si consideri che la struttura di cui sopra è comune a tutti gli oggetti stampabili pertanto devono essere fatte alcune considerazioni:

  • Usare il punto come separatore decimale per i valori di posizionamento di origine e fine stampa
  • Se l’oggetto da stampare è una stringa di caratteri il punto di fine stampa non viene considerato ovvero la stringa viene stampata dal punto di origine definito per il numero di caratteri impostati. Agire eventualmente sul tipo e la dimensione del carattere per modificare il punto di fine stampa.
  • La stampa di un oggetto immagine si comporta diversamente qualora si tratti di una stampa normale o di una stampa in formato PDF/Fax. Nel primo caso, se sono definiti i punti di fine stampa l’immagine viene ridimensionata nell’area stampabile. Nel caso di stampa in formato PDF il punto di fine stampa non viene considerato ma è possibile definire una percentuale di ridimensionamento dell’immagine impostandone il valore nel campo “Dimensioni”.
  • Alcuni dei valori da stampare possono essere in formato tabella (cioè disposti su più colonne) come nel caso delle righe documento o dei totali imponibili. La separazione per colonne è virtuale infatti per questi tipi di campi l’applicazione genera un campo testo formattato su più righe e il posizionamento delle colonne e’ calcolato in base alla larghezza del font usate. Se si usano font diversi da “courier” o “system” la larghezza dei vari caratteri e’ diversa e quindi e’ molto importante non intervenire sul font con cui stampare queste tabelle (“courier” per impostazione predefinita) altrimenti le colonne potrebbero risultare disallineate.
  • I dati di stampa scheda o stampa documento vengono memorizzati in un file con formato XML che viene salvato nella cartella DATI. Ogni oggetto possiede un proprio file XML che l’utente potrà modificare anche con applicazioni esterne a Gea.Net. Se il file sarà rimosso l’applicazione lo ricostruirà alla stampa successiva con i valori standard.

Stampa documenti e stampa logo aziendale su documenti.

Le schede gestite in Gea.Net sono diverse e tra queste rivestono particolare caratteristiche le schede dei documenti quali ordini, Documenti di Trasporto fatture ecc. Nel momento in cui si stampa per la prima volta un documento questo viene preimpostato secondo una disposizione standard. Naturalmente l’utente avrà la possibilità di modificare le impostazioni dei documenti per adattarle ad un proprio modulo o stile aziendale. In questo caso si consiglia di stampare una prima volta il documento in modo da fare costruire il file XML standard e operare in un secondo momento modificando le impostazioni suggerite.

Durante la creazione al momento della prima stampa Gea.Net valuta se nel modulo di configurazione è presente un file di logo. Qualora questo non fosse impostato viene generato un logo a caratteri obbligatorio sui documenti e posizionato nell’angolo in alto a sinistra. Se viene inserito il file di logo in un secondo momento, alla prima occasione questo verrebbe inserito ma non sarebbe tolto quello a caratteri precedentemente generato e sarà l’utente che dovrà agire sul file di impostazioni tramite “Impostazioni di stampa” presente nel menu “opzioni” ed in particolare sulle righe “Mittente” azzerandone i valori.

Naturalmente, se non sono state apportate personalizzazioni e per rendere l’operazione più agevole, potrà essere rimosso il file XML che quindi sarebbe ricreato alla prima occasione.

Per il ridimensionamento di un file di logo aziendale valgono i concetti applicati ai file immagine e discussi in questo paragrafo.

E’ possibile ridimensionare un immagine con Microsoft Paint o altro software di gestione immagini

Tutte le schede possono sempre essere stampate in diversi formati :

  • Su stampante. Viene richiesta di indicare una delle stampanti presenti su pannello di controllo quindi la stampa viene inviata al driver.
  • Anteprima di stampa. La stampa viene presentata a video e se richiesto inviata a stampante
  • Stampa in formato PDF. Viene generato un file PDF
  • Invio Fax : Per questa operazione deve essere presente ZetaFax o altro software di gestione fax. Se si utilizza Linkfax questo deve essere presente sul server fax e sul PC client deve essere attivo il servizio “Messenger” (Vedi Pannello di Controllo, Strumenti di Amministrazione, Servizi ). Viene richiesto il numero di fax, creato un file PDF contenente nel nome il numero a cui deve essere inviato e depositato tale file in una cartella di fax in uscita.
  • Invio EMail : Viene creato un file PDF, richiesto il l’indirizzo email e quindi inviata come allegato.

Nei casi dove è possibile il numero di fax o l’indirizzo Email viene proposto automaticamente, ad esempio se si stampa un ordine o una fattura i dati vengono ricavati dalla scheda anagrafica.

Stampa Righe Documento

L’area riservata alle righe del documento è gestita dalla tabella DETAIL.

clip_image008

Sulla tabella di dettaglio la gestione dei parametri è molto più semplice in quanto tutte i parametri come le coordinate, il carattere, ecc. sono state impostate nella riga “RIGHE” della tabella principale.

Qui deve solamente essere indicato l’ordine delle colonne (POSX_IN) e la lunghezza espressa in caratteri (LENGTH).

Dall’immagine riportata possiamo vedere che la prima colonna è destinata al codice articolo per 18 caratteri, la seconda alla descrizione per 30 caratteri, la terza all’unita di misura, ecc.

Nella colonna DESCFIELDNAME viene riportata l’intestazione della colonna come sarà riportata in stampa. Anche questa può essere modificata dall’utente.

Le impostazioni mostrate nelle tabelle precedenti genera la fattura seguente.

clip_image009

Stampante non collegata

Su alcune postazioni, soprattutto con versioni precedenti la 3.5, durante le stampe dei documenti si possono verificare strani errori. Il messaggio segnalato il più delle volte è :

"Non è stato possibile eseguire al stampa. Verificare su "Pannello di controllo" di avere almeno una stampante attiva e che questa sia correttamente collegata"

Qualora effettivamente la stampa non fosse stata eseguita :

  • Verificare la presenza di una stampante, assicurandosi che la stampante sia in linea e che non sia una stampante remota non raggiungibile dalla rete.
  • Se ancora il problema persista aggiornare il driver o disinstallare e reinstallare la stampante.
  • Provare se il problema si presenta anche su una seconda stampante, magari collegata direttamente al PC client.

Nonostante questo messaggio il più delle volte la stampa viene eseguita correttamente. In questo caso non riesce a generare un documento PDF per l’archiviazione GED.

Il processo di stampa di un documento è duplice; prima viene creata la stampa da inviare al driver della stampante, quindi viene prodotto un PDF da archiviare nella cartella GED. Il primo processo avviene regolarmente mentre il secondo genera l’errore.

Le possibili cause possono essere :

  • Incompatibilità con Acrobat Reader di cui si consiglia di installare la versione più recente
  • La mancanza delle librerie per la creazione dei PDF (Vedi sezione Download in http://www.fborghi.it/GeaNet.htm)
  • Qualora il problema non si risolvesse e non fosse possibile operare su una diversa postazione client, non resta che disattivare la funzione GED dalla Configurazione delle Impostazioni di Gea.Net

C5.1 – MODULI ALTERNATIVI

Ogni oggetto ha una.propria impostazione di stampa predefinita a cui viene dato il nome convenzionale di “BASE”.

A questa regola fanno eccezione i documenti che per ogni entità possono avere più moduli disponibili. Ogni modulo è identificato da un nome e in base al tipo del documento viene predisposto un modulo piuttosto che un altro.

Da Archivi di Base à Tabellaà Tipo Ordini

clip_image010

In questo esempio vediamo come vengono associati i moduli degli ordini in base al tipo di ordine. Lo stesso concetto si applica anche ai documenti di trasporto e alle fatture.

Ma l’utente potrebbe avere una ulteriore necessità, stampare lo stesso tipo di documento su moduli diversi in base alle esigenze del momento (ad esempio stampando una fattura con intestazione perché a finito i moduli preintestati).

Per gestire questa opportunità occorre predisporre l’applicazione.

Dalla barra menu della schermata principale selezionare

Configurazione à Impostazioni

clip_image012

Dopo aver attivato l’impostazione occorre predisporre uno o più moduli per ogni tipo documento.

Da Archivi di Base à Tabellaà Moduli Alternativi …(Ordini, DdiT, Fatture)

clip_image013

A questo punto nella gestione del documento viene resa disponibile una lista di selezione dei moduli disponibili. Se non si seleziona niente o si seleziona la riga vuota, viene utilizzato il modulo standard.

Da Fatture à Fatture

Selezionare la registrazione o inserirne una nuova con il pulsante clip_image014

clip_image016

La prima volta che si stampa un modulo verrà creato con le impostazioni standard definite dal software, poi l’utente potrà personalizzarlo come gli altri moduli.

Sql Server 2008 Management Studio : autorizzare la progettazione di tabelle

Utilizzando SQL Server 2008 Management Studio potrebbe essere necessario modificare la struttura di alcune tabelle ed imbattersi in questo errore :

“Saving changes is not permitted. The changes that you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.”

 

Se si prova ad inviare un comando “ALTER TABLE” tuttavia il comando viene eseguito correttamente. Questo errore è causato da una mancanza di autorizzazione da parte di Management Studio alle modifiche della struttura delle tabelle. In effetti SQL Server Management Studio per default ha attivato l’opzione “Prevent Saving Changes That Require Table Re-creation”. Per disabilitare questa opzione :

1) Aprire SQL Server 2008 Management Studio (SSMS). Click sul menu “Tools” menu quindi click su “Options…”.

clip_image001

2) Nel navigation pane, espandere il nodo Designers quindi selezionare “Table and Database Designers”. In “Table Options” deselezionare “Prevent saving changes that require the table re-creation” e confermare con “OK”.

clip_image002

 

Una volta disabilitata l’opzione sarà possibile modificare la struttura. La modifica comporterà la segnalazione di un dialogo di Warning a cui sarà necessario rispondere “YES” per confermare le modifiche.

 

clip_image001[1]

Problemi durante il porting a Visual Studio 2010

 

Il porting a Visual Studio 2010 sostituisce automaticamente l’uso del Framework 3.5 con il 4.0 in sede di compilazione. Possiamo rinunciare a questa conversione semplicemente andando nelle proprietà di ogni progetto, scegliendo la Tab “Compilazione” quindi “Opzioni di compilazione avanzate” scegliendo “Framework 3.5” nel campo “Framework di destinazione”, tuttavia se decidiamo di utilizzare la versione più evoluta dobbiamo ricordarci alcuni punti :

System.XAML

Alcuni assembly sono stati riorganizzati pertanto se il nostro progetto usa Wpf dobbiamo inserire nei progetti il riferimento a System.XAML . Questa informazione ci viene evidenziata anche nella lista di errori.

System.Reflection.Assembly.UnsafeLoadFrom

Il framework 4.0, al contrario delle versioni precedenti, di default considera non sicuri gli assembly che risiedono sulla rete anche se posizionati all’interno di una cartella con diritti fulltrust. Questo comporta che utilizzando la reflection per accedere ad un assembly durante il caricamento per mezzo del metodo LoadFrom potremmo ricevere l’ errore :

{"Could not load file or assembly ‘file:///[nome_assembly]’ or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)":"file:///[nome_assembly]"}

Per fare funzionare il tutto come nella versione precedente occorre sostituire il comando :
System.Reflection.Assembly.LoadFrom
Con  il comando :
System.Reflection.Assembly.UnsafeLoadFrom

Riferimenti non disponibili

Il nuovo ambiente è più “permaloso” e non ci consente di compilare un assembly se al suo interno ci sono riferimenti ad assembly non presenti sul PC. Questa nuova caratteristica lascia spiazzati in quanto non viene data nessuna segnalazione. Semplicemente non viene compilato, e quindi distribuito, l’assembly. Per evitarci qualche mal di testa è fondamentale togliere tutti i riferimenti che non sono disponibili sul nostro PC. Per quanto riguarda Gea.Net, questo problema potrebbe essere causato da ClsB_Office che ha il referimento a Microsoft.Office.Core, MSProject, MSPWIFLib, Excel, ecc. La cosa è particolarmente noiosa se ci capita di cambiare spesso ambiente o postazione di lavoro. Attenzione quindi a non esagerare. Non togliere riferimenti che vengono usati dal progetto solo perchè inavvertitamente è stata cancellata l’assembly o perchè si è su un PC non di sviluppo.

Ricompilare la soluzione

L’ultimo è il consiglio della nonna per evitare di perdersi in un bicchiere d’acqua. Se sono state eseguite alcune modifiche ad assembly agganciati a progetto principale è bene ricompilare ogni singolo progetto modificato oppure fare un "Ricompila Soluzione". Se siamo intervenuti agganciando o sganciando riferimenti ma non abbiamo apportato modifiche ai file del progetto, VS2010 non ricompila di sua iniziativa.

Backup e Ripristino di database SqlServer

Mi capita molto (troppo) spesso di non trovare un adeguato sistema di copie di salvataggio dei dati. A volte non sono mai state fatte copie di sicurezza oppure non si è verificato l’esito positivo della stessa. Per non parlare della conservazione in luogo sicuro.

Per avere la certezza di non perdere il lavoro fatto occorre copiare il database almeno ogni tre giorni, anche se l’ideale sarebbe farlo tutti i giorni. Quando il database è Access o MySql l’operazione di copia e di successivo ripristino è piuttosto semplice in quanto è sufficiente copiare il file o la cartella contenente il database, magari quando le applicazioni che lo usano non sono aperte. Con SqlServer come per altri database che forniscono servizi, questa semplice operazione di copia del file contenente il database non è consentita se non facendo il detach. Risulta certamente più comodo avvalersi degli strumenti messi a disposizione del database e magari creare un sistema automatizzato. Anche se si utilizza una versione Express di SqlServer questa operazione può essere pianificata per non richiedere interazione.

Copia (Backup) di Sql Server

Per fare le copie di salvataggio manualmente è possibile utilizzare Sql server Management Studio connettendo il server su cui è depositato il database. Viene mostrato l’elenco dei database presenti sul server e per ognuno di essi è possibile lanciare una specifica funzione attivabile cliccando il tasto destro del mouse dal nome del database a cui siamo interessati.

clip_image002

A questo punto verrà mostrata una finestra che mostra sulla sinistra le funzioni “Generale” e “Opzioni”. Scegliere “Generale” per indicare il database di origine e il file di destinazione, quindi scegliere “Opzioni” indicando “Sovrascrivi tutti i set di backup esistenti”

clip_image004 clip_image006

Sarà creato il file come da voi indicato che potrà essere copiato liberamente su DVD o disco esterno in modo che possa essere trasferito e conservato in altro luogo.

Pianificazione della copia di Sql Server

Il modo più semplice per procedere a backup è pianificare le copie con SQL Agent ad una certa ora affinché non debba essere eseguita manualmente.

Se anche si dispone della versione Express che non permette di pianificare il backup è possibile aggirare l’ostacolo seguendo i seguenti passi :

1) Per prima cosa bisogna salvare lo script. Invece di eseguire il backup come visto in precedenza, clicchiamo sul pulsante “Script” posto in alto, quindi scegliamo la seconda opzione “Genera script azione su file”. Ci viene creato un file che chiamiamo [nomedatabase].sql.

2) Nella stessa cartella in cui risiede lo script sql, creiamo un file batch che possiamo chiamare [nomedatabase].bat come di seguito facendo attenzione a sostituire i nomi indicati in grassetto con i parametri relativi alla vostra configurazione

SETLOCAL

SET BKPFILENAME=GEA

SET BKPEXT=bak

SET MONTH=%DATE:~3,2%

SET DAY=%DATE:~0,2%

SET YEAR=%DATE:~6,4%

SET HOUR=%TIME:~0,2%

SET MINUTE=%TIME:~3,2%

SET SECOND=%TIME:~6,2%

SET BKPFILE=%BKPFILENAME%-%YEAR%-%MONTH%-%DAY%-%HOUR%-%MINUTE%-%SECOND%.%BKPEXT%

SQLCMD -S NOMESERVER -i %BKPFILENAME%.sql

IF EXIST %BKPFILENAME%.%BKPEXT% RENAME %BKPFILENAME%.%BKPEXT% %BKPFILE%

3) Possiamo schedulare l’esecuzione del nostro file [nomedatabase].bat tra le operazioni pianificate di Windows, raggiungibile da Start, Programmi, Accessori, Utilità di sistema, Operazioni pianificate.


Ripristino di Sql Server

Se si è verificato un problema grave potrebbe essere che abbiate dovuto sostituire il server, quindi dopo aver reinstallato Sql server occorre creare un nuovo database. Dopo avere inserito il nome ed eventualmente altri parametri, confermate per procedere alla creazione.

clip_image008

Ora procediamo con il ripristino con il solito click del tasto destro del mouse, indicando il nome del database di destinazione, il nome del file di origine e, selezionando “Opzioni”, spuntare “Sovrascrivi il database esistente (WITH REPLACEMENT)”.

clip_image010 clip_image012

Il negozio : registratori di cassa ed e-commerce.

Il target di clientela di utenti Gea.Net è la PMI, ma numerose installazioni sono anche operanti su professionisti, microaziende e negozi.
In particolare il negozio ha l’esigenza di collegare il registratore di cassa, pertanto mi viene spesso richiesto di collegare Gea.Net alla cassa.

In passato fù creato un progetto pilota poi abbandonato perchè il protocollo di comunicazione era diverso anche per casse della stessa marca. Con un pò di lavoro sarebbe stato possibile sopperire a questo ma in realtà il progetto è fallito soprattutto perchè questo avrebbe finito per portarci su un altro sentiero, quello dalla gestione dei registratori di cassa, che personalmente non volevo percorrere.
La scelta è stata creare collaborazioni con rivenditori di casse che si occupassero di creare un middleware personalizzato da distribuire assieme alla cassa stessa. Questo è possibile con poco fatica perchè GeaNet crea un file XML nella sottocartella SCONTRINI. Se invece si preferisce, i dati possono essere prelevati direttamente dal database.
Lo scenario tipo è la creazione di un job che monitora la cartella SCONTRINI e se trova un nuovo file, ne ricava i dati, li impacchetta nel formato richiesto e li inoltra utilizzando il protocollo richiesto.
Tutti i rivenditori di registratori di casse hanno già una soluzione simile e devono semplicemente catturare i dati, il resto è perfettamente uguale.

Nonostante questa, a mio avviso, sia la soluzione preferibile, alcuni clienti mi chiedono di occuparmi personalmente della connessione e sono disposti anche a cambiare la cassa. Io posso proporre soluzioni frutto di collaborazioni con aziende della mia zona (Reggio Emilia) ma sul lungo periodo è senz’altro più economico chiedere di sviluppare questo piccolo software al proprio attuale fornitore, di solito già presente in loco, a cui verranno fornite tutte le specifiche per l’acquisizione dei dati.

Altro argomento caldo per il negozio è la richiesta di un sito di e-commerce.
Qui le richieste sono le più svariate ma la cosa più difficile da spiegare è la grossa differenza tra un sito che funziona e un che non viene visitato da nessuno.
Sull’argomento vi rimando al blog dell’amico Stefano con cui abbiamo creato alcune collaborazioni. http://blog.arscolor.com/quanto-costa-un-sito-di-ecommerce/

Gestionali web : perchè non convengono alla PMI

Il titolo è un pò forte ma è il riassunto delle esperienze, anche personali, degli ultimi dieci anni.

A volte mi capita che i responsabili di aziende utenti Gea.Net o semplici contatti mi chiedano di creare un gestionale fruibile via web.
Si tratta per lo più più di microaziende o piccole imprese che vorrebbero poter lavorare da casa o dare accesso al commercialista.
Indubbiamente il gestionale web darebbe questi vantaggi, inoltre non richiederebbe di installare niente sui client (se non un browser) e se si dispone una installazione in hosting ci si può anche dimenticare di fare le copie o abbassare la guardia sulla sicurezza (cosa che di per se non è un bene).

Con queste prerogative era nato Gea.Web nel 2002, anni in cui sembrava che il futuro del gestionale fosse sul web.
Da prima come ambiente di supporto al predecessore di Gea.Net e di seguito con la creazione di servizi web per la gestione dei documenti del ciclo attivo.
E’ vero che Gea.web non aveva contabilità, produzione o altri moduli di supporto tuttavia con il passare del tempo mi rendevo conto che su questo scenario l’utenza diventava "fredda".
Gea.web è stato bocciato principalmente per le sue caratteristiche tecniche e al suo posto è nato Gea.Net che in pochi anni ha avuto migliaia di installazioni.

Le motivazioni che principalmente frenò i gestionali web sono di 4 tipi :
1) Una eccessiva latenza sull’esecuzione dei comandi. Con il passare del tempo questo è un pò migliorato ma non può e non potrà mai essere paragonato con un software che gira sul client.
2) L’hosting (delegare ad aziende di servizi tutta la gestione) che era forse il punto di forza principale cominciava ad essere visto come un problema perchè voleva dire mettere i dati della propria azienda in mano a terzi. E vero che si può installare anche su server residenti in azienda ma i tempi da dedicare alla gestione sono almeno uguali a soluzioni tradizionali.
3) La disponibilità del servizio è meno sicuro perchè oltre ai problemi che possono nascere in azienda, bisogna calcolare i possibili problemi dal provider o sulla rete telefonica tradizionale (non VPN).
4) I costi di gestione sono l’ultimo argomento che emerse ma in realtà non era l’ultimo dei problemi. Anche dovendo collegare sedi remote conviene pensare a reti VPN che oltre al gestionale offrono altri servizi di voce e dati con poche centinaia di Euro all’anno. E anche in questo caso un applicativo tradizionale garantisce maggiori performance.

Effettivamente ad anni di distanza possiamo vedere come anche gli investimenti su gestionali web si sia focalizzata su ambienti di nicchia ma ogni tanto qualcuno rispolvera l’idea.
Per il futuro sarei più portato a credere nello sviluppo di servizi (SAAS. Software as a Service) ma credo che anche nella migliore delle ipotesi sia un settore riservato a grandi realtà. Se non altro per le enormi risorse economiche richieste.

Compilare un progetto a 32 bit con Visual Studio Express

 

La versione Express di Visual Studio inibisce la possibilità di selezionare la piattaforma di compilazione (target platform) pertanto anche la compilazione a 32 bit risulta apparentemente impossibile.

In realtà occorre eseguire qualche settaggio in più per ottenere l’obiettivo.

Per prima cosa occorre assicurarsi che sia attivo l’ “Export setting” come da figura seguente.

clip_image001

Quindi impostare l’ opzione “Show advanced build configuration” raggiungibile da “Tools”, “Options”

clip_image002

Ora dobbiamo indicare alla solution ( o al progetto ) di compilare per una piattaforma particolare e non per “AnyCPU” come da impostazione predefinita.

  • Facciamo click sulle proprietà della solution
  • Sulla form che ci propone facciamo click su “Configuration Manager”
  • Sulla form “Configuration Manager” apriamo la combobox “Active solution platform”, quindi selezioniamo la voce “New”.
  • Sulla form “New Solution Platform” selezioniamo il tipo “x86” assicurandoci che “Copy settings from” sia impostato a “Empty”
  • Facendo Click su “OK” la colonna “Platform” di tutti i progetti della solution sarà settata su “x86” e la successiva compilazione soddisferà le nostre richieste.

clip_image004