IncADataDB.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Diagnostics;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. using OTSCLRINTERFACE;
  11. using OTSDataType;
  12. using OTSModelSharp.DTLBase;
  13. namespace OTSModelSharp
  14. {
  15. public class CIncADataDB : CSQLiteDB
  16. {
  17. public CIncADataDB(IDBStoreBase _conStr, IDBTableBase _table) : base(_conStr, _table)
  18. {
  19. }
  20. public bool UpdataAIncA(COTSParticleClr a_pParticle)
  21. {
  22. if (a_pParticle == null)
  23. {
  24. return false;
  25. }
  26. var datastorePtr = GetDatastore();
  27. string sSQLCommand = "Update IncAData set AveGray = {0},Area ={1},IncAId={2} where FieldID = {3} and ParticleId = {4} "; //sSQLCommand.Format(sSQLCommand,a_pParticle->GetAveGray(),a_pParticle->GetArea(),a_pParticle->GetType(),a_pParticle->GetFieldId(),a_pParticle->GetTagId());
  28. sSQLCommand = string.Format(sSQLCommand, a_pParticle.GetAveGray(), a_pParticle.GetArea(), a_pParticle.GetType(), a_pParticle.GetFieldId(), a_pParticle.GetTagId());
  29. var ret = datastorePtr.RunCommand( sSQLCommand);
  30. return ret;
  31. }
  32. public string GetUpdataAIncACmdStr(COTSParticleClr a_pParticle)
  33. {
  34. if (a_pParticle == null)
  35. {
  36. return "";
  37. }
  38. //var datastorePtr = GetDatastore();
  39. string sSQLCommand = "Update IncAData set TypeId={0},TypeName= \'{1} \',TypeColor= \'{2} \' where FieldID = {3} and ParticleId = {4} "; //sSQLCommand.Format(sSQLCommand,a_pParticle->GetAveGray(),a_pParticle->GetArea(),a_pParticle->GetType(),a_pParticle->GetFieldId(),a_pParticle->GetTagId());
  40. sSQLCommand = string.Format(sSQLCommand, a_pParticle.GetClassifyId(),a_pParticle.GetTypeName(),a_pParticle.GetTypeColor(), a_pParticle.GetFieldId(), a_pParticle.GetTagId());
  41. return sSQLCommand;
  42. }
  43. public bool SaveAIncA(COTSParticleClr a_pParticle, System.Drawing.Point fldPos)
  44. {
  45. var tableInfoPtr = GetTableInfo();
  46. if (tableInfoPtr==null)
  47. {
  48. return false;
  49. }
  50. var datastorePtr = GetDatastore();
  51. string sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);
  52. string sSQLCommand;
  53. Rectangle rec = (Rectangle)a_pParticle.GetParticleRect();
  54. System.Drawing.Point xrayPos = (System.Drawing.Point)a_pParticle.GetXRayPos();
  55. System.Drawing.Point semPos = (System.Drawing.Point)a_pParticle.GetAbsolutPos();
  56. sSQLCommand =string.Format(sInsertFormat, a_pParticle.GetFieldId(), a_pParticle.GetAnalysisId(), a_pParticle.GetAveGray(), rec.Left, rec.Top, rec.Width, rec.Height, a_pParticle.GetArea(), xrayPos.X, xrayPos.Y, a_pParticle.GetClassifyId(), (int)(a_pParticle.GetFeature().GetSegmentsList().Count), fldPos.X, fldPos.Y, a_pParticle.GetTagId(), a_pParticle.GetDMAX(), a_pParticle.GetDMIN(), a_pParticle.GetDMPERP(), a_pParticle.GetDPRIMETER(), a_pParticle.GetORIENTATION(), a_pParticle.GetDINSCR(), a_pParticle.GetDMEAN(), a_pParticle.GetDELONG(), a_pParticle.GetFeretDiameter(), a_pParticle.GetTypeName(), a_pParticle.GetTypeColor(),semPos.X,semPos.Y);
  57. if (!datastorePtr.RunCommand(sSQLCommand))
  58. {
  59. return false;
  60. }
  61. return true;
  62. }
  63. public string GegInsertingAnIncACmdStr(COTSParticleClr a_pParticle, System.Drawing.Point fldPos)
  64. {
  65. var tableInfoPtr = GetTableInfo();
  66. if (tableInfoPtr == null)
  67. {
  68. return "";
  69. }
  70. var datastorePtr = GetDatastore();
  71. string sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);
  72. string sSQLCommand;
  73. Rectangle rec = (Rectangle)a_pParticle.GetParticleRect();
  74. System.Drawing.Point xrayPos = (System.Drawing.Point)a_pParticle.GetXRayPos();
  75. System.Drawing.Point semPos = (System.Drawing.Point)a_pParticle.GetAbsolutPos();
  76. sSQLCommand = string.Format(sInsertFormat, a_pParticle.GetFieldId(), a_pParticle.GetAnalysisId(), a_pParticle.GetAveGray(), rec.Left, rec.Top, rec.Width, rec.Height, a_pParticle.GetArea(), xrayPos.X, xrayPos.Y, a_pParticle.GetClassifyId(), (int)(a_pParticle.GetFeature().GetSegmentsList().Count), fldPos.X, fldPos.Y, a_pParticle.GetTagId(), a_pParticle.GetDMAX(), a_pParticle.GetDMIN(), a_pParticle.GetDMPERP(), a_pParticle.GetDPRIMETER(), a_pParticle.GetORIENTATION(), a_pParticle.GetDINSCR(), a_pParticle.GetDMEAN(), a_pParticle.GetDELONG(), a_pParticle.GetFeretDiameter(), a_pParticle.GetTypeName(), a_pParticle.GetTypeColor(), semPos.X, semPos.Y);
  77. return sSQLCommand;
  78. }
  79. public bool GetAllFieldsRecord(ref List<COTSFieldData> allFlds)
  80. {
  81. var allRecords = this.GetQueryOfAllRecord();
  82. Dictionary<int, COTSFieldData> mapFld = new Dictionary<int, COTSFieldData>(); //std.map<int, COTSFieldDataPtr> mapFld = new std.map<int, COTSFieldDataPtr>();
  83. for (int i = 0; i < allRecords.Rows.Count; i++)
  84. {
  85. int curFldId = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FIELD_ID]); //GetColIntValue((int)CIncADataTable.ColumnID.N_FIELD_ID);
  86. if (!mapFld.Keys.Contains(curFldId))
  87. {
  88. COTSFieldData fld = new COTSFieldData();
  89. fld.SetId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FIELD_ID]));
  90. System.Drawing.Point fldPos =new System.Drawing.Point();
  91. fldPos.X = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FldPosX]);
  92. fldPos.Y = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FldPosY]);
  93. fld.SetOTSPosition(fldPos);
  94. List<COTSParticleClr> ps = fld.GetListAnalysisParticles();
  95. COTSParticleClr p = new COTSParticleClr();
  96. p.SetFieldId(fld.GetId());
  97. p.SetTagId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_PARTICLE_ID]));
  98. p.SetType(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_TYPE_ID]));
  99. int top = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_TOP]);
  100. int left = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_LEFT]);
  101. int width = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_WIDTH]);
  102. int height = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_HEIGHT]);
  103. Rectangle r = new Rectangle(left, top, left + width, top + height);
  104. p.SetParticleRect(r);
  105. p.SetSubParticles("");
  106. p.SetAveGray(Convert.ToByte(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_AVE_GRAY]));
  107. p.SetArea(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_AREA]));
  108. p.SetAnalysisId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_XRAY_ID]));
  109. p.SetDMAX(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMAX]));
  110. p.SetDMIN(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMIN]));
  111. p.SetDMPERP(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DPERP]));
  112. p.SetDINSCR(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DINSCR]));
  113. p.SetDMEAN(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMEAN]));
  114. p.SetDELONG(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DELONG]));
  115. p.SetDPRIMETER(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_PERIMETER]));
  116. p.SetORIENTATION(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_ORIENTATION]));
  117. p.SetTypeName(allRecords.Rows[i][(int)CIncADataTable.ColumnID.S_NAME].ToString());
  118. p.SetTypeColor(allRecords.Rows[i][(int)CIncADataTable.ColumnID.S_COLOR].ToString());
  119. ps.Add(p);
  120. allFlds.Add(fld);
  121. mapFld[curFldId] = fld;
  122. }
  123. else
  124. {
  125. COTSFieldData fld = mapFld[curFldId];
  126. List<COTSParticleClr> ps = fld.GetListAnalysisParticles();
  127. COTSParticleClr p = new COTSParticleClr();
  128. p.SetFieldId(fld.GetId());
  129. p.SetTagId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_PARTICLE_ID]));
  130. p.SetType(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_TYPE_ID]));
  131. int top = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_TOP]);
  132. int left = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_LEFT]);
  133. int width = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_WIDTH]);
  134. int height = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_HEIGHT]);
  135. Rectangle r = new Rectangle(left, top, left + width, top + height);
  136. p.SetParticleRect(r);
  137. //p.SetSubParticles("");
  138. p.SetAveGray(Convert.ToByte(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_AVE_GRAY]));
  139. p.SetArea(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_AREA]));
  140. p.SetAnalysisId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_XRAY_ID]));
  141. p.SetDMAX(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMAX]));
  142. p.SetDMIN(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMIN]));
  143. p.SetDMPERP(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DPERP]));
  144. p.SetDINSCR(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DINSCR]));
  145. p.SetDMEAN(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMEAN]));
  146. p.SetDELONG(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DELONG]));
  147. p.SetDPRIMETER(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_PERIMETER]));
  148. p.SetORIENTATION(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_ORIENTATION]));
  149. p.SetTypeName(allRecords.Rows[i][(int)CIncADataTable.ColumnID.S_NAME].ToString());
  150. p.SetTypeColor(allRecords.Rows[i][(int)CIncADataTable.ColumnID.S_COLOR].ToString());
  151. ps.Add(p);
  152. }
  153. }
  154. return true;
  155. }
  156. protected DataTable GetQueryById(int a_nXrayId, int a_nFieldId)
  157. {
  158. CSQLiteTable query = new CSQLiteTable();
  159. var datastorePtr = GetDatastore();
  160. var tableInfoPtr = GetTableInfo();
  161. string sXrayIdColumnName = tableInfoPtr.GetColumnName((int)CIncADataTable.ColumnID.N_XRAY_ID - (int)CIncADataTable.ColumnID.MIN); //tableInfoPtr.GetColumnName((int)CIncADataTable.ColumnID.N_XRAY_ID - (int)CIncADataTable.ColumnID.MIN);
  162. string sFieldIdColumnName = tableInfoPtr.GetColumnName((int)CIncADataTable.ColumnID.N_FIELD_ID - (int)CIncADataTable.ColumnID.MIN); //tableInfoPtr.GetColumnName((int)CIncADataTable.ColumnID.N_FIELD_ID - (int)CIncADataTable.ColumnID.MIN);
  163. string sSQLCommand=string.Format("SELECT * FROM \'{0}\' WHERE {1} = {2} AND %s = {3};", (string)tableInfoPtr.GetTableName(), (string)sFieldIdColumnName, a_nFieldId, (string)sXrayIdColumnName, a_nXrayId);
  164. DataTable t1 =datastorePtr.QueryByCmdForDataTable(sSQLCommand);
  165. return t1;
  166. }
  167. protected DataTable GetQueryOfAllRecord()
  168. {
  169. var datastorePtr = GetDatastore();
  170. var tableInfoPtr = GetTableInfo();
  171. string sSQLCommand= string.Format("SELECT * FROM \'{0}\';", (string)tableInfoPtr.GetTableName());
  172. DataTable t1 = datastorePtr.QueryByCmdForDataTable(sSQLCommand);
  173. return t1;
  174. }
  175. }
  176. }