Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

excel con cvi

Buenas estoy haciendo un apliacion para usar el excel, consigo abrir el archivo excel con el labwindows, y consigo escribir y leer los datos, el problema es q ese archivo cuando intento abrirlo sin usar el labwindows no se abre el archivo, y no se cual puede ser el problema, os dejo el codigo q he usado.
 
ExcelRpt_ApplicationNew (1, &appHandle);
     ExcelRpt_WorkbookOpen (appHandle, "C:\\Documents and Settings\\Escritorio\\Prueba\\somefile.xls", &workbookHandle); 
     ExcelRpt_GetWorksheetFromName (workbookHandle, "Hoja1", &worksheetHandle);
     ExcelRpt_SetCellValue (worksheetHandle, "A2", ExRConst_dataInt, 50);
     ExcelRpt_GetCellValue (worksheetHandle, "A2", ExRConst_dataInt, &num);
     ExcelRpt_SetCellValue (worksheetHandle, "A1", ExRConst_dataInt, 100);
     SetCtrlVal(panelhandle,PANEL_NUMERIC,num); 
     
      
     CA_DiscardObjHandle (worksheetHandle);
     ExcelRpt_WorkbookClose (workbookHandle,1);
     CA_DiscardObjHandle (workbookHandle);
     ExcelRpt_ApplicationQuit (appHandle);
     CA_DiscardObjHandle (appHandle);
 
Gracias de antemano y un saludo
0 kudos
Mensaje 1 de 6
4.039 Vistas

Hola youssef, no había visto este mensaje anteriormente Emoticono triste

¿Has solucionado tu problema? Te comento que yo también tengo el mismo problema y he notado que en mi caso después de cerrar el Excel desde el CVI queda activo un proceso Excel en el task manager de windows (no importa que el CVI sea activo o no): ¿te pasa esto a tí también? Desde este momento cada vez que abro excel ya sea desde cvi o desde el menu start se abre solamente el marco de la ventana y no puedo abrir ningun archivo. Si reinicio la PC u solamente cierro aquel task nobrado excel todo funciona bien nuevamente. Si puedes, examina el task manager de tu pc para ver si te pasa esto a tí también.

Estoy utilizando Excel2000 en Windows XP SP2 con CVI7.1



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 kudos
Mensaje 2 de 6
4.030 Vistas

Hola Roberto si me pasaba lo mismo que a ti, No podia abrirlo porque se me quedaba abierto el proceso, si cerraba el proceso de Excel ya podia abrirlo, creo q me pasaba porque no cerraba bien el cerraba bien el excel del cvi, no se como pero lo he solucionado, ya me funciona perfectamente, no he cambiado nada en el codigo. si quieres te dejo mi codigo para que lo veas, yo estpy usando el excel xp con windows xp sp2 y  labwindows cvi 8.0. Roberto queria hacerte una consulta, estoy intentando mandar un mail del outlook , no se si habras hecho algun programa con el outlook, la cuestion es que consigo mandar el mail, el problema es que me sale una pantalla que me pone hay un programa intentando mandar un correo electronico desde su cuenta desea permitirlo? y tengo que darle a si para poder mandar el email. hay alguna manera de quitar esa pantalla usando codigo? estuve mirando en google y una de las soluciones era instalar un programa click yes, pero no me convence esa solucion, busco más bien una solucion en el codigo.

 

gracias de antemano y un saludo

0 kudos
Mensaje 3 de 6
4.027 Vistas

Te agradecería si pudieras poner el código que has utilizado para solucionar el problema del excel que no se cierra correctamente.

Por lo del mensaje e-mail, nuca tuve necesidad de enviarlos así que no puedo proporcionarte ayuda sobre este tema.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 kudos
Mensaje 4 de 6
4.003 Vistas

