Beispiel #1
0
afx_msg void CRetrConfigDlg::OnDel()
{	
	CCellID SelectedCell;
	CWordArray arGrigIndexes;	

	for(int m = 1; m < m_Grid.GetRowCount(); m++)
	{
		SelectedCell.row=m;
		SelectedCell.col=0;
		BOOL bRowSelected = FALSE;
		for(int s = 1; s < m_Grid.GetColumnCount(); s++)
		{
			if(m_Grid.GetItemState(SelectedCell.row,s) & GVIS_SELECTED)
			{
				bRowSelected=TRUE;
				break;
			}
		}
		if(bRowSelected)
		{			
			arGrigIndexes.Add(SelectedCell.row);								
		}
	}
	for(int j = 0; j < arGrigIndexes.GetSize();j++)
	{				
		m_Grid.DeleteRow(arGrigIndexes[j]);				
		m_Retr.m_ManyRetrArray.RemoveAt(arGrigIndexes[j]-1);				
		for(int v = j+1; v < arGrigIndexes.GetSize();v++)
		{
			arGrigIndexes[v]--;
		}
	}	
	SaveGrid();		
	UpdateGrid();
}
Beispiel #2
0
void CPreferences::GetLanguages(CWordArray& aLanguageIDs)
{
	const SLanguage* pLang = _aLanguages;
	while (pLang->lid){
		//if (pLang->bSupported)
		//show all languages, offer download if not supported ones later
		aLanguageIDs.Add(pLang->lid);
		pLang++;
	}
}
Beispiel #3
0
afx_msg void CKorundmDlg::OnDel()
{
	if(m_GridData.GetRowCount()==1)
		return;

	ProcessSave();
/*	CCellID pCell = m_GridData.GetFocusCell();
	
	if((pCell.row > 0)&&(pCell.col >= 0))
	{
		m_Korundm.m_IndividualStructureKorundArray.RemoveAt(pCell.row-1);		
		UpdateDataGrid();
		UpdateKPGrid();
	}*/
	CCellID SelectedCell;
	CWordArray arGrigIndexes;	

	for(int m = 1; m < m_GridData.GetRowCount(); m++)
	{
		SelectedCell.row=m;
		SelectedCell.col=0;
		BOOL bRowSelected = FALSE;
		for(int s = 1; s < m_GridData.GetColumnCount(); s++)
		{
			if(m_GridData.GetItemState(SelectedCell.row,s) & GVIS_SELECTED)
			{
				bRowSelected=TRUE;
				break;
			}
		}
		if(bRowSelected)
		{			
			arGrigIndexes.Add(SelectedCell.row);								
		}
	}
	for(int j = 0; j < arGrigIndexes.GetSize();j++)
	{				
		m_GridData.DeleteRow(arGrigIndexes[j]);				
		m_Korundm.m_IndividualStructureKorundArray.RemoveAt(arGrigIndexes[j]-1);				
		for(int v = j+1; v < arGrigIndexes.GetSize();v++)
		{
			arGrigIndexes[v]--;
		}
	}
	if(arGrigIndexes.GetSize()>0)
	{
		UpdateDataGrid();
		//UpdateKPGrid();
	}	
}
Beispiel #4
0
void CZipArchive::DeleteFiles(CStringArray &aNames)
{
	CWordArray indexes;
	
	for (WORD i = 0; i < GetNoEntries(); i++)
	{
		CFileHeader fh;
		GetFileInfo(fh, i);
		for (int j = 0; j < aNames.GetSize(); j++)
			if (!aNames[j].CollateNoCase(fh.m_szFileName))
			{
				indexes.Add(i);
				break;
			}
	}
	
	DeleteFiles(indexes);
}
Beispiel #5
0
afx_msg void CTuConfigTUDlg::OnDel()
{
	CCellID SelectedCell;
	CWordArray arGrigIndexes;	

	for(int m = 1; m < m_Grid.GetRowCount(); m++)
	{
		SelectedCell.row=m;
		SelectedCell.col=0;
		BOOL bRowSelected = FALSE;
		for(int s = 1; s < m_Grid.GetColumnCount(); s++)
		{
			if(m_Grid.GetItemState(SelectedCell.row,s) & GVIS_SELECTED)
			{
				bRowSelected=TRUE;
				break;
			}
		}
		if(bRowSelected)
		{			
			arGrigIndexes.Add(SelectedCell.row);								
		}
	}
	for(int j = 0; j < arGrigIndexes.GetSize();j++)
	{				
		m_Grid.DeleteRow(arGrigIndexes[j]);				
		m_TuArray.RemoveAt(arGrigIndexes[j]-1);				
		for(int v = j+1; v < arGrigIndexes.GetSize();v++)
		{
			arGrigIndexes[v]--;
		}
	}	
	/*CCellID pCell = m_Grid.GetFocusCell();
	
	if((pCell.row > 0)&&(pCell.col >= 0))
	{
		m_TuArray.RemoveAt(pCell.row-1);		
	}*/
	SaveGrid();	
	UpdateGrid();
}
Beispiel #6
0
void CSmartFieldsDialog::UpdateFields(BOOL fReflow, int nMacro /*=-1*/)
{
	CWordArray cwaMacros;

/* If "values" changed, reflow all... */

	if (m_pMacroServer->ShowMacroValues() != m_fShowValues)
	{
		ASSERT(nMacro == -1);
		m_pMacroServer->ShowMacroValues(m_fShowValues);
		fReflow = TRUE;
	}

/* If a macro changed, update it... */

	if (nMacro != -1)
	{
		CMacro* pMacro = m_pMacros->Macro(nMacro);
		ASSERT(pMacro != NULL);

		cwaMacros.Add(pMacro->Id() + MACRO_CHARACTER);
	}

/* Reflow if needed. */

	m_pMacroServer->ModifiedMacros();
	m_pDoc->SetModifiedFlag();

	if (fReflow)
	{
		m_pDoc->ReflowMacros(nMacro == -1 ? NULL : &cwaMacros);
		if (m_pReflowHook != NULL)
		{
			m_pReflowHook(m_pReflowData);
		}
	}
}
Beispiel #7
0
BOOL CRetrConfigDlg::SaveGrid(void)
{
	CString str;
	CManyRetrArray ManyRetrArray;

	for(int i = 1; i < m_Grid.GetRowCount();i++)
	{
		ManyRetr tmp;		

		str = m_Grid.GetItemText(i,1);
		tmp.START_ADRES_OBJECT = atoi(str);

		str = m_Grid.GetItemText(i,2);
		tmp.START_ADRES_RETR = atoi(str);

		str = m_Grid.GetItemText(i,3);
		tmp.NUM_MANY_RETR_OBJECT = atoi(str);
	
		if(tmp.NUM_MANY_RETR_OBJECT == 0)
		{
			str.Format("Не задано количество объектов ретрансяляции! Строка: %d",i);
			m_Grid.SetFocusCell(i,3);
			AfxMessageBox(str);
			return FALSE;
		}

		str = m_Grid.GetItemText(i,4);
		if(str.IsEmpty())
		{
			str.Format("Не задан процесс ретрансяляции! Строка: %d",i);
			m_Grid.SetFocusCell(i,4);
			AfxMessageBox(str);
			return FALSE;
		}
		str.TrimLeft('№');
		int index = str.Find(' ');
		str = str.Left(index);
		tmp.PATH_DIRECT = atoi(str);		
		
		tmp.FLAG_RETR = 5;		

		tmp.strCOMMENT = m_Grid.GetItemText(i,5);

		ManyRetrArray.Add(tmp);
	}
	for(int j = 0; j < ManyRetrArray.GetSize(); j++)
	{
		if((ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT > m_Retr.NUM_RETR_OBJECT)
			||(ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT > m_Retr.NUM_RETR_OBJECT))
		{
			str.Format("Выход за пределы адресного пространства ретрансляции! Строка: %d",j+1);			
			AfxMessageBox(str);
			//return FALSE;
		}
		//Уточнить у Виталика!!!!			
		if(ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT > m_Main_Set.m_ProcessInfoArray[ManyRetrArray[j].PATH_DIRECT-1].AMOUNT_SIGNIFICATE)
		{
			str.Format("Выход за пределы адресного пространства процесса! Строка: %d",j+1);			
			AfxMessageBox(str);
			//return FALSE;
		}
		
		for(int k = j+1; k < ManyRetrArray.GetSize(); k++)
		{
			if((ManyRetrArray[j].NUM_MANY_RETR_OBJECT == ManyRetrArray[k].NUM_MANY_RETR_OBJECT)
				&&(ManyRetrArray[j].PATH_DIRECT == ManyRetrArray[k].PATH_DIRECT)
				&&(ManyRetrArray[j].START_ADRES_OBJECT == ManyRetrArray[k].START_ADRES_OBJECT)
				&&(ManyRetrArray[j].START_ADRES_RETR == ManyRetrArray[k].START_ADRES_RETR))			
			{
				str.Format("Одинаковые наборы ретрансляции: %d и %d !",j+1,k+1);			
				AfxMessageBox(str);
				return FALSE;
			}
			if(ManyRetrArray[j].PATH_DIRECT == ManyRetrArray[k].PATH_DIRECT)//proverka na naloghenie
			{	
				//Газин сказал не надо проверять!!!
				/*//k=15..25   j=10..20 
				if((ManyRetrArray[k].START_ADRES_OBJECT >= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_OBJECT <= ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов в карте памяти для наборов ретрансляции: %d и %d !",j+1,k+1);
					AfxMessageBox(str);
					return FALSE;
				}
				//k=1..25   j=10..20 
				if((ManyRetrArray[k].START_ADRES_OBJECT <= ManyRetrArray[j].START_ADRES_OBJECT)
					&&(ManyRetrArray[k].START_ADRES_OBJECT+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов в карте памяти для наборов ретрансляции: %d и %d !",j+1,k+1);
					AfxMessageBox(str);
					return FALSE;
				}
				//k=1..15   j=10..20 
				if((ManyRetrArray[k].START_ADRES_OBJECT+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_OBJECT)
					&&(ManyRetrArray[k].START_ADRES_OBJECT+ManyRetrArray[k].NUM_MANY_RETR_OBJECT <= ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов в карте памяти для наборов ретрансляции: %d и %d !",j+1,k+1);
					AfxMessageBox(str);
					return FALSE;
				}*/
				//////////////////////////////////////////////////////////////////////////////////////////////////
				//k=15..25   j=10..20 
				if((ManyRetrArray[k].START_ADRES_RETR >= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_RETR < ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов ретрансляции для наборов ретрансляции: %d и %d !",j+1,k+1);			
					AfxMessageBox(str);
					return FALSE;
				}
				//k=1..25   j=10..20 
				if((ManyRetrArray[k].START_ADRES_RETR <= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_RETR+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов ретрансляции для наборов ретрансляции: %d и %d !",j+1,k+1);			
					AfxMessageBox(str);
					return FALSE;
				}
				//k=1..15   j=10..20 
				if((ManyRetrArray[k].START_ADRES_RETR >= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_RETR+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_RETR+ManyRetrArray[k].NUM_MANY_RETR_OBJECT <= ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов ретрансляции для наборов ретрансляции: %d и %d !",j+1,k+1);			
					AfxMessageBox(str);
					return FALSE;
				}				
			}
		}		
	}

	CWordArray arrPD;
	for(int j = 0; j < ManyRetrArray.GetSize(); j++)
	{
		BOOL bFound = FALSE;
		for(int l = 0; l < arrPD.GetSize(); l++)
		{
			if(arrPD[l] == (WORD)ManyRetrArray[j].PATH_DIRECT)
			{
				ManyRetrArray[j].PLACE_OF_PUT = l;
				bFound = TRUE;
				break;
			}
		}
		if(!bFound)
		{
			ManyRetrArray[j].PLACE_OF_PUT = arrPD.Add((WORD)ManyRetrArray[j].PATH_DIRECT);			 
		}
	}	

	m_Retr.NUM_TRANSMIT_DIRECT = arrPD.GetSize();
	m_Retr.m_ManyRetrArray.RemoveAll();
	m_Retr.m_ManyRetrArray.Copy(ManyRetrArray);
	return TRUE;
}
Beispiel #8
0
void CRetrConfigDlg::UpdateGrid(void)
{
	CString str;
	CStringArray aOptions;
	CWordArray aProcesses;
	for(int j = 0; j < m_Main_Set.m_ProcessInfoArray.GetSize();j++)
	{
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 2)
		{
			str.Format("№%d (MODBUS-slave)",j+1);
			aProcesses.Add(j+1);
			aOptions.Add(str);
		}
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 4)
		{
			str.Format("№%d (IEC870-5-101-slave)",j+1);
			aOptions.Add(str);
			aProcesses.Add(j+1);
		}
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 8)
		{
			str.Format("№%d (IEC870-5-104-slave PtP)",j+1);
			aOptions.Add(str);
			aProcesses.Add(j+1);
		}		
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 14)
		{
			str.Format("№%d (IEC870-5-104-slave PtMP)",j+1);
			aOptions.Add(str);
			aProcesses.Add(j+1);
		}		
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 18)
		{
			str.Format("№%d (Вывод на ДЩ)",j+1);
			aOptions.Add(str);
			aProcesses.Add(j+1);
		}	
	}

	m_Grid.DeleteNonFixedRows();
	
	for(int i = 0; i < m_Retr.m_ManyRetrArray.GetSize();i++)
	{
		int nIndex = m_Grid.InsertRow(NULL);

		str.Format("%d",i+1);
		m_Grid.SetItemText(nIndex,0,str);
		str.Format("%d",m_Retr.m_ManyRetrArray[i].START_ADRES_OBJECT);
		m_Grid.SetItemText(nIndex,1,str);
		str.Format("%d",m_Retr.m_ManyRetrArray[i].START_ADRES_RETR);
		m_Grid.SetItemText(nIndex,2,str);
		str.Format("%d",m_Retr.m_ManyRetrArray[i].NUM_MANY_RETR_OBJECT);
		m_Grid.SetItemText(nIndex,3,str);
				
		m_Grid.SetCellType(nIndex,4, RUNTIME_CLASS(CGridCellCombo));
		CGridCellCombo *pCell = (CGridCellCombo*) m_Grid.GetCell(nIndex,4);		
		pCell->SetOptions(aOptions);		
		pCell->SetStyle(CBS_DROPDOWNLIST); //CBS_DROPDOWN, CBS_DROPDOWNLIST, CBS_SIMPLE	
		for(int k = 0; k < aProcesses.GetSize(); k++)
		{
			if(aProcesses[k] == m_Retr.m_ManyRetrArray[i].PATH_DIRECT)
			{
				pCell->SetCurSel(k);
				break;
			}
		}
		m_Grid.SetItemText(nIndex,5,m_Retr.m_ManyRetrArray[i].strCOMMENT);
	}

	m_Grid.AutoSize();	
	m_Grid.Refresh();
}