示例#1
0
        public void MetaData_AfterFill()
        {
            if (Meta.FirstFillForThisRow)
            {
                tabControl1.Focus();
                HelpForm.FocusControl(txtCognome);
            }
            if (Meta.InsertMode || Meta.EditMode)
            {
                if (DS.paydispositiondetail.Rows.Count == 0)
                {
                    return;
                }
                DataRow Curr = DS.paydispositiondetail.Rows[0];
                if (Curr["flaghuman"] == DBNull.Value)
                {
                    return;
                }
                if (Curr["flaghuman"].ToString().ToUpper() == "S")
                {
                    abilita_personafisica(true);
                }
                else
                {
                    abilita_personafisica(false);
                }
            }
            if ((Meta.FirstFillForThisRow) && (Meta.EditMode))
            {
                assegnaVarDiConfronto();
            }

            if (Meta.FirstFillForThisRow)
            {
                if (DS.paydispositiondetail.Rows.Count == 0)
                {
                    return;
                }
                DataRow Curr          = DS.paydispositiondetail.Rows[0];
                int     paymethodcode = CfgFn.GetNoNullInt32(Curr["paymethodcode"]);
                if (paymethodcode == 1)
                {
                    grpCoordinateBancarie.Enabled = true;
                }
                else
                {
                    PulisciCoordinateBancarie();
                    grpCoordinateBancarie.Enabled = false;
                }
                ValorizzaAnnoAccademico(Curr);
            }
        }
示例#2
0
        private void btnElabora_Click(object sender, EventArgs e)
        {
            if (mData.Rows.Count == 0)
            {
                MessageBox.Show(this, "Non ci sono dati da elaborare");
                return;
            }

            DateTime dataDiVersamento = (DateTime)HelpForm.GetObjectFromString(
                typeof(DateTime), txtDataDiVersamento.Text, txtDataDiVersamento.Tag.ToString());

            if (dataDiVersamento < DateTime.Now.Date)
            {
                MessageBox.Show("Data di addebito: il valore immesso non può essere inferiore alla data corrente");
                HelpForm.FocusControl(txtDataDiVersamento);
                return;
            }

            DataTable t = mData;

            DialogResult dr = saveOutputFileDlg.ShowDialog(this);

            if (dr == DialogResult.OK)
            {
                txtPercorso.Text = saveOutputFileDlg.FileName;
            }
            else
            {
                MessageBox.Show(this, "Non è stato selezionato il percorso in cui memorizzare il file dell'F24");
                return;
            }

            Stream       stream          = saveOutputFileDlg.OpenFile();
            StreamWriter sw              = new StreamWriter(stream, Encoding.Default);
            int          numeroDiRecordV = (t.Rows.Count + 21) / 22;

            generaRecordA(sw);
            generaRecordM(sw, t);
            for (int numRecV = 1; numRecV <= numeroDiRecordV; numRecV++)
            {
                generaRecordV(sw, t, numRecV);
            }
            generaRecordZ(sw, numeroDiRecordV);
            sw.Close();

            txtDataGenerazione.Text = HelpForm.StringValue(Meta.GetSys("datacontabile"),
                                                           txtDataGenerazione.Tag.ToString());
            MessageBox.Show(this, "Elaborazione completata");
        }
