void CDlgStructTreePropFlow::OnBnClickedStpfOk()
{
	CDlgSvg * pSvg = GetSvgDilogPtr();
	if ( pSvg == NULL )
	{
		EndDialog(FALSE); return;
	}

	if(true)
	{//加入检测机制
		bool b; 
		b = CheckEdit(m_wndAuthor, STRATEGY_DEFAULT, "作者");
		if(b == false)
		{//检测失败直接返回
			return;
		}

		b = CheckEdit(m_wndCreated, STRATEGY_DEFAULT, "日期");
		if(b == false)
		{//检测失败直接返回
			return;
		}

		b = CheckEdit(m_wndDescrp, STRATEGY_DEFAULT, "描述", 200);
		if(b == false)
		{//检测失败直接返回
			return;
		}

		b = CheckEdit(m_wndName, STRATEGY_NODE, "名称");
		if(b == false)
		{//检测失败直接返回
			return;
		}

		b = CheckEdit(m_wndVersion, STRATEGY_DEFAULT, "版本");
		if(b == false)
		{//检测失败直接返回
			return;
		}
	}

	BOOL bModified = FALSE;
	CString str;

	CCxStructTreeNodeFlow * pTempNode = new CCxStructTreeNodeFlow( NULL );
	pTempNode->m_strID = m_pNode->m_strID;

	m_wndAuthor.GetWindowText(pTempNode->m_strAuthor);
	if ( m_pNode->m_strAuthor != pTempNode->m_strAuthor )
	{
		bModified = TRUE;
	}
	m_wndCreated.GetWindowText(pTempNode->m_strCreated);
	if ( m_pNode->m_strCreated != pTempNode->m_strCreated )
	{
		bModified = TRUE;
	}
	m_wndDescrp.GetWindowText(pTempNode->m_strDescription);
	if ( m_pNode->m_strDescription != pTempNode->m_strDescription )
	{
		bModified = TRUE;
	}
	m_wndName.GetWindowText(pTempNode->m_strOriName);
	pTempNode->m_strText = pTempNode->m_strOriName;
	if ( m_pNode->m_strText != pTempNode->m_strText )
	{
		bModified = TRUE;
	}
	m_wndVersion.GetWindowText(pTempNode->m_strVersion);
	if ( m_pNode->m_strVersion != pTempNode->m_strVersion )
	{
		bModified = TRUE;
	}

	if ( !bModified )
	{
		delete pTempNode; pTempNode = NULL; EndDialog(FALSE); return;
	}

	CWebMethodParamData * pParam = NULL;
	CWebMethodData wmd;
	//
	wmd.m_sMethodName = "propUpdate";
	//第1个参数
	pParam = new CWebMethodParamData();
	pParam->m_sName = "jsonData";
	pParam->m_sValue = pTempNode->GetUpdatePropJsonStr();
	wmd.m_vParams.push_back(pParam);
	//
	if ( !pSvg->InvokeJsMethod( &wmd ) )
	{
		MessageBox("修改属性失败。请确保svg功能正常。", g_lpszAppTitle, MB_OK|MB_ICONERROR );
		delete pTempNode; pTempNode = NULL;
		EndDialog(FALSE); return;
	}
	if ( wmd.m_sResult.IsEmpty() )
	{
		m_pNode->m_strAuthor = pTempNode->m_strAuthor;
		m_pNode->m_strCreated = pTempNode->m_strCreated;
		m_pNode->m_strDescription = pTempNode->m_strDescription;
		m_pNode->m_strText = pTempNode->m_strText;
		m_pNode->m_strOriName = pTempNode->m_strOriName;
		m_pNode->m_strVersion = pTempNode->m_strVersion;
		delete pTempNode; pTempNode = NULL;
		EndDialog( TRUE ); return;
	}
	else
	{
		vector< CString > vErrFlag;
		CString2Vector( vErrFlag, wmd.m_sResult );
		for (int i=0; i<(int)vErrFlag.size(); i++)
		{
			if ( vErrFlag[i] == "same_name" )
			{
				MessageBox("名称必须确保唯一", g_lpszAppTitle, MB_OK|MB_ICONINFORMATION );
				m_wndName.SetSel(0, -1);
				m_wndName.SetFocus();
				break;
			}
		}
		delete pTempNode; pTempNode = NULL;
	}
}
Exemplo n.º 2
0
void __fastcall TSmallTypeForm::btnokClick(TObject *Sender)
{
   if (!dm1->ConnectDB())
      return;
   switch(btnidx)
   {
      case 0://do add
           if (!CheckEdit())
              break;
           if (!CheckCode())
              break;
           strsql =AnsiString("select st_code from dicsmalltype where st_code='")
                  +edtcode->Text+"'";
           if (DoQuery(dm1->Query1,strsql))
           {
              if (!dm1->Query1->IsEmpty())
              {
                 ErrorDlg("输入了重复的代码!");
                 break;
              }
           }
           else
           {
              SetButton(1,1,1,1,0,0,1,1);
              break;
           }
           strsql =AnsiString("insert into dicsmalltype values('")+edtcode->Text+"','"
                  +edtname->Text+"')";
           if (DoQuery(dm1->Query1,strsql,1))
           {
              btnref->Click();
              ClearEdit();
              edtcode->SetFocus();
           }
           break;
      case 1:
           LocateRow();
           break;
      case 2://do modify
           if (ListView1->SelCount==0)
           {
              InfoDlg("请先在列表中选择要修改的项次!");
              break;
           }
           if (!CheckEdit())
              break;
           if (!CheckCode())
              break;
           strsql =AnsiString("update dicsmalltype set st_name='")
                  +edtname->Text+"' where st_code='"
                  +ListView1->Selected->SubItems->Strings[0]+"'";
           if (DoQuery(dm1->Query1,strsql,1))
           {
              btnref->Click();
              ClearEdit();
              InfoDlg("修改完成!");
           }
           else
              SetButton(1,1,1,1,0,0,1,1);
           break;
      case 3://do delete
           if (ListView1->SelCount==0)
           {
              InfoDlg("请先在列表中选择要删除的项次!");
              break;
           }
           if (AskDlg("确实要删除该项次吗?")==IDNO)
              break;
           strsql =AnsiString("delete dicsmalltype where st_code='")
                  +ListView1->Selected->SubItems->Strings[0]+"'";
           if (DoQuery(dm1->Query1,strsql,1))
           {
              ClearEdit();
              btnref->Click();
              InfoDlg("删除完成!");
           }
           else
              SetButton(1,1,1,1,0,0,1,1);
           break;
   }
   dm1->db1->Connected=false;
}