This commit is contained in:
parent
d739a72c7b
commit
a9da618d54
@ -42,19 +42,19 @@ namespace DataLoader
|
||||
ProcNumber = dr["Number"].ToString();
|
||||
frmMain.Status = "Processing Procedure " + ProcNumber + " - " + ProcFileName;
|
||||
|
||||
|
||||
|
||||
|
||||
DateTime dts = GetDTS(dr["Date"].ToString(), dr["Time"].ToString());
|
||||
string userid = dr["initials"].ToString().Trim();
|
||||
if (userid == null || userid == "") userid = "Migration";
|
||||
string userid = dr["initials"].ToString().Trim();
|
||||
if (userid == null || userid == "") userid = "Migration";
|
||||
|
||||
ConfigInfo ci = null;
|
||||
string tstr = dr["Proccode"].ToString();
|
||||
if (tstr != null && tstr != "")
|
||||
{
|
||||
ci = new ConfigInfo(null);
|
||||
ci.AddItem("Procedure", "ProcCode", tstr);
|
||||
}
|
||||
ConfigInfo ci = null;
|
||||
string tstr = dr["Proccode"].ToString();
|
||||
if (tstr != null && tstr != "")
|
||||
{
|
||||
ci = new ConfigInfo(null);
|
||||
ci.AddItem("Procedure", "ProcCode", tstr);
|
||||
}
|
||||
|
||||
// try to load in fix file data:
|
||||
FileInfo fi = new FileInfo(pth + @"\" + ProcFileName + @".fix");
|
||||
@ -64,35 +64,35 @@ namespace DataLoader
|
||||
if (fixItems.Count > 0)
|
||||
{
|
||||
if (ci == null) ci = new ConfigInfo(null);
|
||||
if (fixItems[0].Rev!= null && fixItems[0].Rev !="")ci.AddItem("Procedure", "Rev", fixItems[0].Rev);
|
||||
if (fixItems[0].Rev != null && fixItems[0].Rev != "") ci.AddItem("Procedure", "Rev", fixItems[0].Rev);
|
||||
if (fixItems[0].RevDate != null && fixItems[0].RevDate != "") ci.AddItem("Procedure", "RevDate", fixItems[0].RevDate);
|
||||
if (fixItems[0].ReviewDate != null && fixItems[0].ReviewDate != "") ci.AddItem("Procedure", "ReviewDate", fixItems[0].ReviewDate);
|
||||
}
|
||||
}
|
||||
// check that there is a "Series" column, i.e. the 10th column, some datasets
|
||||
// may not have it, for example vetuec\master.sl1
|
||||
if (dr.ItemArray.Length > 10)
|
||||
{
|
||||
tstr = dr["Series"].ToString();
|
||||
if (tstr != null && tstr != "")
|
||||
{
|
||||
if (ci == null) ci = new ConfigInfo(null);
|
||||
ci.AddItem("Procedure", "Series", tstr);
|
||||
}
|
||||
}
|
||||
// check that there is a "Series" column, i.e. the 10th column, some datasets
|
||||
// may not have it, for example vetuec\master.sl1
|
||||
if (dr.ItemArray.Length > 10)
|
||||
{
|
||||
tstr = dr["Series"].ToString();
|
||||
if (tstr != null && tstr != "")
|
||||
{
|
||||
if (ci == null) ci = new ConfigInfo(null);
|
||||
ci.AddItem("Procedure", "Series", tstr);
|
||||
}
|
||||
}
|
||||
|
||||
DataSet ds = new DataSet();
|
||||
DataTable dt = null;
|
||||
DataSet ds = new DataSet();
|
||||
DataTable dt = null;
|
||||
|
||||
// check that file exists, i.e. if proc file doesn't exist but has entry in set
|
||||
// file, flag error, but continue.
|
||||
//string fname = frmMain.tbSourceText +"\\"+ dr["entry"] + ".dbf";
|
||||
string fname = pth + "\\" + dr["entry"] + ".dbf";
|
||||
if (File.Exists(fname))
|
||||
{
|
||||
// if the dbt is bad, fix it.
|
||||
DbtOk(dr["entry"].ToString(),pth);
|
||||
// See if there is PSI and if so, add it to the xml.
|
||||
// check that file exists, i.e. if proc file doesn't exist but has entry in set
|
||||
// file, flag error, but continue.
|
||||
//string fname = frmMain.tbSourceText +"\\"+ dr["entry"] + ".dbf";
|
||||
string fname = pth + "\\" + dr["entry"] + ".dbf";
|
||||
if (File.Exists(fname))
|
||||
{
|
||||
// if the dbt is bad, fix it.
|
||||
DbtOk(dr["entry"].ToString(), pth);
|
||||
// See if there is PSI and if so, add it to the xml.
|
||||
OleDbDataAdapter dapsi = new OleDbDataAdapter("select * from [" + dr["entry"] + "] where [STEP] is null", cn);
|
||||
int handleBefore = HandleCount;
|
||||
TryToLoadDataSet(ds, fname, dapsi);
|
||||
@ -104,7 +104,7 @@ namespace DataLoader
|
||||
{
|
||||
msg += "\r\n\r\nThis is most likely because dB2K is installed." +
|
||||
"\r\n\r\nUninstall dB2K and run again.";
|
||||
if (MessageBox.Show(msg + "\r\n\r\nDo you want to continue?", "Run with dB2K",
|
||||
if (MessageBox.Show(msg + "\r\n\r\nDo you want to continue?", "Run with dB2K",
|
||||
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
RunWithDB2K = true;
|
||||
}
|
||||
@ -112,7 +112,7 @@ namespace DataLoader
|
||||
{
|
||||
msg += "\r\n\r\nCall Volian for support.";
|
||||
}
|
||||
if (!RunWithDB2K)throw new Exception(msg);
|
||||
if (!RunWithDB2K) throw new Exception(msg);
|
||||
}
|
||||
dt = ds.Tables[0];
|
||||
|
||||
@ -143,34 +143,36 @@ namespace DataLoader
|
||||
}
|
||||
}
|
||||
dapsi.Dispose();
|
||||
}
|
||||
else // log an error
|
||||
{
|
||||
log.ErrorFormat("Missing DBF: {0}", fname);
|
||||
}
|
||||
}
|
||||
else // log an error
|
||||
{
|
||||
log.ErrorFormat("Missing DBF: {0}", fname);
|
||||
}
|
||||
|
||||
// Note, for now the data from the format field will be saved. Later, xpath, ??
|
||||
// Note, for now the data from the format field will be saved. Later, xpath, ??
|
||||
EditSectId = 0;
|
||||
|
||||
// See if no caret convert...
|
||||
// See if no caret convert...
|
||||
//FormatInfo docverFormat = docver.MyDocVersionInfo.ActiveFormat;
|
||||
bool do_cvt = activeFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta;//docverFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta;
|
||||
// pass in a 0 on MakeContent for type of procedure, i.e. procedure = 0 (on type field)
|
||||
|
||||
|
||||
// can we save itm.ItemID in a dictionary of outside trans? ex: otrans("vehlp\procs\0POP05-EO00",itm.ItemID)?
|
||||
Content cont = null;
|
||||
Item itm =null;
|
||||
Item itm = null;
|
||||
string dicNumber = dr["Number"].ToString();
|
||||
string number = TextConvert.ConvertText(dr["Number"].ToString());
|
||||
frmMain.UpdateLabels(1, 0, 0);
|
||||
if (!convertProcedures || (docver.VersionType != (int)VEPROMS.CSLA.Library.VersionTypeEnum.WorkingDraft && docver.VersionType != (int)VEPROMS.CSLA.Library.VersionTypeEnum.Approved))
|
||||
{
|
||||
cont = Content.New(number, TextConvert.ConvertText(dr["Title"].ToString(),do_cvt), 0, null, ci == null ? null : ci.ToString(), dts, userid);
|
||||
itm = Item.MakeItem(FromItem, cont, dts, userid);
|
||||
}
|
||||
else
|
||||
frmMain.UpdateLabels(1, 0, 0);
|
||||
if (!convertProcedures || (docver.VersionType != (int)VEPROMS.CSLA.Library.VersionTypeEnum.WorkingDraft && docver.VersionType != (int)VEPROMS.CSLA.Library.VersionTypeEnum.Approved))
|
||||
{
|
||||
cont = Content.New(number, TextConvert.ConvertText(dr["Title"].ToString(), do_cvt), 0, null, ci == null ? null : ci.ToString(), dts, userid);
|
||||
itm = Item.MakeItem(FromItem, cont, dts, userid);
|
||||
}
|
||||
else
|
||||
{
|
||||
DocVersionInfo dvi = DocVersionInfo.Get(docver.VersionID);
|
||||
foreach (ItemInfo ii in dvi.Procedures)
|
||||
{
|
||||
DocVersionInfo dvi = DocVersionInfo.Get(docver.VersionID);
|
||||
foreach(ItemInfo ii in dvi.Procedures){
|
||||
if (ii.MyContent.Number == number)
|
||||
{
|
||||
//Console.WriteLine(number);
|
||||
@ -178,102 +180,103 @@ namespace DataLoader
|
||||
cont = ii.MyContent.Get();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (convertProcedures /* && number == "001\\u8209?007"/* && number == "0POP05-EO-EC00"*/)
|
||||
}
|
||||
if (convertProcedures /* && number == "001\\u8209?007"/* && number == "0POP05-EO-EC00"*/)
|
||||
{
|
||||
OleDbDataAdapter da = new OleDbDataAdapter("select * from [" + dr["entry"] + "] where sequence like ' %'", cn);
|
||||
try
|
||||
OleDbDataAdapter da = new OleDbDataAdapter("select * from [" + dr["entry"] + "] where sequence like ' %'", cn);
|
||||
try
|
||||
{
|
||||
dicTrans_ItemDone[dicNumber] = itm; // will be null if only doing procs & no sections, etc.
|
||||
LoadSection(ds, da, dr["entry"].ToString());
|
||||
da.SelectCommand.CommandText = "select * from [" + dr["entry"] + "] where step not like ' ' and step not like '%~'";
|
||||
da.Fill(ds, "Steps");
|
||||
dt = ds.Tables["Steps"];
|
||||
dt.CaseSensitive = true;
|
||||
ds.Tables["Steps"].CaseSensitive = true;
|
||||
dt.Columns.Add("CStep", System.Type.GetType("System.String"));
|
||||
dt.Columns.Add("CSequence", System.Type.GetType("System.String"));
|
||||
// set the cstep & csequence - couldn't do it in the add because it needed a sql function
|
||||
foreach (DataRow drw in ds.Tables["Steps"].Rows)
|
||||
{
|
||||
LoadSection(ds, da, dr["entry"].ToString());
|
||||
da.SelectCommand.CommandText = "select * from [" + dr["entry"] + "] where step not like ' ' and step not like '%~'";
|
||||
da.Fill(ds, "Steps");
|
||||
dt = ds.Tables["Steps"];
|
||||
dt.CaseSensitive = true;
|
||||
ds.Tables["Steps"].CaseSensitive = true;
|
||||
dt.Columns.Add("CStep", System.Type.GetType("System.String"));
|
||||
dt.Columns.Add("CSequence", System.Type.GetType("System.String"));
|
||||
// set the cstep & csequence - couldn't do it in the add because it needed a sql function
|
||||
foreach (DataRow drw in ds.Tables["Steps"].Rows)
|
||||
{
|
||||
drw["CStep"] = TextConvert.ConvertSeq(drw["Step"].ToString());
|
||||
drw["CSequence"] = TextConvert.ConvertSeq(drw["Sequence"].ToString());
|
||||
}
|
||||
dt.Columns.Add("StepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CStep,2,1),'System.Char'),'System.Int32')-48");
|
||||
dt.Columns.Add("Level", System.Type.GetType("System.Int32"), "Len(CSequence)");
|
||||
dt.Columns.Add("SubStepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CSequence,Len(CSequence),1),'System.Char'),'System.Int32')-48");
|
||||
drw["CStep"] = TextConvert.ConvertSeq(drw["Step"].ToString());
|
||||
drw["CSequence"] = TextConvert.ConvertSeq(drw["Sequence"].ToString());
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException);
|
||||
log.Error(ex.StackTrace);
|
||||
frmMain.AddError(ex, "MigrateProcedure - {0}", ProcFileName);
|
||||
}
|
||||
da.Dispose();
|
||||
|
||||
// dicSecCount is dictionary to track number of subsections for the parent at a level
|
||||
// dicSecID is the parent at that level
|
||||
Dictionary<int, int> dicSecCount = new Dictionary<int, int>();
|
||||
Dictionary<int, Item> dicSecParentItem = new Dictionary<int, Item>();
|
||||
frmMain.pbSectMaximum = ds.Tables["Sections"].Rows.Count;
|
||||
frmMain.pbSectValue = 0;
|
||||
|
||||
DataTable dtsect = ds.Tables["Sections"];
|
||||
dtsect.CaseSensitive = true;
|
||||
DataView dv = new DataView(dtsect, "", "locb", DataViewRowState.CurrentRows);
|
||||
Item SectItm = null;
|
||||
int level = 0;
|
||||
bool addpart = true;
|
||||
Item parentitem = itm;
|
||||
//if (ProcNumber == "001-002")
|
||||
// Console.WriteLine("proc 001-002");
|
||||
foreach (DataRowView drw in dv)
|
||||
{
|
||||
//if (ProcNumber == "016-001") //"017-001") //"082-002AB")
|
||||
// Console.WriteLine("016-001"); //("017-001"); //"082-002AB");
|
||||
SectItm = MigrateSection(parentitem, ProcNumber, cn, drw, ds.Tables["Steps"], SectItm, dicSecCount.Count > 0 ? true : false, pth, docver, activeFormat,addpart ? cont :null);
|
||||
addpart = false;
|
||||
// if no children, add first child (cont)
|
||||
//if (addpart)
|
||||
//{
|
||||
// // ContentsParts.Add can use 'fromtype', item - fromtype here = 2, section
|
||||
// cont.ContentParts.Add(2, SectItm);
|
||||
// if (cont.MyZContent.OldStepSequence == null || cont.MyZContent.OldStepSequence == "") cont.MyZContent.OldStepSequence = ProcNumber;
|
||||
// if (!cont.IsSavable) ErrorRpt.ErrorReport(cont);
|
||||
// cont.Save();
|
||||
// addpart = false;
|
||||
//}
|
||||
//FrType = 0;
|
||||
dicSecParentItem[level] = SectItm;
|
||||
if (level > 0)
|
||||
{
|
||||
if ((dicSecCount[level]) == 1)
|
||||
// shift up a level, i.e. give me the parent for the previous level
|
||||
SectItm = dicSecParentItem[--level];
|
||||
else
|
||||
dicSecCount[level]--; // decrements number of sections to process
|
||||
}
|
||||
// get number of subsections for this section
|
||||
int subSecs = drw["Sequence"].ToString().PadRight(12, ' ')[5] - 48;
|
||||
if (subSecs > 0)
|
||||
{
|
||||
dicSecCount[++level] = subSecs;
|
||||
cont = SectItm.MyContent;
|
||||
parentitem = SectItm;
|
||||
addpart = true;
|
||||
SectItm = null; // no previous sibling for the first child node.
|
||||
}
|
||||
}
|
||||
// need section start
|
||||
if (EditSectId != 0)
|
||||
{
|
||||
if (ci == null) ci = new ConfigInfo(null);
|
||||
ci.AddItem("Procedure", "SectionStart", string.Format("{0}", EditSectId));
|
||||
itm.MyContent.Config = (ci == null) ? null : ci.ToString();
|
||||
if (!itm.IsSavable) ErrorRpt.ErrorReport(itm);
|
||||
itm.Save();
|
||||
}
|
||||
dt.Columns.Add("StepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CStep,2,1),'System.Char'),'System.Int32')-48");
|
||||
dt.Columns.Add("Level", System.Type.GetType("System.Int32"), "Len(CSequence)");
|
||||
dt.Columns.Add("SubStepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CSequence,Len(CSequence),1),'System.Char'),'System.Int32')-48");
|
||||
}
|
||||
ds.Dispose();
|
||||
catch (Exception ex)
|
||||
{
|
||||
log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException);
|
||||
log.Error(ex.StackTrace);
|
||||
frmMain.AddError(ex, "MigrateProcedure - {0}", ProcFileName);
|
||||
}
|
||||
da.Dispose();
|
||||
|
||||
// dicSecCount is dictionary to track number of subsections for the parent at a level
|
||||
// dicSecID is the parent at that level
|
||||
Dictionary<int, int> dicSecCount = new Dictionary<int, int>();
|
||||
Dictionary<int, Item> dicSecParentItem = new Dictionary<int, Item>();
|
||||
frmMain.pbSectMaximum = ds.Tables["Sections"].Rows.Count;
|
||||
frmMain.pbSectValue = 0;
|
||||
|
||||
DataTable dtsect = ds.Tables["Sections"];
|
||||
dtsect.CaseSensitive = true;
|
||||
DataView dv = new DataView(dtsect, "", "locb", DataViewRowState.CurrentRows);
|
||||
Item SectItm = null;
|
||||
int level = 0;
|
||||
bool addpart = true;
|
||||
Item parentitem = itm;
|
||||
//if (ProcNumber == "001-002")
|
||||
// Console.WriteLine("proc 001-002");
|
||||
foreach (DataRowView drw in dv)
|
||||
{
|
||||
//if (ProcNumber == "016-001") //"017-001") //"082-002AB")
|
||||
// Console.WriteLine("016-001"); //("017-001"); //"082-002AB");
|
||||
SectItm = MigrateSection(parentitem, ProcNumber, cn, drw, ds.Tables["Steps"], SectItm, dicSecCount.Count > 0 ? true : false, pth, docver, activeFormat, addpart ? cont : null);
|
||||
addpart = false;
|
||||
// if no children, add first child (cont)
|
||||
//if (addpart)
|
||||
//{
|
||||
// // ContentsParts.Add can use 'fromtype', item - fromtype here = 2, section
|
||||
// cont.ContentParts.Add(2, SectItm);
|
||||
// if (cont.MyZContent.OldStepSequence == null || cont.MyZContent.OldStepSequence == "") cont.MyZContent.OldStepSequence = ProcNumber;
|
||||
// if (!cont.IsSavable) ErrorRpt.ErrorReport(cont);
|
||||
// cont.Save();
|
||||
// addpart = false;
|
||||
//}
|
||||
//FrType = 0;
|
||||
dicSecParentItem[level] = SectItm;
|
||||
if (level > 0)
|
||||
{
|
||||
if ((dicSecCount[level]) == 1)
|
||||
// shift up a level, i.e. give me the parent for the previous level
|
||||
SectItm = dicSecParentItem[--level];
|
||||
else
|
||||
dicSecCount[level]--; // decrements number of sections to process
|
||||
}
|
||||
// get number of subsections for this section
|
||||
int subSecs = drw["Sequence"].ToString().PadRight(12, ' ')[5] - 48;
|
||||
if (subSecs > 0)
|
||||
{
|
||||
dicSecCount[++level] = subSecs;
|
||||
cont = SectItm.MyContent;
|
||||
parentitem = SectItm;
|
||||
addpart = true;
|
||||
SectItm = null; // no previous sibling for the first child node.
|
||||
}
|
||||
}
|
||||
// need section start
|
||||
if (EditSectId != 0)
|
||||
{
|
||||
if (ci == null) ci = new ConfigInfo(null);
|
||||
ci.AddItem("Procedure", "SectionStart", string.Format("{0}", EditSectId));
|
||||
itm.MyContent.Config = (ci == null) ? null : ci.ToString();
|
||||
if (!itm.IsSavable) ErrorRpt.ErrorReport(itm);
|
||||
itm.Save();
|
||||
}
|
||||
}
|
||||
ds.Dispose();
|
||||
return itm;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user