示例#3
0
        private void btnGeneraF24_Click(object sender, EventArgs e)
        {
            if (DS.f24ep.Rows.Count == 0)
            {
                return;
            }

            if ((DS.taxpayview.Rows.Count == 0) && (DS.expenseclawbackview.Rows.Count == 0))
            {
                MessageBox.Show(this, "Non ci sono liquidazioni!");
                return;
            }

            if (!Meta.GetFormData(false))
            {
                return;
            }
            PostData.RemoveFalseUpdates(DS);
            if (DS.HasChanges())
            {
                MessageBox.Show(this, "Per generare il file del modello f24 occorre prima SALVARE");
                return;
            }
            DataRow  Curr             = DS.f24ep.Rows[0];
            DateTime dataDiVersamento = (DateTime)HelpForm.GetObjectFromString(
                typeof(DateTime), txtDataDiVersamento.Text, txtDataDiVersamento.Tag.ToString());

            if (dataDiVersamento < DateTime.Now.Date)
            {
                MessageBox.Show("Data di addebito: il valore immesso non può essere inferiore alla data corrente");
                HelpForm.FocusControl(txtDataDiVersamento);
                return;
            }
            DataTable t = Meta.Conn.CallSP("exp_f24ep", new object[] { Curr["idf24ep"] }).Tables[0];

            if (!t.Columns.Contains("importoadebito"))
            {// ERRORE
                SubF24       fErr  = new SubF24(t);
                DialogResult drErr = fErr.ShowDialog();
            }
            else
            {
                DialogResult dr = saveFileDialog1.ShowDialog(this);
                if (dr == DialogResult.OK)
                {
                    txtPercorso.Text = saveFileDialog1.FileName;
                }
                else
                {
                    MessageBox.Show(this, "Non è stato selezionato il percorso in cui memorizzare il file dell'F24");
                    return;
                }
                Stream       stream = saveFileDialog1.OpenFile();
                StreamWriter sw     = new StreamWriter(stream, Encoding.Default);

                int numeroDiRecordM = t.Select(QHC.CmpEq("tiporecord", "M")).Length;
                int numeroDiRecordV = t.Select(QHC.CmpEq("tiporecord", "V")).Length;

                DataRow[] Rec_M = t.Select(QHC.CmpEq("tiporecord", "M"));
                generaRecordA(sw);

                for (int numRecM = 0; numRecM <= numeroDiRecordM - 1; numRecM++)
                {
                    object cf_contributor = Rec_M[numRecM]["cf_contributor"];
                    string filter         = QHC.AppAnd(QHC.CmpEq("tiporecord", "V"), QHC.CmpEq("cf_contributor", cf_contributor));
                    int    numeroDiRecordVContribuente = (t.Select(filter).Length + 21) / 22;

                    DataRow[] Rec_V = t.Select(filter);

                    generaRecordM(sw, Rec_M[numRecM], Rec_V);
                    for (int numRecV = 1; numRecV <= numeroDiRecordVContribuente; numRecV++)
                    {
                        generaRecordV(sw, Rec_V, numRecV);
                    }
                }
                generaRecordZ(sw, numeroDiRecordV);
                sw.Flush();
                sw.Close();

                txtDataGenerazione.Text = HelpForm.StringValue(Meta.GetSys("datacontabile"),
                                                               txtDataGenerazione.Tag.ToString(), DS.f24ep.Columns["adate"]);
                Curr["adate"] = Meta.GetSys("datacontabile");
                Meta.SaveFormData();
            }
        }
