Updates from March, 2006 Toggle Comment Threads | Keyboard Shortcuts

  • montelof 12:51 pm on March 17, 2006 Permalink | Reply  

    Casi terminado!! 

    Ya casi termino este proyecto, ahora solo estoy agregando unas validaciones del usuario y algunas opciones extra, como por ejemplo, guardar los cambios, cargar las opciones guardadas, los resultados los estoy grabando en unas hojas de excel, cada nuevo query se agrega a una hoja nueva, a continuacion esta el codigo para agregar la nueva hoja de excel:
     

    public string ExcelTable

    {

    set

    {

    Microsoft.Office.Interop.Owc11.

    Worksheet sheet2;

    //como la primera hoja d eexcel ya existe ya no la tengo q agregar

    if (!firstsheet)

    {

    //tengo q agregar una nueva hoja al final de workbook

    sheet2 = (Microsoft.Office.Interop.Owc11.Worksheet)axSpreadsheet1.ActiveWorkbook.Worksheets.Add(System.Reflection.Missing.Value, axSpreadsheet1.ActiveWorkbook.Worksheets.Count, System.Reflection.Missing.Value, System.Reflection.Missing.Value);

    int j = 1;

    bool exists;

    do

    {

    //esta variable me va a indicar cuando el nombre de la nueva hoja exista o no exista

    exists =

    false;

    //checo el nombre de todas las hojas q estan en el workbook

    for (int c = 1; c <= axSpreadsheet1.ActiveWorkbook.Worksheets.Count; c++)

    { //le asigno el valor de la comparacion del nombre con el nuevo nombre q pretendo ponerle a la nueva hoja

    exists = (((Microsoft.Office.Interop.Owc11.

    Worksheet)axSpreadsheet1.ActiveWorkbook.Worksheets[c]).Name == "Sheet" + j.ToString());

    //si existe ese nombre rompo el ciclo e intento con un nuevo nombre

    if (exists)

    break;

    }

    j++;

    //el ciclo continua hasta q puedo encontrar un nombre q no exista

    }

    while (exists);

    //le asigno el nombre

    ((Microsoft.Office.Interop.Owc11.

    Worksheet)axSpreadsheet1.ActiveWorkbook.Worksheets[axSpreadsheet1.ActiveWorkbook.Worksheets.Count]).Name = "Sheet" + (–j).ToString();

    }

    //una vez teniendo el nombre la asigno los valores q habia pasado como parametro

    ((Microsoft.Office.Interop.Owc11.

    Worksheet)axSpreadsheet1.ActiveWorkbook.Worksheets[axSpreadsheet1.ActiveWorkbook.Worksheets.Count]).Rows.ParseText(value, ",", false, "");

    this.firstsheet = false;

    this.SetRangecolor();

    }

    }

    //funcion para cambiar el estilo des la celdas 

    public void SetRangecolor()

    {

    axSpreadsheet1.ActiveSheet.get_Range(axSpreadsheet1.Cells[1, 1], axSpreadsheet1.Cells[1, 50]).Font.set_Bold(

    true);

    axSpreadsheet1.ActiveSheet.Columns.AutoFit();

    }

     

     

    Estare poniendo mas codigo para manejar este componente de office, ya q yo he buscado en internet y casi no hay informacion, asi alguien podra usar este codigo como ayuda…

     

    Por cierto ya son 2200 lineas de codigo, escritas a mano, es decir sin contar las q se agregan en modo de diseño.

     

     

     

     
  • montelof 8:10 am on March 14, 2006 Permalink | Reply  

    Por fin un descanso 

    Bueno este fin de semana me lo pase descansando y jugando Tibia, mi juego favorito, si alguien quiere saber un poco mas de este juego visite http://www.tibia.com y busque por mi caracter ‘Zestar Artonipin’ en el mundo de Balera, este juego es muy adictivo, asi q si comienzan a jugarlo pueden irse olvidando de salir al cine, salir de paseo, a mcallen, bueno no hay muchas lugares a donde ir pero almenos en el juego pueden ir a cazar osos, venados, ir al mercado de comida, ropa, herramientas, espadas O.o, luego ir a matar un ‘Minotauro’, y si tienes suerte y no te topas con un ‘Player Killer’ podras subir muy pronto de nivel, y asi poder ir a molestar a los ‘noobs’ q quieren subir de nivel, claro q luego ellos suben de nivel y molestan a los q van llegando y asi sigue la cadena……
     
  • montelof 5:52 pm on March 7, 2006 Permalink | Reply  

    1300 Lineas 

    llegue a las 1300 lineas!!
     
    llevo una semana con la aplicacion y ya llegue a las 1300 lineas, aunq realmente no es demaciado, solo como 25 lineas por hora, pero bueno para cada linea hay q pensarle mucho…es como si fueras a armar un rompecabezas de 1300 piezas, es como poner una pieza casi cada 2 minutos, trabajando 10 horas al dia….
     
     
     
     
  • montelof 10:26 am on March 6, 2006 Permalink | Reply  

    Desvelado 

    Bueno hoy ando un poco desvelado, uno no deberia trabajr los domingos a las 11 de la noche…. pero bueno hay q recuperar el tiempo perdido, o mas bien aprovechado en otras cosas mas importantes como por ejemplo descansar…
     
    Hoy por fin solucione un pequeño problema q tenia para sincronizar la informacion de la ventana de criterios, es decir cuando un usuario selecciona un criterio para una columna usando la ventana de criterios, esta debe conservar la informacion si el usuario vuelve a hacer doble click sobre el mismo renglon del grid. la solucion es la siguiente:
     
    crear dos funciones:
     

    public void UpdateTabData()

    {

    this.CmbIndex = ValueCmbIndex;

    this.LstIndex = ValueLstIndex;

    this.TextValue = ValueText;

    this.NumberValue = ValueMskText;

    this.Date = ValueDateTime;

    this.Description = ValuelblDesc;

    this.ColName = ValuelblColName;

    }

    public void UpdateTabControls()

    {

    if (this.cmb!=null)

    ValueCmbIndex =

    this.cmb.SelectedIndex;

    if(this.lst!=null)

    ValueLstIndex =

    this.lst.SelectedIndex;

    if(this.txt!=null)

    ValueText =

    this.txt.Text;

    if(this.msktxt!=null)

    ValueMskText =

    this.msktxt.Text;

    if(this.dtp!=null)

    ValueDateTime =

    this.dtp.Value;

    if(this.desc!=null)

    ValuelblDesc = this.desc.Text;

    if(this.colname!=null)

    ValuelblColName =

    this.colname.Text;

    }

     

    la primera toma los valores de las variables q conservan el valor del usuario y se lo pasan al control, esta es llamada cuando el usuario hace click sobre un renglon ya antes modificado, la segunda funcion toma los valores de los controles y los guarda en unas variables, para su uso posterior, todos los valores son guardaos en un arreglo de datos de la siguiente forma:

     

    public int InterfaceID

    {

    get

    {

    return this.QDIntID;

    }

    set

    {

    this.QDIntID = value;

    this.dTCInterfaceSettingsTableAdapter.Fill(this.navigatorEnterpriseDataSet1.DTCInterfaceSettings, value);

    this.criteriasWindow1.TabsWindow.Navigator = this.Navigator;

    this.tempTab = new CriteriasForm.TabData[this.navigatorEnterpriseDataSet1.DTCInterfaceSettings.Rows.Count];

    int c = 0;

    foreach (DataRow dr in this.navigatorEnterpriseDataSet1.DTCInterfaceSettings)

    {

    CriteriasForm.

    TabData tempdata = this.criteriasWindow1.TabsWindow.ExecuteCategorySearch(int.Parse(dr["SearchEngineID"].ToString()));

    tempTab[c++] = tempdata;

    }

    }

    }

    Cuando la paso el interfazId, actualizo todos los valores usando la informacion q esta en el grid como parametro y los guardo en un arreglo.

     

     

     

     
  • montelof 11:21 am on March 4, 2006 Permalink | Reply  

    otra vez Sabado trabajando! 

    Beno ya se me esta haciedo costumbre trabajar los sabado, ya ni he jugado tibia(http://www.tibia.com ) y bueno esta vez es porq ayer no vine a trabajar, y ya me estoy atrasando mucho, ademas q hacer toda la documentacion de un sistema es muy importante, y aunq aveces es engorroso te puede sacar de apuros despues cuando tienes q recordar como funcionaba…
     
    bueno a Trabajar!!….
     
    lo q tengo q hacer hoy:
     
    *Termina rla interfaz de prebusquedas.
    *Optimizar el acceso a la DB, ya q no queremos sobresaturar el servidor.
    *Investigar como hacer para limitar el numeor de registros q se traen del servidor.
    *si termino la interfaz comenzar a crear los promeros queries…
     
     
    A rato pongo un poco de codigo… si alguien quere saber un poco de acceso a DB deje un comentario…
     
     
     
     
  • montelof 8:04 am on March 2, 2006 Permalink | Reply  

    que chido VS2005 

    Estos días no he tenido mucho tiempo de escribir aquí, algunos de los avances q he tenido en el código son bastantes pero aun me falta lo mas importante, tratare de poner mas código aquí en adelante…
     
    *La interfaz de usuario esta toda dividida en librería de controles, así q para comunicarme tengo q tener siempre programadas las interfaces.
     
    *No pude tener una librería de acceso a DB, todo esta combinado.
     
    *Se tuvo q programar una ventanita especial para prebúsquedas, para encontrar primero lo q quiero buscar.
     
    Un poco de código:

     
    /** para obtener el renglon y la columna de un grid al q se la hace click **/
     

    private void dataGridView1_MouseDoubleClick(object sender, MouseEventArgs e)

    {

    this.ColumnIndex = this.dataGridView1.HitTest(e.X, e.Y).ColumnIndex;

    this.RowIndex = this.dataGridView1.HitTest(e.X, e.Y).RowIndex;

    }

     
     
    /** Para cambiar un valor del grid teniendo la posicion **/
    //siempre habia pensado en q era mejor cambiar el dataset directamente, pero en este caso son Unboundedcolumns osea q no esta relacionadas a un DataSource.
     

    this

    .dataGridView1[5, this.CurrentRow].Value = Value;

     

    /**Yo no sabia q en el TabControl no se pueden hacer invisibles sus paginas, se tiene q implementar algo asi: **/
     

    public bool visible

    {

    set

    {

    if (!value)

    {

    //el TabControlParent de la pagina

    //si se quere ocultar verificar primero q lo contenga

    if (this.tabctrl.Contains(this.tab))

    this.tabctrl.Controls.Remove(this.tab);

    }

    else

    //si se quiere mostrar verificar primero q no lo contenga y luego se agrega

    if (!this.tabctrl.Contains(this.tab))

    this.tabctrl.Controls.Add(this.tab);

    }

    get

    {//si lo contiene entonces queire decir q si es visible

    return (this.tabctrl.Controls.Contains(this.tab.Parent));

    }

    }

     
    Ha por cierto lo chido de VS2005 es q tiene una representacion visual de todas las clases q se manejan en el codigo, muestra unas grafiquitas donde se pueden agregar ahi los metodos, propiedades, en si todo lo q se le pueda agregar o cambiar a una clase.. luego pongo un screenshot, ademas los ejecutables se pueden instalar remotamente, o mas bien ejecutar remotamente, otra cosa chida es q por ejemplo cuando se esta Debugueando, ayuda al programador a resolver el problema, ademas de q muestra toda la informacion referente a esa parte del codigo, una cosa q le faltaba al VS2003 era q no se podian ver todas las referencias a una funcion, en el 2005 si se puede hacer eso….
     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel