Exemple #1
0
        private void upLoadData()
        {
            if (uGridData.Rows.Count == 0)
            {
                lstHint2.Items.Add("错误:没有需要上传的数据!");
                return;
            }

            string strTmpMater, strTmpOrder, strTmpBatch1, strTmpBatch2, strTmpValue, strTmpJzrq, strTmpPrebatch;

            strTmpMater = "";
            string  strTmpNo = "";
            decimal dTmpZl   = 0;

            string[]  strTmpHeader = new string[] { "", "", "" };
            ArrayList listSubItem  = new ArrayList();
            ArrayList listBatch    = new ArrayList();

            strTmpOrder = "";
            dTmpZl      = 0;
            System.Data.DataRow[] tmpRow;
            //edit
            tmpRow = dataSet1.Tables[0].Select("FS_ISMATCH='1' AND FS_UPLOADFLAG='0'", "FS_BATCHNO,FN_BANDNO");

            for (int i = 0; i < tmpRow.Length; i++)
            {
                //strTmpOrder = tmpRow[i]["FS_PRODUCTNO"].ToString();
                //strTmpMater = sapClass.getMaterial(strTmpOrder);
                //strTmpNo = (tmpRow[i]["FS_BATCHNO"].ToString());
                ////strTmpNo = (tmpRow[i]["FN_BANDNO"].ToString().Length == 1)
                ////    ? tmpRow[i]["FS_BATCHNO"].ToString() + "0" + tmpRow[i]["FN_BANDNO"].ToString()
                ////    : tmpRow[i]["FS_BATCHNO"].ToString() + tmpRow[i]["FN_BANDNO"].ToString();
                //sapClass.batchValueUp(strTmpMater, strTmpNo, "8000");
                //break;

                listBatch.Add(tmpRow[i]["FN_BANDNO"].ToString());
                strTmpBatch1 = tmpRow[i]["FS_BATCHNO"].ToString().Substring(0, 8);
                strTmpBatch2 = (i < (tmpRow.Length - 1)) ?
                               tmpRow[i + 1]["FS_BATCHNO"].ToString().Substring(0, 8) :
                               tmpRow[i]["FS_BATCHNO"].ToString().Substring(0, 8);

                dTmpZl += Convert.ToDecimal(tmpRow[i]["FN_WEIGHT"]);
                if ((strTmpBatch1 != strTmpBatch2) || (i == (tmpRow.Length - 1)))
                {
                    strTmpJzrq      = Convert.ToDateTime(tmpRow[i]["FS_ACCOUNTDATE"]).ToString("yyyy-MM-dd");
                    strTmpHeader[0] = Convert.ToDateTime(tmpRow[i]["FS_ACCOUNTDATE"]).ToString("yyyy.MM.dd");
                    strTmpHeader[1] = Convert.ToDateTime(tmpRow[i]["FS_ACCOUNTDATE"]).ToString("yyyy.MM.dd");
                    strTmpHeader[2] = tmpRow[i]["FS_HEADER"].ToString();

                    strTmpOrder    = tmpRow[i]["FS_PRODUCTNO"].ToString();
                    strTmpMater    = sapClass.getMaterial(strTmpOrder);
                    strTmpNo       = tmpRow[i]["FS_BATCHNO"].ToString();
                    strTmpPrebatch = tmpRow[i]["FS_GP_STOVENO"].ToString();

                    listSubItem.Clear();
                    listSubItem.Add(strTmpMater);                         //物料编号
                    listSubItem.Add(tmpRow[i]["FS_PLANT"].ToString());    //工厂
                    listSubItem.Add(tmpRow[i]["FS_SAPSTORE"].ToString()); //库存地点
                    listSubItem.Add(strTmpNo);                            //批次
                    listSubItem.Add("101");                               //移动类型101
                    listSubItem.Add("");                                  //库存类型
                    listSubItem.Add("");                                  //特殊库存标识
                    listSubItem.Add(dTmpZl.ToString());                   //发货数量
                    listSubItem.Add("TON");                               //收货时的计量单位
                    listSubItem.Add("0001");                              //项目文本
                    listSubItem.Add(strTmpOrder);                         //生产订单编号
                    listSubItem.Add("F");                                 //移动标识'F'
                    listSubItem.Add("");                                  //销售订单号
                    listSubItem.Add("");                                  //销售订单行项目

                    string sTmp = sapClass.BAPI_GOODSMVT_CREATE("02", strTmpHeader, listSubItem);

                    if (sTmp != "")
                    {
                        strTmpValue = "FS_UPLOADFLAG='1',FS_SPRUEFLOS='" + sapClass.downSprueflosInfo(sTmp) + "'";
                        sapClass.strArrayUpload[2] = sTmp + "-" + tmpRow[i]["FS_BATCHNO"].ToString();
                        sapClass.strArrayUpload[6] = dTmpZl.ToString();
                        sTmp = "炉号为" + strTmpBatch1 + "-凭证号" + sTmp + "-上传重量" + dTmpZl.ToString();
                        //    sapClass.insChemCopy(strTmpMater, tmpRow[i]["FS_PLANT"].ToString(),
                        //      strTmpNo, tmpRow[i]["FS_GP_STOVENO"].ToString());
                        sapClass.uptDataFlag("DT_GX_STORAGEWEIGHTMAIN", "FS_UPLOADFLAG='1',FS_MATERIALNO='" + strTmpMater + "'", "FS_BATCHNO='" + strTmpNo
                                             + "' AND FS_ACCOUNTDATE='" + strTmpJzrq + "'");
                        //sapClass.uptDataFlag("DT_GX_STORAGEWEIGHTDETAIL", "FS_UPLOADFLAG='1'", "FS_BATCHNO='" + strTmpNo
                        //+ "' AND FS_ACCOUNTDATE='" + strTmpJzrq + "'");
                        for (int j = 0; j < listBatch.Count; j++)
                        {
                            sapClass.uptDataFlag("DT_GX_STORAGEWEIGHTDETAIL", strTmpValue, "FS_BATCHNO='" + strTmpNo
                                                 + "' AND FN_BANDNO=" + listBatch[j]);
                        }
                        listBatch.Clear();
                        sapClass.uptSapLog(strTmpNo, sapClass.strArrayUpload);
                        //              sapClass.insMssqlData(1, "chemCopy", "PSTING_DATE,BATCH,PLANT,preBatch,MATERIAL",
                        //                "'" + strTmpJzrq + "','" + strTmpBatch1 + "','"
                        //              + "1100','" + strTmpPrebatch + "','" + strTmpMater + "'");
                        sTmp += ",数据上传成功!";

                        //垛帐接口
                        DepotManage dm   = new DepotManage();
                        bool        flag = dm.UpdateMaterial(strTmpNo, strTmpMater);


                        //dTmpZl = 0;//清0

                        lstHint2.Items.Add(sTmp);
                    }
                    else
                    {
                        lstHint2.Items.Add(sapClass.strSapError);
                    }
                    dTmpZl = 0;
                }
            }
            showGridInfo();
        }