예제 #1
0
        private void fAktas_Load(object sender, EventArgs e)
        {
            setupCombos();
            if (id == 0)
            {
                this.bindingSource.DataSource = null;
            }
            else
            {
                string sqlStr = string.Format("SELECT * FROM Aktai WHERE id={0}", id);
                try
                {
                    this.bindingSource.DataSource = DbHelper.FillDataTable(sqlStr);
                }
                catch (DbException)
                {
                    Msg.ErrorMsg(Messages.DbErrorMsg + " Darbas su programa neįmanomas.");
                    return;
                }
                populateData();

                if (makeSimilar)
                {
                    id                      = 0;
                    txbId.Text              = string.Empty;
                    txbAktasNr.Text         = string.Empty;
                    nudNelygumaiSonin.Value = 0;
                    nudNelygumaiVirs.Value  = 0;
                    txbAktasNr.Focus();
                }
            }
        }
 private DataTable createDataTable(string sqlstring)
 {
     // parsineša duomenis iš DB - id ir vietos kodo skaitmenis
     try
     {
         return(DbHelper.FillDataTable(sqlstring));
     }
     catch (DbException e)
     {
         Msg.ErrorMsg(Messages.DbErrorMsg);
         throw e;
     }
 }
예제 #3
0
        private void setupComboBox(
            ComboBox combo,
            string sqlSelectStatement,
            string displayMemberName,
            ColumnType displayMemberType,
            string valueMemberName,
            bool emptyrow)
        {
            DataTable dTable;

            try
            {
                dTable = DbHelper.FillDataTable(sqlSelectStatement);
            }
            catch (DbException)
            {
                Msg.ErrorMsg(Messages.DbErrorMsg);
                return;
            }

            if (emptyrow)
            {
                DataRow emptyRow = dTable.NewRow();
                if (displayMemberType == ColumnType.text)
                {
                    emptyRow[displayMemberName] = string.Empty;
                }
                else
                {
                    emptyRow[displayMemberName] = DBNull.Value;
                }
                emptyRow[valueMemberName] = DBNull.Value;
                dTable.Rows.InsertAt(emptyRow, 0);
            }
            combo.DataSource    = dTable;
            combo.DisplayMember = displayMemberName;
            combo.ValueMember   = valueMemberName;
            //combo.SelectedIndex = 1;
        }
