| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 | using System;using System.Collections.Generic;using System.Data;using System.Diagnostics;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using OTSCLRINTERFACE;using OTSDataType;using OTSModelSharp.DTLBase;namespace OTSModelSharp{   public  class CIncADataDB : CSQLiteDB     {        public CIncADataDB(IDBStoreBase _conStr, IDBTableBase _table) : base(_conStr, _table)        {        }             public  bool UpdataAIncA(COTSParticleClr a_pParticle)        {                    if (a_pParticle == null)            {                return false;            }                       var datastorePtr = GetDatastore();            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());            sSQLCommand = string.Format(sSQLCommand, a_pParticle.GetAveGray(), a_pParticle.GetArea(), a_pParticle.GetType(), a_pParticle.GetFieldId(), a_pParticle.GetTagId());            var ret = datastorePtr.RunCommand( sSQLCommand);                        return ret;        }        public string GetUpdataAIncACmdStr(COTSParticleClr a_pParticle)        {            if (a_pParticle == null)            {                return "";            }            //var datastorePtr = GetDatastore();            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());            sSQLCommand = string.Format(sSQLCommand,  a_pParticle.GetClassifyId(),a_pParticle.GetTypeName(),a_pParticle.GetTypeColor(), a_pParticle.GetFieldId(), a_pParticle.GetTagId());                        return sSQLCommand;        }        public bool SaveAIncA(COTSParticleClr a_pParticle,  System.Drawing.Point fldPos)        {                   var tableInfoPtr = GetTableInfo();                      if (tableInfoPtr==null)            {                return false;            }            var datastorePtr = GetDatastore();                      string sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);            string sSQLCommand;            Rectangle rec = (Rectangle)a_pParticle.GetParticleRect();            System.Drawing.Point xrayPos = (System.Drawing.Point)a_pParticle.GetXRayPos();            System.Drawing.Point semPos = (System.Drawing.Point)a_pParticle.GetAbsolutPos();            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);            if (!datastorePtr.RunCommand(sSQLCommand))            {                return false;            }            return true;        }        public string GegInsertingAnIncACmdStr(COTSParticleClr a_pParticle, System.Drawing.Point fldPos)        {            var tableInfoPtr = GetTableInfo();            if (tableInfoPtr == null)            {                return "";            }            var datastorePtr = GetDatastore();            string sInsertFormat = tableInfoPtr.GetInsertCommandFormatString(true);            string sSQLCommand;            Rectangle rec = (Rectangle)a_pParticle.GetParticleRect();            System.Drawing.Point xrayPos = (System.Drawing.Point)a_pParticle.GetXRayPos();            System.Drawing.Point semPos = (System.Drawing.Point)a_pParticle.GetAbsolutPos();            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);                    return sSQLCommand;        }        public bool GetAllFieldsRecord(ref List<COTSFieldData> allFlds)        {            var allRecords = this.GetQueryOfAllRecord();            Dictionary<int, COTSFieldData> mapFld = new Dictionary<int, COTSFieldData>();                                       //std.map<int, COTSFieldDataPtr> mapFld = new std.map<int, COTSFieldDataPtr>();            for (int i = 0; i < allRecords.Rows.Count; i++)            {                int curFldId = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FIELD_ID]);  //GetColIntValue((int)CIncADataTable.ColumnID.N_FIELD_ID);                if (!mapFld.Keys.Contains(curFldId))                {                    COTSFieldData fld = new COTSFieldData();                    fld.SetId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FIELD_ID]));                    System.Drawing.Point fldPos =new System.Drawing.Point();                    fldPos.X = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FldPosX]);                    fldPos.Y = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_FldPosY]);                    fld.SetOTSPosition(fldPos);                    List<COTSParticleClr> ps = fld.GetListAnalysisParticles();                    COTSParticleClr p = new COTSParticleClr();                    p.SetFieldId(fld.GetId());                    p.SetTagId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_PARTICLE_ID]));                    p.SetType(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_TYPE_ID]));                    int top = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_TOP]);                    int left = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_LEFT]);                    int width = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_WIDTH]);                    int height = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_HEIGHT]);                    Rectangle r = new Rectangle(left, top, left + width, top + height);                    p.SetParticleRect(r);                    p.SetSubParticles("");                    p.SetAveGray(Convert.ToByte(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_AVE_GRAY]));                    p.SetArea(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_AREA]));                    p.SetAnalysisId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_XRAY_ID]));                    p.SetDMAX(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMAX]));                    p.SetDMIN(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMIN]));                    p.SetDMPERP(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DPERP]));                    p.SetDINSCR(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DINSCR]));                    p.SetDMEAN(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMEAN]));                    p.SetDELONG(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DELONG]));                    p.SetDPRIMETER(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_PERIMETER]));                    p.SetORIENTATION(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_ORIENTATION]));                    p.SetTypeName(allRecords.Rows[i][(int)CIncADataTable.ColumnID.S_NAME].ToString());                    p.SetTypeColor(allRecords.Rows[i][(int)CIncADataTable.ColumnID.S_COLOR].ToString());                    ps.Add(p);                    allFlds.Add(fld);                    mapFld[curFldId] = fld;                }                else                {                    COTSFieldData fld = mapFld[curFldId];                    List<COTSParticleClr> ps = fld.GetListAnalysisParticles();                    COTSParticleClr p = new COTSParticleClr();                    p.SetFieldId(fld.GetId());                    p.SetTagId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_PARTICLE_ID]));                    p.SetType(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_TYPE_ID]));                    int top = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_TOP]);                    int left = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_LEFT]);                    int width = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_WIDTH]);                    int height = Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_RECT_HEIGHT]);                    Rectangle r = new Rectangle(left, top, left + width, top + height);                    p.SetParticleRect(r);                    //p.SetSubParticles("");                                       p.SetAveGray(Convert.ToByte(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_AVE_GRAY]));                    p.SetArea(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_AREA]));                    p.SetAnalysisId(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.N_XRAY_ID]));                    p.SetDMAX(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMAX]));                    p.SetDMIN(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMIN]));                    p.SetDMPERP(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DPERP]));                    p.SetDINSCR(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DINSCR]));                    p.SetDMEAN(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DMEAN]));                    p.SetDELONG(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_DELONG]));                    p.SetDPRIMETER(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_PERIMETER]));                    p.SetORIENTATION(Convert.ToInt32(allRecords.Rows[i][(int)CIncADataTable.ColumnID.F_ORIENTATION]));                    p.SetTypeName(allRecords.Rows[i][(int)CIncADataTable.ColumnID.S_NAME].ToString());                    p.SetTypeColor(allRecords.Rows[i][(int)CIncADataTable.ColumnID.S_COLOR].ToString());                    ps.Add(p);                }            }            return true;        }        protected DataTable GetQueryById(int a_nXrayId, int a_nFieldId)        {            CSQLiteTable query = new CSQLiteTable();            var datastorePtr = GetDatastore();              var tableInfoPtr = GetTableInfo();                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);            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);            string sSQLCommand=string.Format("SELECT * FROM \'{0}\' WHERE {1} = {2} AND %s = {3};", (string)tableInfoPtr.GetTableName(), (string)sFieldIdColumnName, a_nFieldId, (string)sXrayIdColumnName, a_nXrayId);            DataTable t1 =datastorePtr.QueryByCmdForDataTable(sSQLCommand);            return t1;        }        protected DataTable GetQueryOfAllRecord()        {              var datastorePtr = GetDatastore();                var tableInfoPtr = GetTableInfo();                  string sSQLCommand= string.Format("SELECT * FROM \'{0}\';", (string)tableInfoPtr.GetTableName());            DataTable t1 = datastorePtr.QueryByCmdForDataTable(sSQLCommand);            return t1;        }                      }}
 |