Esempio n. 1
0
        protected void OnOpenActionActivated(object sender, EventArgs e)
        {
            FileChooserDialog Chooser = new FileChooserDialog("Выберите файл шаблона распознования...",
                                                              this,
                                                              FileChooserAction.Open,
                                                              "Отмена", ResponseType.Cancel,
                                                              "Открыть", ResponseType.Accept);

            FileFilter Filter = new FileFilter();

            Filter.AddMimeType("text/xml");
            Filter.AddPattern("*.xml");
            Filter.Name = "xml";
            Chooser.AddFilter(Filter);

            if ((ResponseType)Chooser.Run() == ResponseType.Accept)
            {
                Chooser.Hide();
                FileStream fs = new FileStream(Chooser.Filename, FileMode.Open, FileAccess.Read);
                //FIXME Обработать ошибки загрузки.
                DocTemplate = RecognizeTemplate.Load(fs);
                fs.Close();
                labelTemplateName.LabelProp = DocTemplate.Name;
                DocTemplate.DocTypeId       = TypeId;
            }
            Chooser.Destroy();
        }
Esempio n. 2
0
        public void GetDocumentInformationByTypeName()
        {
            QSMain.CheckConnectionAlive();
            logger.Info("Запрос типа документа " + TypeName + "...");
            string sql = "SELECT doc_types.* FROM doc_types " +
                         "WHERE doc_types.type_name = @type_name LIMIT 1";
            MySqlDataReader rdr = null;

            try {
                MySqlCommand cmd = new MySqlCommand(sql, QSMain.connectionDB);
                cmd.Parameters.AddWithValue("@type_name", TypeName);
                rdr = cmd.ExecuteReader();

                if (!rdr.Read())
                {
                    return;
                }

                TypeId = rdr.GetInt32("id");

                Name = rdr["name"].ToString();
                if (rdr["table_name"] == DBNull.Value)
                {
                    DBTableExsist = false;
                }
                else
                {
                    DBTableName   = rdr["table_name"].ToString();
                    DBTableExsist = true;
                }

                if (rdr["description"] != DBNull.Value)
                {
                    Description = rdr.GetString("description");
                }

                if (rdr["template"] != DBNull.Value)
                {
                    string str = rdr.GetString("template");
                    Template = RecognizeTemplate.Load(str);
                }

                rdr.Close();
                logger.Info("Ok");
            } catch (Exception ex) {
                logger.Warn(ex, "Ошибка получения информации о типе документа!");
            }
            finally{
                rdr?.Close();
            }
        }
Esempio n. 3
0
        protected void OnRecognizeActionActivated(object sender, EventArgs e)
        {
            if (DocTemplate == null)
            {
                DocTemplate = new RecognizeTemplate();
                labelTemplateName.LabelProp = "Новый";
                //Дефолтный шаблон штрих код.
                DocTemplate.Name         = "УПД-Штрихкод";
                DocTemplate.BarCodeRules = new BarCodeRule[] {
                    new BarCodeDateNumberRule()
                    {
                        Box = new RelationalRectangle(0.509090909, 0, 0.294456763, 0.134796238)
                    }
                };

                //Дефолтный шаблон Tess

/*				DocTemplate.Name = "Торг12-тест";
 *                              RecognazeRule testrule = new RecognazeRule();
 *                              testrule.Box = new RelationalRectangle(0.357468643, 0.321774194, 0.088939567, 0.026612903);
 *                              DocTemplate.NumberRule = testrule;
 *
 *                              testrule = new RecognazeRule();
 *                              testrule.Box = new RelationalRectangle(0.444412771, 0.323387097, 0.08608894, 0.021774194);
 *                              DocTemplate.DateRule = testrule;
 *
 *                              TextMarker Marker = new TextMarker();
 *                              Marker.Text = "ТОВАРНАЯ НАКЛАДНАЯ";
 *                              Marker.PatternPosX = 0.206100342;
 *                              Marker.PatternPosY = 0.324193548;
 *                              Marker.Zone = new RelationalRectangle(0.181299886, 0.292741935, 0.196693273, 0.12);
 *                              DocTemplate.Markers = new TextMarker[]{Marker};
 */         }
            else
            {
                DocTemplate.NumberRule = new RecognazeRule();
                DocTemplate.NumberRule.NextAfterTextMarker = true;
                DocTemplate.NumberRule.ShiftWordsCount     = 2;
                DocTemplate.DateRule = new RecognazeRule();
                DocTemplate.DateRule.NextAfterTextMarker = true;
                DocTemplate.DateRule.ShiftWordsCount     = 4;
            }
            //FIXME Открыть диалог настройки шаблона.
        }