示例#4
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            this.ActiveControl = null;
            if (finRow == null)
            {
                MessageBox.Show(this, "Occorre specificare la voce di bilancio");
                HelpForm.FocusControl(txtCodiceBilancio);
                DialogResult = DialogResult.None;
                return;
            }
            if (SelUPBSource.GetValue() == DBNull.Value || SelUPBSource.GetValue() == null)
            {
                MessageBox.Show(this, "Occorre specificare l'upb da cui stornare");
                HelpForm.FocusControl(txtUPBSource);
                DialogResult = DialogResult.None;
                return;
            }
            if (SelUPBDest.GetValue() == DBNull.Value || SelUPBDest.GetValue() == null)
            {
                MessageBox.Show(this, "Occorre specificare l'upb in cui stornare");
                HelpForm.FocusControl(txtUPBDest);
                DialogResult = DialogResult.None;
                return;
            }
            if (SelUPBSource.GetValue().ToString() == SelUPBDest.GetValue().ToString())
            {
                MessageBox.Show(this, "Occorre specificare due upb diversi");
                HelpForm.FocusControl(txtUPBSource);
                DialogResult = DialogResult.None;
                return;
            }

            object  o       = HelpForm.GetObjectFromString(typeof(decimal), txtImporto.Text, "x.y");
            decimal importo = CfgFn.GetNoNullDecimal(o);

            if (importo <= 0)
            {
                MessageBox.Show(this, "Occorre specificare un importo maggiore di 0");
                HelpForm.FocusControl(txtImporto);
                DialogResult = DialogResult.None;
                return;
            }
            //string filtro1 = QHS.AppAnd(QHS.CmpEq("idupb", SelUPBSource.GetValue()), QHS.CmpEq("idfin", finRow["idfin"]));
            //DataRow[] rDett1 = dsMain.Tables["finvardetail"].Select(filtro1);
            //if (rDett1.Length > 0) {
            //    MessageBox.Show(this, "Non è possibile creare una ulteriore variazione con upb='" + txtUPBSource.Text
            //                                    + "' e bilancio='" + finRow["codefin"] + "'");
            //    DialogResult = DialogResult.None;
            //    return;
            //}
            //string filtro2 = QHS.AppAnd(QHS.CmpEq("idupb", SelUPBDest.GetValue()), QHS.CmpEq("idfin", finRow["idfin"]));
            //DataRow[] rDett2 = dsMain.Tables["finvardetail"].Select(filtro2);
            //if (rDett2.Length > 0) {
            //    MessageBox.Show(this, "Non è possibile creare una ulteriore variazione con upb='" + txtUPBDest.Text
            //                                    + "' e bilancio='" + finRow["codefin"] + "'");
            //    DialogResult = DialogResult.None;
            //    return;
            //}

            MetaData metaFinVarDetail = MetaFinVar.Dispatcher.Get("finvardetail");
            DataRow  rFV = dsMain.Tables["finvar"].Rows[0];

            metaFinVarDetail.SetDefaults(dsMain.Tables["finvardetail"]);
            DataRow rFVD1 = metaFinVarDetail.Get_New_Row(rFV, dsMain.Tables["finvardetail"]);

            //DataRowView upb1 = (DataRowView)cmbUPB1.SelectedItem;
            //DataRowView upb2 = (DataRowView)cmbUPB2.SelectedItem;
            rFVD1["idupb"] = SelUPBSource.GetValue();
            if (underwritingRow != null)
            {
                rFVD1["idunderwriting"] = underwritingRow["idunderwriting"];
            }
            rFVD1["nvar"]   = rFV["nvar"];
            rFVD1["yvar"]   = rFV["yvar"];
            rFVD1["amount"] = -importo;
            if (txtDescrizione.Text != "")
            {
                rFVD1["description"] = txtDescrizione.Text;
            }

            //rFVD1["description"] = "storno da " + upb1.Row["codeupb"]; ;
            rFVD1["idfin"] = finRow["idfin"];
            DataRow rFVD2 = metaFinVarDetail.Get_New_Row(rFV, dsMain.Tables["finvardetail"]);

            rFVD2["idupb"] = SelUPBDest.GetValue();
            if (underwritingRow != null)
            {
                rFVD2["idunderwriting"] = underwritingRow["idunderwriting"];
            }
            rFVD2["nvar"]   = rFV["nvar"];
            rFVD2["yvar"]   = rFV["yvar"];
            rFVD2["amount"] = importo;
            //rFVD2["description"] = "storno a " + upb2.Row["codeupb"];
            rFVD2["idfin"] = finRow["idfin"];
            if (txtDescrizione.Text != "")
            {
                rFVD2["description"] = txtDescrizione.Text;
            }
        }
