Exemplo n.º 1
0
/*****************************************************************************
.
. Función C:			PRE_ActualizaTablaRelaciones
. Responsable:			César Armando Cruz Mendoza
. Descripcion: 			Cuando el usuario define un numero de velocodades,
.						se crean el número de renglones correspondientes en la
.						tabla de relaciones. Se tiene cuidado cuando el usuario
.						modifica a un valor menor y previamente existen ya
.						renglones creados.
. Parámetro de entrada:	ninguno
. Parámetro de salida:	cero
. Fecha de creación:	11 de Marzo de 2014
.
*****************************************************************************/
int PRE_ActualizaTablaRelaciones()
{
	int iRenglonesActuales = 0;	//numero de velocidades actuales
	int iRenglonesUsuario = 0;	//numero de velocidades indicadas por usuario
	
	//obtiene primero el numero de renglones que pueda tener la tabla
	GetNumTableRows (iPanelCatTransmisiones, pCatTransm_tblRelaciones, &iRenglonesActuales);

	//obtiene el numero de velocidades indicadas por el usuario
	GetCtrlVal(iPanelCatTransmisiones, pCatTransm_numNumeroVelocidades, &iRenglonesUsuario);
	
	//vefifica si se necesita aplicar alguna validación antes de crear los 
	//renglones en la tabla de relaciones
	if (iRenglonesActuales == 0)
	{
		//la tabla se encuentra vacia por lo que se procede a crear los renglones
		//sin validacion alguna
		InsertTableRows (iPanelCatTransmisiones, pCatTransm_tblRelaciones, 1,
						 iRenglonesUsuario, VAL_USE_MASTER_CELL_TYPE);
	}
	else
	{
		//ya existen renglones en la tabla, por lo que se debe analizar si se
		//deben insertar o eliminar renglones en la tabla de relaciones
		
		if (iRenglonesActuales < iRenglonesUsuario)
		{
			//se ha determinado que hacen falta mas renglones en la tabla de relaciones
			//por lo que se procede a insertar nuevos renglones al final
			//de la tabla de relaciones
			InsertTableRows (iPanelCatTransmisiones, pCatTransm_tblRelaciones, iRenglonesActuales+1,
						 iRenglonesUsuario-iRenglonesActuales, VAL_USE_MASTER_CELL_TYPE);
		}
		else
		{
			if (iRenglonesActuales != iRenglonesUsuario)
			{
				//se ha determinado que se deben eliminar renglones de la tabla
				//de relaciones
				DeleteTableRows (iPanelCatTransmisiones, pCatTransm_tblRelaciones, iRenglonesUsuario+1,
								 iRenglonesActuales-iRenglonesUsuario);
			}
		}
	}
	return 0;
}
Exemplo n.º 2
0
int CVICALLBACK CheckUptime (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			 char buffer[20000]; char pathName[MAX_PATHNAME_LEN];		char dirName[MAX_PATHNAME_LEN];   FILE    *hFile;	  char *p = ""; int i=0; int lenth=0; char temp[20]; //char value[50];
			 int flag =0;		 int row = 0; int column = 0; int insertcolumn = 0;  int confirmresult = 0;	 
	 
			 typedef struct
				{ 
					int x;
					int y; 
				} Point;

			 confirmresult = ConfirmPopup ("Check uptime","Do you want to check uptime now?");
		 
			 if ((outputHandle = LoadPanel (0, "Remotely.uir", OUTPUTVIEW)) < 0)
				 {
				 SetCtrlVal (panelHandle, PANEL_TEXTBOX,  "Load check uptime panel error,please try again!\r\n"); 
			 	 return -1;
				 }
			 SetPanelAttribute (outputHandle, ATTR_TITLE, "CheckUptimeRecord");
			 SetCtrlAttribute (outputHandle, OUTPUTVIEW_OUTPUTBOX, ATTR_VISIBLE, 0);
			 SetCtrlAttribute (outputHandle, OUTPUTVIEW_TABLE, ATTR_VISIBLE, 1);    
			 GetProjectDir (dirName); 
			 MakePathname (dirName, "uptime.csv", pathName);
			 WriteLog();
		   	 ResetTextBox (panelHandle, PANEL_TEXTBOX, ""); 
		 
			 if (hFile = fopen(pathName, "r"))
			{
		    	while (fgets(buffer, (int)sizeof(buffer), hFile))
		    	{
					row++;
					InsertTableRows (outputHandle, OUTPUTVIEW_TABLE, -1, 1, VAL_CELL_STRING);
			
					column = 0;
					p = buffer;
					flag = 0;
					do
					{
						column++;
						if (insertcolumn == 0)
						{
							InsertTableColumns (outputHandle, OUTPUTVIEW_TABLE, -1, 1, VAL_CELL_STRING);
						}
						lenth = FindPattern (p, 0, -1, ",", 0, 0);   // strip  ","
						if (lenth >=0)
						{
							memset(temp,0,20);
							for (i=0;i<lenth;i++)
							{
								temp[i] = *p;
								p++;
							}
							p++;
							SetTableCellVal (outputHandle, OUTPUTVIEW_TABLE, MakePoint(column, row), temp);
						}
						else
						{

							lenth = FindPattern (p, 0, -1, "\n", 0, 0);	  // strip  "\n"
							if (lenth >=0)								 // if find "\n"  write last string to last column
							{
							    memset(temp,0,20);
								for (i=0;i<lenth;i++)
								{
									temp[i] = *p;
									p++;
								}
								SetTableCellVal (outputHandle, OUTPUTVIEW_TABLE, MakePoint(column, row), temp);
								flag = -1;
								insertcolumn = 1;
							}
							else		// if not find "\n", write all to last column
							{
								SetTableCellVal (outputHandle, OUTPUTVIEW_TABLE, MakePoint(column, row), p);
								flag = -1;
								insertcolumn = 1;
							}
		
						}
				
					}while( flag != -1);
					SetTableColumnAttribute (outputHandle, OUTPUTVIEW_TABLE, -1, ATTR_COLUMN_WIDTH, 80);
					memset(buffer,0,20000);
												 
		    	}
		    	fclose(hFile);
			} 
			if (confirmresult)    // if user select yes to check uptime  install popup
			 {
				InstallPopup(outputHandle);
			 }
			else				 // if user select no, discard panel due to load it at beginning of this function
			{
				if (outputHandle)
				    {
		               DiscardPanel (outputHandle);
			        }
			}
			break;
	}
	return 0;
}