altri avanzamenti x gestione file prod

NON completo, non va ma appuntato codice come DOVREBBE ragionare...
This commit is contained in:
Samuele E. Locatelli
2016-07-12 18:36:55 +02:00
parent 2ba4d8341c
commit 163f58fec9
3 changed files with 88 additions and 16 deletions
+58 -7
View File
@@ -242,15 +242,66 @@ namespace MTC_Adapter
// ora trimmo vettore al solo numero VERO degli allarmi caricati...
Array.Resize<datiProdSCM>(ref elencoDatiProdNew, rumRiga);
// ora devo verificare il contenuto rispetto ai "vecchi" valori...
// !!!FARE!!! (ri-fare)
// ora devo verificare il contenuto rispetto ai "vecchi" valori... conto numero righe (devono essere diverse o uguali e ultima riga con qta differente e pari cod PRG...)
int nRecCur = 0;
if (elencoDatiProd != null)
{
try
{
nRecCur = elencoDatiProd.Length;
}
catch
{ }
}
int nRecIst = 0;
if (elencoDatiProdNew != null)
{
try
{
nRecCur = elencoDatiProdNew.Length;
}
catch
{ }
}
// in primis devo verificare che sia > 0 num oggetti su entrambi i vettori
// se vett curr è nullo --> devo inizializzare
// se NONE' nullo devo confrontare ULTIMO record Curr con equivalente record NEW x verificare se sia variato
// se ultimo curr === corrispondente new DEVO aggiungere 1 riga
// riporto comunque ultima riga del vettore CURR (sia perché variato sia perché aggiunto)
#if false
bool checkNumRow = nRecCur != nRecIst;
bool checkPart = elencoDatiProd[nRecCur - 1].fileName != elencoDatiProdNew[nRecIst - 1].fileName;
bool checkQta = elencoDatiProd[nRecCur - 1].qta != elencoDatiProdNew[nRecIst - 1].qta;
// se differiscono processo
// CARICO IN ARCHIVIO il primo dei NUOVI particolari coi suoi pezzi prodotti
// lo invio tramite adapter
// al prossimo giro caricherà altro particolare...
if (checkNumRow || checkPart || (!checkPart && checkQta))
{
// CARICO IN vettore IST il primo dei NUOVI particolari coi suoi pezzi prodotti
istPathPartId[0] = elencoDatiProdNew[nRecIst - 1].fileName;
istPathPartCount[0] = Convert.ToUInt32(elencoDatiProdNew[nRecIst - 1].qta);
// aggiorno ultima riga (son diverse x numeri righe...)
if (checkNumRow)
{
Array.Resize<datiProdSCM>(ref elencoDatiProd, nRecCur + 1);
elencoDatiProd[nRecCur + 1] = elencoDatiProdNew[nRecCur + 1];
}
//... aggiorno ultima riga dati...
else
{
elencoDatiProd[nRecCur] = elencoDatiProdNew[nRecCur];
}
// al prossimo giro caricherà altro particolare...
}
#endif
}
/// <summary>
/// Processo stti macchina...
+3 -1
View File
@@ -199,7 +199,9 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<None Include="Resources\SCM\SCM_prodFile.pro" />
<None Include="SCM_prodFile.pro" />
<Content Include="SCM_prodFile.pro">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<None Include="setupTgt.bat" />
</ItemGroup>
<ItemGroup>
+27 -8
View File
@@ -270,7 +270,7 @@ namespace MTC_Adapter
for (int i = 0; i < results.Count; i++)
{
// se il codice è quello cercato...
if(results[i].codCall==codice) indice = i;
if (results[i].codCall == codice) indice = i;
}
// se c'è aggiorno...
if (indice >= 0)
@@ -457,7 +457,6 @@ namespace MTC_Adapter
public TimeSpan tTot;
public int qta;
public TimeSpan tMed;
public string descrizione;
public datiProdSCM()
{
area = "";
@@ -469,14 +468,34 @@ namespace MTC_Adapter
tTot = new TimeSpan(0);
qta = 0;
tMed = new TimeSpan(0);
descrizione = "";
}
public datiProdSCM(string[] valoriRow)
/// <summary>
/// crea un nuovo oggetto a partire da un array di stringhe
/// </summary>
/// <param name="valori"></param>
public datiProdSCM(string[] valori)
{
area = _codNum;
fileName = _gruppo;
dimensioni = _livello;
descrizione = _descrizione;
try
{
area = valori[0];
fileName = valori[1];
dimensioni = string.Format("{0}x{1}x{2}", valori[3], valori[4], valori[5]);
start = DateTime.Today.AddHours(Convert.ToInt16(valori[6])).AddMinutes(Convert.ToInt16(valori[7])).AddSeconds(Convert.ToInt16(valori[8]));
stop = DateTime.Today.AddHours(Convert.ToInt16(valori[9])).AddMinutes(Convert.ToInt16(valori[10])).AddSeconds(Convert.ToInt16(valori[11]));
// se ore == 0 --> aggiungo 1 gg!!!
if (Convert.ToInt16(valori[9]) == 0) stop.AddDays(1);
tEff = new TimeSpan(Convert.ToInt16(valori[12]), Convert.ToInt16(valori[13]), Convert.ToInt16(valori[14]));
tTot = new TimeSpan(Convert.ToInt16(valori[15]), Convert.ToInt16(valori[16]), Convert.ToInt16(valori[17]));
qta = Convert.ToInt16(valori[18]);
tMed = new TimeSpan(Convert.ToInt16(valori[19]), Convert.ToInt16(valori[20]), Convert.ToInt16(valori[22]), Convert.ToInt16(valori[23]));
}
catch
{ }
}
}
/// <summary>