Hola Roberto te dejo aqui el codigo que he hecho espero q te sirva

 

   ExcelRpt_ApplicationNew (1, &appHandle); 
   ExcelRpt_SetApplicationAttribute (appHandle, ER_AP_ATTR_VISIBLE,ExRConst_False);  
   ExcelRpt_WorkbookNew(appHandle, &workbookHandle) ; 
   ExcelRpt_WorkbookSave (workbookHandle, "c:\\hoja de calculo", 0);
      
           
      ExcelRpt_GetWorksheetFromName (workbookHandle,"Hoja1", &worksheetHandle); 
      ExcelRpt_SetCellValue (worksheetHandle, "G2", ExRConst_dataString,cadena);
      ExcelRpt_SetCellValue (worksheetHandle, "B4", ExRConst_dataString,"Bombas de Pretatamiento");
      ExcelRpt_SetCellValue (worksheetHandle, "B5", ExRConst_dataString,"Bomba1");
      ExcelRpt_SetCellValue (worksheetHandle, "C5", ExRConst_dataString,"Bomba2");
      ExcelRpt_SetCellValue (worksheetHandle, "E4", ExRConst_dataString,"Bombas de Biodisco");
      ExcelRpt_SetCellValue (worksheetHandle, "E5", ExRConst_dataString,"Bomba1");
      ExcelRpt_SetCellValue (worksheetHandle, "F5", ExRConst_dataString,"Bomba2");
      ExcelRpt_SetCellValue (worksheetHandle, "H4", ExRConst_dataString,"Bombas de Fangos");
      ExcelRpt_SetCellValue (worksheetHandle, "H5", ExRConst_dataString,"Bomba1");
      ExcelRpt_SetCellValue (worksheetHandle, "I5", ExRConst_dataString,"Bomba2");
      ExcelRpt_SetCellValue (worksheetHandle, "K4", ExRConst_dataString,"Bombas de Sacos Filtrantes");
      ExcelRpt_SetCellValue (worksheetHandle, "K5", ExRConst_dataString,"Bomba1");
      ExcelRpt_SetCellValue (worksheetHandle, "L5", ExRConst_dataString,"Bomba2");

      CA_DiscardObjHandle (worksheetHandle);
      ExcelRpt_WorkbookClose (workbookHandle, 1);
      CA_DiscardObjHandle (workbookHandle);
      ExcelRpt_ApplicationQuit (appHandle);
      CA_DiscardObjHandle (appHandle);

Me gustaria preguntarte una cosa Roberto tengo el siguiente problema, estoy intentando conectar dos maquinas con la funcion RegisterTCPServer (puerto1, (tcpFuncPtr)&TCPcallback, 0);    He conseguido hacer que funcione, el problema q tengo es q tengo una tabla, de la cual tomo la hora en el formato hh:mm por lo q la tabla es de cadena de caracteres, utilizo los siguientes comandos para tomar los datos de la tabla

void *String;String=malloc(sizeof(cadena2)*28);
GetTableCellRangeVals (panel,PANEL_TIME_TABLE,MakeRect(1,2,7,4),String,VAL_COLUMN_MAJOR);

y lo envio al servidor de la siguiente manera:

ClientTCPWrite (handle,String, 256, 1000);

 

el problema q tengo es q no se como leer los datos en la maquina del servidor para usar la siguiente funcion:

int *TCPcallback (unsigned handle, int xType, int errCode, void *callbackData)
{
    char  buffer[256];
 int messageSize=256;
 int bytesToRead;
 int bytesRead;
 char letra;
 char cadena[256];
 char *cadena2;
 void *String;
 char cadena3[2];
 
 
 
 if (xType == TCP_CONNECT) {
        printf("conectado %d",errCode);
  conectado=1;
  handle2=handle;
  encender1();
  encender2();
 }
 
 if ( xType == TCP_DATAREADY)
 {
  printf("leyendo %d",errCode);
  bytesToRead= messageSize;
  while (bytesToRead > 0)
  {
   bytesRead = ServerTCPRead (handle2, &buffer[messageSize - bytesToRead], bytesToRead, 5000);
   bytesToRead -= bytesRead;
  } 

SetTableCellRangeVals (panel3,PANEL_TIME_TABLE,MakeRect(1,2,7,4),void *arravalue,VAL_COLUMN_MAJOR);

no se q poner en el campo void *array value, si pongo la variable buffer me da error, asi q no se como recoger los datos q se envian por TCP, espero haberme aclarado. espero q puedas ayudarme a resolverlo.

gracias de antemano y un saludo Roberto

 

 

0 kudos
Mensaje 5 de 6
3.997 Vistas

Que tal  disculpen la molestia

Los contacte por medio de post de Nacional Instruments

 Tengo  el mismo problema que ustedes al utilizar el instrumento excelreport.fp  para saber las filas de mi hoja de calculo este me causa un conflicto ya que me deja en espera el proceso de Excel en el task manager de windows a la hora de salirme de la aplicacion de CVI. Existe alguna manera de abortar este proceso por medio de codigo ya que tengo que estar haciendolo manualmente roberto lei en el post de que al parecer tu habias tenido un problema similar de lo que estoy seguro es que este instrumento me causa el problema ya que al utilizar esta funcion ExcelRpt_GetWorksheetAttribute (ExcelWorksheetHandle, ER_WS_ATTR_USED_RANGE, &c_range) que forma parte de este instrumento  me ocurre esto si no la utilizo el programa funciona bien pero al utilizarla se presenta este problema .

Estoy programando en CVI 7.1

El problema que tengo es por cuestion de versiones en CVI o es por que el instrumento que estoy utilizando no es compatible con CVI 7.1????

 

 

Gracias por la ayuda que puedan brindarme.

0 kudos
Mensaje 6 de 6
3.738 Vistas