Datatable columns műveletek és row összevonás probléma

Datatable columns műveletek és row összevonás probléma
2019-03-07T10:37:26+01:00
2019-03-07T14:59:43+01:00
2022-10-15T21:36:14+02:00
santaro
Sziasztok,

van egy programom, ami sap-ból húz adatokat egy datatable-ba betöltött excel adatai alapján.
Összesen 3 táblával dolgozok.
Első tartalmaz termékeket és darabszámot, második beépülő alkatrészeket és darabszámot, harmadik alkatrészeket és raktári darabszámot.
Majd kiírja egy grid-be az első oszlopba a terméket, másodikba a beépülő cikkszámot, harmadikba a termék darabszámának és beépülő darabszámának szorzatát,
negyedikbe a beépülő raktári készletét.
Ezen a ponton viszont elakadtam, kódban kikommentezve látszik amivel nem bírok.
Szükségem lenne az ötödik oszlopban arra, hogy a raktári készletből kivonja a termék darabszámának és beépülő darabszámának szorzatát.
Másik problémám, hogy előfordul, hogy az első táblában többször is szerepel ugyan az a termék.
Ebben az esetben össze kellene vonni a terméket és a mellette szereplő gyártási darabszámot.
Remélem sikerült érthetően leírnom.
Előre is köszönöm a segítséget!

Kód részlet(az elejét nem másolom be, az csak a Datatable feltöltés):

DataTable result = new DataTable();
result.Columns.Add("Product");
result.Columns.Add("HMP");
result.Columns.Add("WHqty");
result.Columns.Add("Qty");
//result.Columns.Add("WhDifi");

      foreach (DataRow terRow in terv.Rows)
       {
          foreach (DataRow bomRow in BOM.Rows)
            {
              foreach (DataRow stockrow in hmpstock.Rows)
               { 
              if (terRow["material"].ToString() == bomRow["parent"].ToString())
               {
                  if (bomRow["material"].ToString() == stockrow["Material"].ToString())
                    {
                     if (isHMP(HMP, bomRow["material"].ToString()))
                      {
                        result.Rows.Add(terRow["material"].ToString(), bomRow["material"].ToString(),                                          Convert.ToInt32(stockrow["WHqty"].ToString())
                         , Convert.ToInt32(terRow["qty"].ToString()) * Convert.ToInt32(bomRow["qty"].ToString()

                           itt van a problémás kód --> //,Convert.ToInt32(stockrow["WHqty"].ToString()) -                                       (Convert.ToInt32(terRow["qty"].ToString()) *                                                                                                 Convert.ToInt32(bomRow["qty"].ToString())));

                         }
                  }
              }
        }
     }  
}
dataGridView_SAP.DataSource = result;

MessageBox.Show("A lekérdezés lefutott!");
   }
}
Mutasd a teljes hozzászólást!
Helló!

Itt volt már hasonló kérdés: a megoldásnál találsz is egy példát, hogyan lehet táblákat join-olni memóriában, SQL-hez hasonlóan.

A join után pedig már tetszőleges műveleteket is végre tudsz hajtani a végső tábládban.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd