lifan
2026-03-04 e39d18d6d7ed5ee9c7dd94836d7a898c975a7354
jrj/project/start.vframe.vbusiness.cpp
@@ -33,9 +33,75 @@
      }
      if (!doc.xml()) return 0;
      int row = dw_list.GetRow();
      KXMLDOMElement pElement;
      LPCWSTR path = L"@cate";
      LPWSTR val = nullptr;
      LPWSTR guid = nullptr;
      LPWSTR guid1 = nullptr;
      if (dw_list.GetRowCount() >= row  && row > 0)
      {
         pElement = dw_list.GetRowElement(row);
         val = pElement.getAttribute(L"cate");
         guid = pElement.getAttribute(L"taskid");
         if (dw_list.GetRowCount() >= row + 1)
         {
            KXMLDOMElement pElement1 = dw_list.GetRowElement(row+1);
            if (pElement1)
            {
               xstring val1 = pElement.getAttribute(L"cate");
               if(val1 == val)
               {
                  guid1 = pElement.getAttribute(L"taskid");
               }
            }
         }
      }
      dw_list.Retrieve(doc);
      if(val)
         dw_list.CreateTree((LPCWSTR)L"node()",path,val, 1, 15, 16);
      else
      dw_list.CreateTree((LPCWSTR)L"node()", 1, 15, 16);
      dw_list.Redraw();
      if (val)
      {
         row = 0;
         for (int i = 1; i <= dw_list.GetRowCount(); i++)
         {
            pElement = dw_list.GetRowElement(i);
            //BSTR bxml;
            //pElement.get_xml(bxml);
            //if (bxml)::SysFreeString(bxml);
            LPWSTR val1 = pElement.getAttribute(L"cate");
            if (xstring(val1) == val)
            {
               row = i + 1;
               break;
            }
         }
         if (row)
         {
            int srow = row;
            for (; row < dw_list.GetRowCount(); row++)
            {
               pElement = dw_list.GetRowElement(row);
               xstring cate = pElement.getAttribute(L"cate");
               if (cate != val)break;
               xstring id = pElement.getAttribute(L"taskid");
               if (id == guid || id == guid1)
               {
                  srow = row;
                  break;
               }
            }
            dw_list.SetRow(srow);
         }
      }
      if (val)delete val;
      /*
      dw_list.Redraw();
      dw_list.SetReadOnly(true);