Esempio n. 4
0
        public void Fill(int id)
        {
            NewDocsType = false;

            logger.Info("Запрос типа документа №" + id +"...");
            string sql = "SELECT doc_types.* FROM doc_types " +
                    "WHERE doc_types.id = @id";
            QSMain.CheckConnectionAlive();
            try
            {
                MySqlCommand cmd = new MySqlCommand(sql, QSMain.connectionDB);
                cmd.Parameters.AddWithValue("@id", id);
                MySqlDataReader rdr = cmd.ExecuteReader();

                if(!rdr.Read())
                    return;

                TypeId = rdr.GetInt32 ("id");
                entryID.Text = rdr["id"].ToString();
                entryName.Text = rdr["name"].ToString ();
                if(rdr["table_name"] == DBNull.Value)
                    ExtraTableCreated = false;
                else
                {
                    entryDBTable.Text = rdr["table_name"].ToString ();
                    OriginalTableName = rdr["table_name"].ToString ();
                    ExtraTableCreated = true;
                }
                if(rdr["description"] != DBNull.Value)
                    textviewDescription.Buffer.Text = rdr.GetString ("description");

                if(rdr["template"] != DBNull.Value)
                {
                    string str = rdr.GetString("template");
                    DocTemplate = RecognizeTemplate.Load(str);
                    labelTemplateName.LabelProp = DocTemplate.Name;
                }

                rdr.Close();

                this.Title = entryName.Text;

                UpdateFields ();
                logger.Info("Ok");
            }
            catch (Exception ex)
            {
                QSMain.ErrorMessageWithLog(this, "Ошибка получения информации о типах документов!", logger, ex);
            }

            TestCanSave();
            OnTreeviewFieldsCursorChanged(null, null);
        }
Esempio n. 5
0
        protected void OnRecognizeActionActivated(object sender, EventArgs e)
        {
            if(DocTemplate == null)
            {
                DocTemplate = new RecognizeTemplate();
                labelTemplateName.LabelProp = "Новый";
                //Дефолтный шаблон штрих код.
                DocTemplate.Name = "УПД-Штрихкод";
                DocTemplate.BarCodeRules = new BarCodeRule[]{
                    new BarCodeDateNumberRule() {
                        Box = new RelationalRectangle(0.509090909, 0, 0.294456763, 0.134796238)
                    }
                };

                //Дефолтный шаблон Tess
            /*				DocTemplate.Name = "Торг12-тест";
                RecognazeRule testrule = new RecognazeRule();
                testrule.Box = new RelationalRectangle(0.357468643, 0.321774194, 0.088939567, 0.026612903);
                DocTemplate.NumberRule = testrule;

                testrule = new RecognazeRule();
                testrule.Box = new RelationalRectangle(0.444412771, 0.323387097, 0.08608894, 0.021774194);
                DocTemplate.DateRule = testrule;

                TextMarker Marker = new TextMarker();
                Marker.Text = "ТОВАРНАЯ НАКЛАДНАЯ";
                Marker.PatternPosX = 0.206100342;
                Marker.PatternPosY = 0.324193548;
                Marker.Zone = new RelationalRectangle(0.181299886, 0.292741935, 0.196693273, 0.12);
                DocTemplate.Markers = new TextMarker[]{Marker};
            */			}
            //FIXME Открыть диалог настройки шаблона.
        }