示例#5
0
        private void GeneraFile(bool Mandati)
        {
            DataRow rTesoriere = HelpForm.GetLastSelected(DS.treasurer);

            if (rTesoriere == null)
            {
                HelpForm.FocusControl(cmbIstitutoCassiere);
                MessageBox.Show(this, "Scegliere l'istituto cassiere");
                return;
            }
            string idbank = rTesoriere["idbank"].ToString();
            bool   res    = false;

            foreach (string s in new string[] { "03111", "03067", "01030", "02008", "01010" })
            {
                if (s == idbank)
                {
                    res = true;
                }
            }
            if (!res)
            {
                if (MessageBox.Show(
                        "Questa maschera non dovrebbe essere usata con il cassiere selezionato. Usare, invece, la maschera alla voce di menu Cassiere - Trasmissione e Importazione Distinte XML. " +
                        " Si desidera proseguire comunque l''elaborazione?", "Errore",
                        MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                {
                    return;
                }
            }

            string sp_export = Mandati ? rTesoriere["spexportexp"].ToString() : rTesoriere["spexportinc"].ToString();

            if (sp_export == "")
            {
                MessageBox.Show(this,
                                "Nella configurazione del tesoriere non è impostata la sp da chiamare per generare il file");
                return;
            }
            string flagMultiExp = rTesoriere["flagmultiexp"].ToString();
            int    da           = CfgFn.GetNoNullInt32(txtDa.Text);
            int    a            = CfgFn.GetNoNullInt32(txtA.Text);

            if (flagMultiExp == "S")
            {
                if (da == 0)
                {
                    HelpForm.FocusControl(txtDa);
                    MessageBox.Show(this, "Specificare il numero della prima distinta che si vuole trasmettere");
                    return;
                }
                if (a == 0)
                {
                    HelpForm.FocusControl(txtA);
                    MessageBox.Show(this, "Specificare il numero dell'ultima distinta che si vuole trasmettere");
                    return;
                }
            }
            else
            {
                if (da == 0)
                {
                    HelpForm.FocusControl(txtDa);
                    MessageBox.Show(this, "Specificare il numero della distinta che si vuole trasmettere");
                    return;
                }
            }
            // Controlla che il cassiere della/e distinta/e sia uguale a quello scelto nel combo.
            string Filter = "";

            if (Mandati)
            {
                if (flagMultiExp == "S")
                {
                    for (int i = da; i <= a; i++)
                    {
                        Filter = QHS.AppAnd(QHS.CmpEq("ypaymenttransmission", Meta.GetSys("esercizio")),
                                            QHS.CmpEq("npaymenttransmission", i));
                        object idtreasurer = Meta.Conn.DO_READ_VALUE("paymenttransmission", Filter, "idtreasurer");
                        if (idtreasurer == null)
                        {
                            MessageBox.Show(this,
                                            "La distinta n." + i.ToString() + " non è presente su db", "Errore");
                            return;
                        }
                        if (idtreasurer.ToString() != rTesoriere["idtreasurer"].ToString())
                        {
                            MessageBox.Show(this,
                                            "La distinta n." + i.ToString() + " ha un Cassiere diverso da quello selezionato!");
                            return;
                        }

                        object flagtransmissionenabled = Meta.Conn.DO_READ_VALUE("paymenttransmission", Filter,
                                                                                 "flagtransmissionenabled");
                        object cfgflagenabletransmission = Meta.Conn.DO_READ_VALUE("config",
                                                                                   QHS.CmpEq("ayear", Meta.GetSys("esercizio")), "flagenabletransmission");

                        if (cfgflagenabletransmission != DBNull.Value)
                        {
                            string cfg_flag = cfgflagenabletransmission.ToString().ToUpper();
                            if ((cfg_flag == "S") && (flagtransmissionenabled.ToString().ToUpper() != "S"))
                            {
                                MessageBox.Show(this, "La trasmissione della distinta non è stata autorizzata");
                                return;
                            }
                        }
                    }
                }
                else
                {
                    Filter = QHS.AppAnd(QHS.CmpEq("ypaymenttransmission", Meta.GetSys("esercizio")),
                                        QHS.CmpEq("npaymenttransmission", da));
                    object idtreasurer = Meta.Conn.DO_READ_VALUE("paymenttransmission", Filter, "idtreasurer");
                    if (idtreasurer == null)
                    {
                        MessageBox.Show(this,
                                        "La distinta n." + da.ToString() + " non è presente su db", "Errore");
                        return;
                    }
                    if (idtreasurer.ToString() != rTesoriere["idtreasurer"].ToString())
                    {
                        MessageBox.Show(this,
                                        "La distinta n." + da.ToString() + " ha un Cassiere diverso da quello selezionato!");
                        return;
                    }
                    object flagtransmissionenabled = Meta.Conn.DO_READ_VALUE("paymenttransmission", Filter,
                                                                             "flagtransmissionenabled");
                    object cfgflagenabletransmission = Meta.Conn.DO_READ_VALUE("config",
                                                                               QHS.CmpEq("ayear", Meta.GetSys("esercizio")), "flagenabletransmission");

                    if (cfgflagenabletransmission != DBNull.Value)
                    {
                        string cfg_flag = cfgflagenabletransmission.ToString().ToUpper();
                        if ((cfg_flag == "S") && (flagtransmissionenabled.ToString().ToUpper() != "S"))
                        {
                            MessageBox.Show(this, "La trasmissione della distinta non è stata autorizzata");
                            return;
                        }
                    }
                }
            }
            else
            {
                if (flagMultiExp == "S")
                {
                    for (int i = da; i <= a; i++)
                    {
                        Filter = QHS.AppAnd(QHS.CmpEq("yproceedstransmission", Meta.GetSys("esercizio")),
                                            QHS.CmpEq("nproceedstransmission", i));
                        object idtreasurer = Meta.Conn.DO_READ_VALUE("proceedstransmission", Filter, "idtreasurer");
                        if (idtreasurer == null)
                        {
                            MessageBox.Show(this,
                                            "La distinta n." + i.ToString() + " non è presente su db", "Errore");
                            return;
                        }
                        if (idtreasurer.ToString() != rTesoriere["idtreasurer"].ToString())
                        {
                            MessageBox.Show(this,
                                            "La distinta n." + i.ToString() + " ha un Cassiere diverso da quello selezionato!");
                            return;
                        }

                        object flagtransmissionenabled = Meta.Conn.DO_READ_VALUE("proceedstransmission", Filter,
                                                                                 "flagtransmissionenabled");
                        object cfgflagenabletransmission = Meta.Conn.DO_READ_VALUE("config",
                                                                                   QHS.CmpEq("ayear", Meta.GetSys("esercizio")), "flagenabletransmission");

                        if (cfgflagenabletransmission != DBNull.Value)
                        {
                            string cfg_flag = cfgflagenabletransmission.ToString().ToUpper();
                            if ((cfg_flag == "S") && (flagtransmissionenabled.ToString().ToUpper() != "S"))
                            {
                                MessageBox.Show(this, "La trasmissione della distinta non è stata autorizzata");
                                return;
                            }
                        }
                    }
                }
                else
                {
                    Filter = QHS.AppAnd(QHS.CmpEq("yproceedstransmission", Meta.GetSys("esercizio")),
                                        QHS.CmpEq("nproceedstransmission", da));
                    object idtreasurer = Meta.Conn.DO_READ_VALUE("proceedstransmission", Filter, "idtreasurer");
                    if (idtreasurer == null)
                    {
                        MessageBox.Show(this,
                                        "La distinta n." + da.ToString() + " non è presente su db", "Errore");
                        return;
                    }
                    if (idtreasurer.ToString() != rTesoriere["idtreasurer"].ToString())
                    {
                        MessageBox.Show(this,
                                        "La distinta n." + da.ToString() + " ha un Cassiere diverso da quello selezionato!");
                        return;
                    }
                    object flagtransmissionenabled = Meta.Conn.DO_READ_VALUE("proceedstransmission", Filter,
                                                                             "flagtransmissionenabled");
                    object cfgflagenabletransmission = Meta.Conn.DO_READ_VALUE("config",
                                                                               QHS.CmpEq("ayear", Meta.GetSys("esercizio")), "flagenabletransmission");

                    if (cfgflagenabletransmission != DBNull.Value)
                    {
                        string cfg_flag = cfgflagenabletransmission.ToString().ToUpper();
                        if ((cfg_flag == "S") && (flagtransmissionenabled.ToString().ToUpper() != "S"))
                        {
                            MessageBox.Show(this, "La trasmissione della distinta non è stata autorizzata");
                            return;
                        }
                    }
                }
            }

            object[] parametri = flagMultiExp == "S"
                ? new object[] { Meta.GetSys("esercizio"), da, a }
                : new object[] { Meta.GetSys("esercizio"), da };
            DataSet result = Meta.Conn.CallSP(sp_export, parametri, false, 300);

            if ((result == null) || (result.Tables.Count == 0))
            {
                MessageBox.Show(this, "La sp non ha restituito risultati");
                return;
            }
            DataTable t = result.Tables[0];

            dataGrid1.TableStyles.Clear();
            dataGrid1.DataSource = null;
            if (t.Columns.Contains("message"))
            {
                t.Columns["message"].Caption = "Spiegazione errore";
                HelpForm.SetDataGrid(dataGrid1, t);
                formatgrids FF = new formatgrids(dataGrid1);
                FF.AutosizeColumnWidth();
                MessageBox.Show(this, "Ci sono degli errori, pertanto non è stato generato il file!");
                return;
            }
            if (txtCartella.Text == "")
            {
                DialogResult dr = folderBrowserDialog1.ShowDialog(this);
                if (dr == DialogResult.OK)
                {
                    txtCartella.Text = folderBrowserDialog1.SelectedPath;
                }
                else
                {
                    folderBrowserDialog1.SelectedPath = txtCartella.Text;
                    HelpForm.FocusControl(txtCartella);
                    MessageBox.Show(this, "Specificare il percorso del file");
                    return;
                }
            }

            string nomeFile = Mandati
                ? Meta.GetSys("esercizio") + "_mandato" + "_" + da
                : Meta.GetSys("esercizio") + "_reversale" + "_" + da;

            if (flagMultiExp == "S")
            {
                if (da != a)
                {
                    nomeFile = Mandati
                        ? Meta.GetSys("esercizio") + "_mandati"
                        : Meta.GetSys("esercizio") + "_reversali";
                    for (int i = da; i <= a; i++)
                    {
                        nomeFile += "_" + i;
                    }
                }
            }
            txtFile.Text = Path.Combine(txtCartella.Text, nomeFile + "." + fileExtension);
            try {
                StreamWriter sw = new StreamWriter(txtFile.Text, false, Encoding.Default);
                foreach (DataRow r in t.Rows)
                {
                    sw.WriteLine(r[0]);
                }
                sw.Flush();
                sw.Close();
                sw.Dispose();
            }
            catch (Exception e1) {
                QueryCreator.ShowException("Errore nel salvataggio del file " + txtFile.Text, e1);
                return;
            }

            int year = CfgFn.GetNoNullInt32(Meta.GetSys("esercizio"));

            if (flagMultiExp == "S")
            {
                if (da != a)
                {
                    for (int i = da; i <= a; i++)
                    {
                        if (Mandati)
                        {
                            AggiornaStreamDate("PAYMENTTRANSMISSION", year, i);
                        }
                        else
                        {
                            AggiornaStreamDate("PROCEEDSTRANSMISSION", year, i);
                        }
                    }
                }
            }

            if (Mandati)
            {
                AggiornaStreamDate("PAYMENTTRANSMISSION", year, da);
            }
            else
            {
                AggiornaStreamDate("PROCEEDSTRANSMISSION", year, da);
            }

            MessageBox.Show(this, "File della trasmissione salvato in " + txtFile.Text);
        }
示例#6
0
        private void GeneraFileUltimaDistinta(bool Mandati)
        {
            DataRow rTesoriere = HelpForm.GetLastSelected(DS.treasurer);

            if (rTesoriere == null)
            {
                HelpForm.FocusControl(cmbIstitutoCassiere);
                MessageBox.Show(this, "Scegliere l'istituto cassiere");
                return;
            }
            string sp_export = Mandati ? rTesoriere["spexportexp"].ToString() : rTesoriere["spexportinc"].ToString();

            if (sp_export == "")
            {
                MessageBox.Show(this,
                                "Nella configurazione del tesoriere non è impostata la sp da chiamare per generare il file");
                return;
            }

            string Filter = "";
            int    nDoc   = 0;

            if (Mandati)
            {
                Filter = QHS.AppAnd(QHS.CmpEq("ypaymenttransmission", Meta.GetSys("esercizio")),
                                    QHS.CmpEq("idtreasurer", rTesoriere["idtreasurer"]));
                nDoc =
                    CfgFn.GetNoNullInt32(Meta.Conn.DO_READ_VALUE("paymenttransmission", Filter,
                                                                 "MAX(npaymenttransmission)"));
            }
            else
            {
                Filter = QHS.AppAnd(QHS.CmpEq("yproceedstransmission", Meta.GetSys("esercizio")),
                                    QHS.CmpEq("idtreasurer", rTesoriere["idtreasurer"]));
                nDoc =
                    CfgFn.GetNoNullInt32(Meta.Conn.DO_READ_VALUE("proceedstransmission", Filter,
                                                                 "MAX(nproceedstransmission)"));
            }
            if (nDoc == 0)
            {
                MessageBox.Show(this, "Non vi sono distinte.");
                return;
            }

            object[] parametri = new object[] { Meta.GetSys("esercizio"), nDoc };
            DataSet  result    = Meta.Conn.CallSP(sp_export, parametri, false, 300);

            if ((result == null) || (result.Tables.Count == 0))
            {
                MessageBox.Show(this, "La sp non ha restituito risultati");
                return;
            }
            DataTable t = result.Tables[0];

            dataGrid1.TableStyles.Clear();
            dataGrid1.DataSource = null;
            if (t.Columns.Contains("message"))
            {
                t.Columns["message"].Caption = "Spiegazione errore";
                HelpForm.SetDataGrid(dataGrid1, t);
                formatgrids FF = new formatgrids(dataGrid1);
                FF.AutosizeColumnWidth();
                MessageBox.Show(this, "Ci sono degli errori, pertanto non è stato generato il file!");
                return;
            }
            if (txtCartella.Text == "")
            {
                DialogResult dr = folderBrowserDialog1.ShowDialog(this);
                if (dr == DialogResult.OK)
                {
                    txtCartella.Text = folderBrowserDialog1.SelectedPath;
                }
                else
                {
                    folderBrowserDialog1.SelectedPath = txtCartella.Text;
                    HelpForm.FocusControl(txtCartella);
                    MessageBox.Show(this, "Specificare il percorso del file");
                    return;
                }
            }

            string nomeFile = Mandati
                ? Meta.GetSys("esercizio") + "_mandato" + "_" + nDoc
                : Meta.GetSys("esercizio") + "_reversale" + "_" + nDoc;

            txtFile.Text = Path.Combine(txtCartella.Text, nomeFile + "." + fileExtension);
            try {
                StreamWriter sw = new StreamWriter(txtFile.Text, false, Encoding.Default);
                foreach (DataRow r in t.Rows)
                {
                    sw.WriteLine(r[0]);
                }
                sw.Flush();
                sw.Close();
                sw.Dispose();
            }
            catch (Exception e1) {
                QueryCreator.ShowException("Errore nel salvataggio del file " + txtFile.Text, e1);
                return;
            }
            MessageBox.Show(this, "File della trasmissione salvato in " + txtFile.Text);
        }