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(); }
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(); } }
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 Открыть диалог настройки шаблона. }
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); }
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 Открыть диалог настройки шаблона. }
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(); }
protected void OnClearActionActivated(object sender, EventArgs e) { DocTemplate = null; labelTemplateName.LabelProp = "Отсутствует"; }
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 Открыть диалог настройки шаблона. }
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); }