Esempio n. 6
0
        protected void OnOpenActionActivated(object sender, EventArgs e)
        {
            FileChooserDialog Chooser = new FileChooserDialog("Выберите файл шаблона распознования...",
                                                              this,
                                                              FileChooserAction.Open,
                                                              "Отмена", ResponseType.Cancel,
                                                              "Открыть", ResponseType.Accept );

            FileFilter Filter = new FileFilter();
            Filter.AddMimeType("text/xml");
            Filter.Name = "xml";
            Chooser.AddFilter(Filter);

            if((ResponseType) Chooser.Run () == ResponseType.Accept)
            {
                Chooser.Hide();
                FileStream fs = new FileStream(Chooser.Filename, FileMode.Open, FileAccess.Read);
                //FIXME Обработать ошибки загрузки.
                DocTemplate = RecognizeTemplate.Load(fs);
                fs.Close();
                labelTemplateName.LabelProp = DocTemplate.Name;
                DocTemplate.DocTypeId = TypeId;
            }
            Chooser.Destroy();
        }
Esempio n. 7
0
 protected void OnClearActionActivated(object sender, EventArgs e)
 {
     DocTemplate = null;
     labelTemplateName.LabelProp = "Отсутствует";
 }
Esempio n. 8
0
        protected void OnRecognizeActionActivated(object sender, EventArgs e)
        {
            if(DocTemplate == null)
            {
                DocTemplate = new RecognizeTemplate();
                labelTemplateName.LabelProp = "Новый";
                //FIXME Убрать тестовый документ
                DocTemplate.Name = "Торг12-тест";
                RecognazeRule testrule = new RecognazeRule();
                testrule.Box = new RelationalRectangle(0.357468643, 0.321774194, 0.088939567, 0.026612903);
                DocTemplate.NumberRule = testrule;

                testrule = new RecognazeRule();
                testrule.Box = new RelationalRectangle(0.444412771, 0.323387097, 0.08608894, 0.021774194);
                DocTemplate.DateRule = testrule;

                TextMarker Marker = new TextMarker();
                Marker.Text = "ТОВАРНАЯ НАКЛАДНАЯ";
                Marker.PatternPosX = 0.206100342;
                Marker.PatternPosY = 0.324193548;
                Marker.Zone = new RelationalRectangle(0.181299886, 0.292741935, 0.196693273, 0.12);
                DocTemplate.Markers = new TextMarker[]{Marker};
            }
            //FIXME Открыть диалог настройки шаблона.
        }
Esempio n. 9
0
        public void Fill(int id)
        {
            NewDocsType = false;

            logger.Info("Запрос типа документа №" + id + "...");
            string sql = "SELECT doc_types.* FROM doc_types " +
                         "WHERE doc_types.id = @id";

            QSMain.CheckConnectionAlive();
            try
            {
                MySqlCommand cmd = new MySqlCommand(sql, QSMain.connectionDB);
                cmd.Parameters.AddWithValue("@id", id);
                MySqlDataReader rdr = cmd.ExecuteReader();

                if (!rdr.Read())
                {
                    return;
                }

                TypeId         = rdr.GetInt32("id");
                entryID.Text   = rdr["id"].ToString();
                entryName.Text = rdr["name"].ToString();
                if (rdr["type_name"] != DBNull.Value)
                {
                    entryType.Text = rdr["type_name"].ToString();
                }
                if (rdr["table_name"] == DBNull.Value)
                {
                    ExtraTableCreated = false;
                }
                else
                {
                    entryDBTable.Text = rdr["table_name"].ToString();
                    OriginalTableName = rdr["table_name"].ToString();
                    ExtraTableCreated = true;
                }
                if (rdr["description"] != DBNull.Value)
                {
                    textviewDescription.Buffer.Text = rdr.GetString("description");
                }

                if (rdr["template"] != DBNull.Value)
                {
                    string str = rdr.GetString("template");
                    DocTemplate = RecognizeTemplate.Load(str);
                    labelTemplateName.LabelProp = DocTemplate.Name;
                }

                rdr.Close();

                this.Title = entryName.Text;

                UpdateFields();
                logger.Info("Ok");
            }
            catch (Exception ex)
            {
                QSMain.ErrorMessageWithLog(this, "Ошибка получения информации о типах документов!", logger, ex);
            }

            TestCanSave();
            OnTreeviewFieldsCursorChanged(null, null);
        }
Esempio n. 10
0
 protected void OnClearActionActivated(object sender, EventArgs e)
 {
     DocTemplate = null;
     labelTemplateName.LabelProp = "Отсутствует";
 }