예제 #4
0
        public fRequest(RequestScenario scenario, string[] texts)
        {
            InitializeComponent();
            this.scenarijus = scenario;
            switch (this.scenarijus)
            {
            case RequestScenario.text_textbox:
                this.txbText          = new System.Windows.Forms.TextBox();
                this.txbText.Location = new System.Drawing.Point(Settings.Default.requestBoxLocationX,
                                                                 Settings.Default.requestBoxLocationY);
                this.txbText.Name = "txbText";
                this.txbText.Size = new System.Drawing.Size(Settings.Default.requestStringTextBoxSizeX,
                                                            Settings.Default.requestStringTextBoxSizeY);
                this.txbText.TextAlign = HorizontalAlignment.Left;
                this.txbText.TabIndex  = 1;
                this.txbText.TabStop   = true;
                this.Controls.Add(this.txbText);
                break;

            case  RequestScenario.integer_combobox:
                this.cmbInt = new System.Windows.Forms.ComboBox();
                this.cmbInt.DropDownStyle     = System.Windows.Forms.ComboBoxStyle.DropDownList;
                this.cmbInt.FormattingEnabled = true;
                this.cmbInt.Location          = new System.Drawing.Point(Settings.Default.requestBoxLocationX,
                                                                         Settings.Default.requestBoxLocationY);
                this.cmbInt.Name = "cmbInt";
                this.cmbInt.Size = new System.Drawing.Size(Settings.Default.requestComboBoxSizeX,
                                                           Settings.Default.requestComboBoxSizeY);
                this.cmbInt.TabIndex = 1;
                this.cmbInt.TabStop  = true;
                this.Controls.Add(this.cmbInt);
                try
                {
                    this.cmbInt.DataSource = DbHelper.FillDataTable(texts[2]);
                }
                catch
                {
                    Msg.ErrorMsg(Messages.DbErrorMsg);
                    return;
                }
                this.cmbInt.ValueMember   = "valueMember";
                this.cmbInt.DisplayMember = "displayMember";
                break;

            case  RequestScenario.integer_textbox:
                this.txbText          = new System.Windows.Forms.TextBox();
                this.txbText.Location = new System.Drawing.Point(Settings.Default.requestBoxLocationX,
                                                                 Settings.Default.requestBoxLocationY);
                this.txbText.Name = "txbText";
                this.txbText.Size = new System.Drawing.Size(Settings.Default.requestIntTextBoxSizeX,
                                                            Settings.Default.requestIntTextBoxSizeY);
                this.txbText.TextAlign = HorizontalAlignment.Right;
                this.txbText.TabIndex  = 1;
                this.txbText.TabStop   = true;
                this.Controls.Add(this.txbText);
                break;
            }
            Program.pubString = string.Empty;
            Program.pubInt    = -1;
            this.Text         = texts[0];
            lblRequest.Text   = texts[1];
        }
        private List <AtaskaitosEilute> darytiAtaskaita(DateTime bottomDate, DateTime topDate)
        {
            DataTable suvirinimaiTable;

            string where = string.Empty;

            if (bottomDate == null && topDate != null)
            {
                where = string.Format("WHERE Aktai.aktas_data <= {0} ", DbHelper.FormatDateValue(topDate));
            }
            else if (bottomDate != null && topDate == null)
            {
                where = string.Format("WHERE Aktai.aktas_data >= {0} ", DbHelper.FormatDateValue(bottomDate));
            }
            else if (bottomDate != null && topDate != null)
            {
                if (bottomDate <= topDate)
                {
                    where = string.Format("WHERE Aktai.aktas_data >= {0} AND Aktai.aktas_data <= {1} ", DbHelper.FormatDateValue(bottomDate), DbHelper.FormatDateValue(topDate));
                }
                else
                {
                    where = string.Format("WHERE Aktai.aktas_data >= {0} OR Aktai.aktas_data <= {1} ", DbHelper.FormatDateValue(bottomDate), DbHelper.FormatDateValue(topDate));
                }
            }

            List <List <Suvirinimas> > sarasai = new List <List <Suvirinimas> >();
            StringBuilder sb = new StringBuilder("SELECT ");

            // sb.Append("Aktai.*, Suvirintojai.*, Operatoriai.*, PadaliniaiSuvirintoju.*, PadaliniaiKelininku.*, Vadovai.*, BegiuTipai.* ");
            sb.Append("Aktai.aktas_data, Aktai.aktas_padalinysId, ");
            sb.Append("Aktai.k11, Aktai.k12, Aktai.k21, Aktai.k22, Aktai.k23, Aktai.k24, Aktai.k31, Aktai.k32, Aktai.k41, Aktai.k42, Aktai.k51, ");
            sb.Append("Aktai.id, Aktai.aktas_Nr, Aktai.salyg_begioTemp, Aktai.begis_protarpisMm, ");
            sb.Append("PadaliniaiSuvirintoju.pavadinimas AS suvirintojo_įmonė, Suvirintojai.vardas AS suvirintojo_vardas, Suvirintojai.pazymNr AS suvirintojo_kodas, ");
            sb.Append("Operatoriai.vardas AS operatoriaus_vardas, Operatoriai.id AS operatoriaus_kodas, ");
            sb.Append("KMFilialo.vardas AS kelio_meistro_vardas, KMFilialo.meistrija AS kelio_meistro_meistrija, ");
            sb.Append("BegiuTipai.pavadinimas AS bėgio_tipas ");
            sb.Append("FROM ");
            sb.Append("((((Aktai LEFT JOIN PadaliniaiSuvirintoju ON Aktai.suvirint_padalinysId=PadaliniaiSuvirintoju.id) ");
            sb.Append("LEFT JOIN Suvirintojai ON Aktai.suvirint_suvirintojasId=Suvirintojai.id) ");
            sb.Append("LEFT JOIN Operatoriai ON Aktai.tikrin_operatoriusId=Operatoriai.id) ");
            sb.Append("LEFT JOIN KMFilialo ON Aktai.aktas_pasiraseKMId=KMFilialo.id) ");
            sb.Append("LEFT JOIN BegiuTipai ON Aktai.begis_tipasId=BegiuTipai.id ");
            sb.Append("{0}");
            sb.Append("ORDER BY Aktai.aktas_data, Aktai.aktas_padalinysId, Aktai.k11, Aktai.k12, Aktai.k21, Aktai.k22, Aktai.k23, Aktai.k24, Aktai.k31, Aktai.k32, Aktai.k41, Aktai.k42, Aktai.k51;");
            string suvirinimaiSql = sb.ToString();

            suvirinimaiTable = new DataTable();
            try
            {
                suvirinimaiTable = DbHelper.FillDataTable(string.Format(suvirinimaiSql, where));
            }
            catch (DbException e)
            {
                Msg.ErrorMsg(Messages.DbErrorMsg);
                throw e;
            }
            List <AtaskaitosEilute> ataskaita = new List <AtaskaitosEilute>();

            if (suvirinimaiTable.Rows.Count == 0)
            {
                return(ataskaita);
            }


            // Kartojasi veiksmas - kaskart, kai gaminama nauja ataskaita.
            // Bet taip pat tai leidžia pakeisti lgif.xml failą neuždarius programos.
            LGIF.loadData(obtainLgifxmlFileName());

            // Imama pirmoji iš DB partempta eilutė, ji tampa cmpRow
            // ir lyginama su toliau einančiomis.
            // Kiek laukų lyginti, nustatoma pagal k21 reikšmę:
            // jeigu k21 yra 9, lyginama 10 laukų, t.y. vietos kodas imamas iki k32 imtinai,
            // jeigu k21 nėra 9, lyginami 8 laukai, t.y. vietos kodas imamas iki k42 imtinai.
            // Panašios eilutės grupuojamos į grupeSuvirinimu.
            // Kada randama nebetinkama eilutė, grupeSuvirinimu įrašoma į sarasai,
            // pradedama nauja grupeSuvirinimu, paskutinioji (netikusi) eilutė tampa ta, su kuria
            // lyginamos visos toliau einančios, t.y. cmpRow,
            // ir ji lyginama su toliau einančiomis.
            // Resultatas - List sarasai, kuris sudarytas iš List<suvirinimaiTable.Row>
            DataRow            cmpRow          = suvirinimaiTable.Rows[0];
            int                kiekLyginti     = kiek(cmpRow);
            List <Suvirinimas> grupeSuvirinimu = new List <Suvirinimas>();

            grupeSuvirinimu.Add(new Suvirinimas(suvirinimaiTable.Rows[0]));

            // suvirinimai suskirstomi į grupes pagal [data + kas virino + vieta]
            for (int r = 1; r < suvirinimaiTable.Rows.Count; r++)
            {
                if (lygiosEilutės(cmpRow, suvirinimaiTable.Rows[r], kiekLyginti))
                {
                    grupeSuvirinimu.Add(new Suvirinimas(suvirinimaiTable.Rows[r]));
                }
                else
                {
                    sarasai.Add(grupeSuvirinimu);
                    grupeSuvirinimu = new List <Suvirinimas>();
                    grupeSuvirinimu.Add(new Suvirinimas(suvirinimaiTable.Rows[r]));
                    cmpRow      = suvirinimaiTable.Rows[r];
                    kiekLyginti = kiek(cmpRow);
                }
            }
            if (grupeSuvirinimu.Count != 0)
            {
                sarasai.Add(grupeSuvirinimu);
            }

            // iš kiekvienos suvirinimų grupės padaroma viena ataskaitos eilute ir pridedama prie ataskaitos
            foreach (List <Suvirinimas> suvirinimuGrupe in sarasai)
            {
                try
                {
                    ataskaita.Add(new AtaskaitosEilute(suvirinimuGrupe));
                }
                catch (Exception e)
                {
                    List <Suvirinimas> weldingGroup = suvirinimuGrupe;
                    Msg.ErrorMsg(e.Message);
                }
            }
            return(ataskaita);
        }
        private void tsmiGamintiAktusDoc_Click(object sender, EventArgs e)
        {
            // patikrinti, ar parinkta eilučių
            // patikrinti, ar yra šablonas
            // parinkti outputfolder
            // iš parinktų eilučių surinkti id
            // pagal turimus id užpildyti datatable
            // pasiruošti gaminti aktus:
            // užkrauti infrastruktūros duomenis LGIF (VietosKodasClasses.cs)
            // sukurti Logger objektą ir log failą output aplanke (Logger.cs)
            // paleisti formą su progressbaru
            // iš kiekvienos datatable eilutės
            // sukonstruoti failo vardą (reikėtų nukelti į vėliau, kai bus žinoma vieta
            // iš DataRow gaminti Dictionary<string, string>
            // iš Dictionary<string, string> gaminti .doc failą
            // įrašyti į duombazę, kad failas sukurtas // nereikia
            // įraštyti į log failą apie sukūrimą
            // jeigu nesėkmingai
            // log failą įrašyti nesėkmę ir jos priežastį
            // bet kokiu atveju
            // padidinti progressbaro užpildymą
            // išmesti pranešimą, kiek užsakyta ir kiek pagaminta

            // patikrinti, ar parinkta eilučių
            int selected = dgvAktai.SelectedRows.Count;

            if (selected == 0)
            {
                Msg.InformationMsg("Aktai gaminami iš parinktų eilučių.");
                return;
            }

            // patikrinti, ar yra šablono failas
            object docTemplateFileName;

            try
            {
                docTemplateFileName = obtainAktasdotFileName();
            }
            catch
            {
                Msg.ErrorMsg(Settings.Default.DotTemplateFileNotChosenError);
                return;
            }

            // parinkti outputfolder
            string outputFolder = getOutputDirectoryName();

            if (outputFolder == "***")
            {
                return;
            }

            // iš parinktų eilučių surinkti id ir pagaminti WHERE sąlygą SQL užklausai
            List <string> selectedIds = new List <string>();

            foreach (DataGridViewRow rw in dgvAktai.SelectedRows)
            {
                selectedIds.Add(rw.Cells["id"].Value.ToString());
            }
            string whereCondition = string.Format("Aktai.id IN ({0})", string.Join(", ", selectedIds));

            // pagal turimus id užpildyti datatable
            string sqlSt = "SELECT ";

            sqlSt += "Aktai.id, Aktai.aktas_Nr, Aktai.aktas_data, ";
            sqlSt += "Aktai.k11, Aktai.k12, Aktai.k21, Aktai.k22, Aktai.k23, Aktai.k24, Aktai.k31, Aktai.k32, Aktai.k41, Aktai.k42, Aktai.k51, ";
            sqlSt += "Aktai.begis_protarpisMm, Aktai.medz_formaGamMetai, Aktai.medz_misinGamMetai, Aktai.medz_misinPartNr, Aktai.medz_misinPorcNr, ";
            sqlSt += "Aktai.salyg_arSausa, Aktai.salyg_oroTemp, Aktai.salyg_begioTemp, ";
            sqlSt += "Aktai.tikrin_nelygumaiVirsausMm, Aktai.tikrin_nelygumaiSonoMm, Aktai.tikrin_arDefektas, Aktai.tikrin_defKodas, Aktai.tikrin_sanduruCharakter, ";
            sqlSt += "Padaliniai.oficPavadinimas AS padalinys, Padaliniai.arRangovas, PadaliniaiSuvirintoju.pavadinimas AS virino_padalinys, ";
            sqlSt += "PadaliniaiKelininku.pavadinimas AS sutvarke_padalinys, Suvirintojai.vardas AS suvirintojas, Suvirintojai.pazymNr AS suvirintojas_kodas, ";
            sqlSt += "Operatoriai.id AS operatorius_kodas, Operatoriai.vardas AS operatorius, ";
            sqlSt += "Vadovai.vardas AS sutvarke_vadovas, Vadovai.pareigos AS sutvarke_vadovasPareigos, ";
            sqlSt += "Defektoskopai.id AS df_kodas, Defektoskopai.gamyklNr AS df_nr, Defektoskopai.tipas AS df_tipas, ";
            sqlSt += "BegiuTipai.pavadinimas AS begio_tipas, Misiniai.pavadinimas AS misinys, ";
            sqlSt += "KMFilialo.vardas AS KM_vardas ";
            sqlSt += "FROM ";
            sqlSt += "(((((((((Aktai LEFT JOIN Padaliniai ON Aktai.aktas_padalinysId=Padaliniai.id) ";
            sqlSt += "LEFT JOIN PadaliniaiSuvirintoju ON Aktai.suvirint_padalinysId=PadaliniaiSuvirintoju.id) ";
            sqlSt += "LEFT JOIN PadaliniaiKelininku ON Aktai.sutvark_padalinysId=PadaliniaiKelininku.id) ";
            sqlSt += "LEFT JOIN Suvirintojai ON Aktai.suvirint_suvirintojasId=Suvirintojai.id) ";
            sqlSt += "LEFT JOIN Operatoriai ON Aktai.tikrin_operatoriusId=Operatoriai.id) ";
            sqlSt += "LEFT JOIN Defektoskopai ON Aktai.tikrin_defektoskopasId=Defektoskopai.id) ";
            sqlSt += "LEFT JOIN Vadovai ON Aktai.sutvark_vadovasId=Vadovai.id) ";
            sqlSt += "LEFT JOIN BegiuTipai ON Aktai.begis_tipasId=BegiuTipai.id) ";
            sqlSt += "LEFT JOIN Misiniai ON Aktai.medz_misinKodasId=Misiniai.id) ";
            sqlSt += "LEFT JOIN KMFilialo ON Aktai.aktas_pasiraseKMId=KMFilialo.id ";
            sqlSt += "WHERE " + whereCondition;
            sqlSt += "ORDER BY Aktai.id;";
            DataTable tableAktai;

            try
            {
                tableAktai = DbHelper.FillDataTable(sqlSt);
            }
            catch (DbException)
            {
                Msg.ErrorMsg(Messages.DbErrorMsg);
                return;
            }

            // pasiruošti gaminti aktus:
            Dictionary <string, string> aktoDuomenys;

            //užkrauti infrastruktūros duomenis LGIF
            LGIF.loadData(obtainLgifxmlFileName());

            //sukurti Logger objektą ir log failą output aplanke
            Logger logger = new Logger(Path.Combine(outputFolder, "log.txt"));

            logger.Open();
            // parodyti progressbar
            lblStatus.Visible = lblStatusFilter.Visible = false;
            int created = 0;

            progressbar.Visible = true;
            progressbar.Value   = created;
            progressbar.Maximum = selected;
            string fileExtension = "doc";

            // paleidžiama word programa
            Word._Application wordApp = new Word.Application();
            wordApp.Visible = false;
            string outputFileName = "phony";

            foreach (DataRow dr in tableAktai.Rows)
            {
                try
                {
                    // sukonstruoti failo vardą (reikėtų nukelti į vėliau, kai bus žinoma vieta
                    outputFileName = Path.Combine(outputFolder, string.Format("{0} {1} {2} {3}.{4}",
                                                                              Settings.Default.AktasOutputFileNamePrefix,
                                                                              dr["id"],
                                                                              dr["aktas_Nr"],
                                                                              Convert.ToDateTime(dr["aktas_data"]).ToString("yyyyMMdd"),
                                                                              fileExtension));

                    // iš DataRow gaminti XmlDocument
                    aktoDuomenys = generateDicByDataRow(dr);
                    // iš XmlDocument gaminti .doc failą
                    createAndSaveAktasDoc(wordApp, aktoDuomenys, outputFileName, docTemplateFileName);
                    // įrašyti į duombazę, kad failas sukurtas
                    //DbHelper.ExecuteNonQuery(string.Format("UPDATE Aktai SET aktas_arAtspausdintas=True WHERE id={0};", dr["id"]));
                    // įraštyti į log failą apie sukūrimą
                    logger.Log(string.Format("sukurtas failas {0}", Path.GetFileName(outputFileName)));
                }
                catch (Exception exc)
                {
                    // log failą įrašyti nesėkmę ir jos priežastį
                    logger.Log(string.Format("nepavyko sukurti failo {0}, priežastis: {1}", Path.GetFileName(outputFileName), exc.Message));
                    continue;
                }
                finally
                {
                    // padidinti progressbaro užpildymą
                    created++;
                    progressbar.Value = created;
                }
            }
            object dontSaveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
            object missing         = System.Reflection.Missing.Value;

            wordApp.Quit(ref dontSaveChanges, ref missing, ref missing);
            wordApp = null;
            logger.Close();
            progressbar.Visible = false;
            progressbar.Value   = 0;
            lblStatus.Visible   = lblStatusFilter.Visible = true;
            Msg.InformationMsg("Aktai sukurti, išsaugoti.");
        }
        private void doRowsExport(List <string> indices)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Title       = "Išsaugoti failą";
            sfd.Filter      = "xml|*.xml|csv|*.csv";
            sfd.DefaultExt  = "csv";
            sfd.FileName    = Settings.Default.RowsExportFileName;
            sfd.FilterIndex = Settings.Default.RowsExportFileDialogFilerIndex;
            if (sfd.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            DataTable tblExport;

            if (indices.Count == 0)
            {
                return;
            }

            string where = string.Join(" OR ", indices);
            string big_query = @"SELECT 
Aktai.id AS Akto_ID, 
Aktai.aktas_Nr AS Akto_Nr, 
Aktai.aktas_data AS Akto_Data,
Aktai.k11 & Aktai.k12 & '.' & Aktai.k21 & Aktai.k22 & Aktai.k23 & Aktai.k24 & '.' & Aktai.k31 & Aktai.k32 & '.' & Aktai.k41 & Aktai.k42 & '.' & Aktai.k51 AS Vietos_kodas,
Padaliniai.pavadinimas AS Suvirinusio_padalinio_pavadinimas,
Padaliniai.oficPavadinimas AS Suvirinusio_padalinio_pilnas_pavadinimas,
Padaliniai.arRangovas AS Ar_suvirino_rangovas,
Aktai.aktas_padalinysId AS Suvirinusio_padalinio_ID,
Suvirintojai.vardas AS Suvirintojo_vardas,
Suvirintojai.pazymNr AS Suvirintojo_pažymėjimo_Nr,
Aktai.suvirint_suvirintojasId AS Suvirintojo_ID,
PadaliniaiSuvirintoju.pavadinimas AS Suvirintojo_padalinio_pavadinimas,
PadaliniaiSuvirintoju.oficPavadinimas AS Suvirintojo_padalinio_oficialus_pavadinimas, 
Aktai.suvirint_padalinysId AS Suvirintojo_įmonės_arba_padalinio_ID, 
Vadovai.vardas AS Suvirinimo_vietą_sutvarkiusios_brigados_vadovo_vardas,
Vadovai.pareigos AS Suvirinimo_vietą_sutvarkiusios_brigados_vadovo_pareigos,
Aktai.sutvark_vadovasId AS Suvirinimo_vietą_sutvarkiusios_brigados_vadovo_ID,
PadaliniaiKelininku.pavadinimas AS Suvirinimo_vietą_sutvarkiusios_brigados_pavadinimas,
PadaliniaiKelininku.oficPavadinimas AS Suvirinimo_vietą_sutvarkiusios_brigados_oficialus_pavadinimas,
Aktai.sutvark_padalinysId AS Suvirinimo_vietą_sutvarkiusios_brigados_ID, 
Operatoriai.vardas AS Operatoriaus_vardas,
Aktai.tikrin_operatoriusId AS Operatoriaus_kodas,
Aktai.tikrin_defektoskopasId AS Defektoskopo_kodas, 
Defektoskopai.gamyklNr AS Defektoskopo_gamyklinis_Nr,
Defektoskopai.tipas AS Defektoskopo_tipas,
BegiuTipai.pavadinimas AS Bėgio_tipas,
Aktai.begis_tipasID AS Bėgio_tipo_ID,
Aktai.begis_protarpisMm AS Protarpis_mm,
Aktai.medz_formaGamMetai AS Suvirinimo_formos_gam_metai, 
Aktai.medz_misinGamMetai AS Suvirinimo_mišinio_gam_metai, 
Aktai.medz_misinKodasId AS Suvirinimo_mišinio_ID,
Misiniai.pavadinimas AS Suvirinimo_mišinio_pavadinimas, 
Aktai.medz_misinPartNr AS Suvirinimo_mišinio_partijos_Nr, 
Aktai.medz_misinPorcNr AS Suvirinimo_mišinio_porcijos_Nr, 
Aktai.salyg_arSausa AS Ar_sausa, 
Aktai.salyg_oroTemp AS Oro_temperatūra, 
Aktai.salyg_begioTemp AS Bėgio_temperatūra, 
Aktai.tikrin_nelygumaiVirsausMm AS Suvirintos_vietos_viršaus_nelygumai_mm, 
Aktai.tikrin_nelygumaiSonoMm AS Suvirintos_vietos_šono_nelygumai_mm,
Aktai.tikrin_arDefektas AS Ar_nustatytas_defektas, 
Aktai.tikrin_defKodas AS Defekto_kodas, 
Aktai.tikrin_sanduruCharakter AS Suvirinimo_sandūros_charakteristika, 
Aktai.aktas_arUzbaigtas AS Ar_aktas_užbaigtas, 
Aktai.aktas_trukumai AS Akto_trūkumai,
Aktai.aktas_pasiraseKMId AS Pasirašiusio_filialo_KM_ID,
KMFilialo.vardas AS Filialo_KM_vardas,
KMFilialo.meistrija AS Filialo_meistrija
FROM ((((((((((Aktai 
LEFT JOIN Padaliniai ON Aktai.aktas_padalinysId = Padaliniai.id)
LEFT JOIN Suvirintojai ON Aktai.suvirint_suvirintojasId = Suvirintojai.id)
LEFT JOIN PadaliniaiSuvirintoju ON Aktai.suvirint_padalinysId = PadaliniaiSuvirintoju.id)
LEFT JOIN Vadovai ON Aktai.sutvark_vadovasId = Vadovai.id)
LEFT JOIN PadaliniaiKelininku ON Aktai.sutvark_padalinysId = PadaliniaiKelininku.id)
LEFT JOIN Operatoriai ON Aktai.tikrin_operatoriusID = Operatoriai.id)
LEFT JOIN Defektoskopai ON Aktai.tikrin_defektoskopasID = Defektoskopai.id)
LEFT JOIN BegiuTipai ON Aktai.begis_tipasID = BegiuTipai.id)
LEFT JOIN Misiniai ON Aktai.medz_misinKodasId = Misiniai.id)
LEFT JOIN KMFilialo ON Aktai.aktas_pasiraseKMId = KMFilialo.id)";

            try
            {
                // tblExport = DbHelper.FillDataTable("SELECT * FROM Aktai WHERE " + where);
                tblExport = DbHelper.FillDataTable(big_query + " WHERE " + where);
            }
            catch (DbException)
            {
                Msg.ErrorMsg(Messages.DbErrorMsg);
                return;
            }

            tblExport.TableName = "Aktai";



            try
            {
                switch (sfd.FilterIndex)
                {
                case 1:
                    tblExport.WriteXml(sfd.FileName);
                    break;

                default:
                    System.IO.StreamWriter file = new System.IO.StreamWriter(sfd.FileName);
                    file.WriteLine(DataTableToCsv(tblExport));
                    file.Close();
                    break;
                }
            }
            catch (Exception sudas)
            {
                Msg.ErrorMsg("Ekportas nepavyko. Priežastis: " + sudas.Message);
                return;
            }
            Msg.InformationMsg(string.Format("Eksportuota sėkmingai {0} įraš., į failą {1}.", indices.Count, sfd.FileName));
        }