Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/02/2010, 12:36
nat_chan07
 
Fecha de Ingreso: enero-2010
Mensajes: 62
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: php gtk - crear tabla con datos de un array

continuacion
Código PHP:
    $field_header = array('TgrpA', 'TgrpB', 'Duracion'); // note 3

    // Creates the view to display the list store
    
$view = new GtkTreeView($model); // note 4
    
$scrolled_win->add($view); // note 5

     // Creates columns
    
for ($col=0; $col<count($field_header); $col++) {
        
$cell_renderer = new GtkCellRendererText();
        
$column = new GtkTreeViewColumn($field_header[$col],
            
$cell_renderer, 'text', $col);
        
$view->append_column($column);
    }

    
//pupulates the data


     
for ($row=0; $row<count($data); $row++) {
        
$values = array();
        for (
$col=0; $col<count($data[$row]); ++$col) {
            
$values[] = $data[$row][$col];

        }
        
$model->append($values); // note 6
        //print_r (array_values($values));
    
}


}


class 
entel extends base_module {
    function 
setup($vbox) {
        
$this->dialog->set_size_request(800, 600);
        
$title = new GtkLabel("Entel 2");
        
$vbox->pack_start($title, 0, 0);
        
$vbox->pack_start(new GtkLabel(), 0, 0);
        
$flat_file_db = 'C:\Users\Nat\Desktop\proyectoGTK\php-gtk2\en-2-2.txt'; // note 1
        
$handle = @fopen($flat_file_db, "r");

        
//array entel 2
        
$array_TgrpA = array();
        
$array_TgrpB = array();
        
$array_Nadi142 = array();
        
$array_Fecha = array();
        
$array_Hora = array();
        
$array_Durac = array();
        
$array_NadiB = array();
        
$array_number = array();
        if (
$handle) {
        while (!
feof($handle)) {
        
$buffer = fgets($handle);
                   
$TgrpA = substr("$buffer",1, 6);
                   
$TgrpB = substr("$buffer",7, 7);
                   
$Nadi142 = substr("$buffer",30, 9);
                   
$Fecha = substr("$buffer",80, 8);
                   
$Hora = substr("$buffer",89, 8);
                   
$Durac = substr("$buffer",98, 5);
                   
$NadiB = substr("$buffer",107, 15);
                   
$number = substr("$buffer", 107, 3);

    
array_push($array_TgrpA, $TgrpA);
    
array_push($array_TgrpB, $TgrpB);
    
array_push($array_Nadi142, $Nadi142);
    
array_push($array_Fecha, $Fecha);
    
array_push($array_Hora, $Hora);
    
array_push($array_Durac, $Durac);
    
array_push($array_NadiB, $NadiB);
    
array_push($array_number, $number);

                 }
    
$data = array($array_TgrpA,
        
$array_TgrpB,
        
$array_Durac);

    
//numbers
    
$array_count_number = array_count_values($array_number); // muestra cuantas veces se repite el mismo valor
    
$array_keys_number = array_keys($array_count_number);   // muestra las llaves de los numeros buscados con $array_count_number
   /*
    //TgrpA
    $array_count_TgrpA = array_count_values($array_TgrpA);
    $array_keys_TgrpA = array_keys($array_count_TgrpA);
    //TgrpB
    $array_count_TgrpB = array_count_values($array_TgrpB);
    $array_keys_TgrPB = array_keys($array_count_TgrpB);*/



function obtenerUbicacionIguales($NumeroIndice, $array_number)
{
    
$resultado = array();
    for(
$i = 0; $i < count($array_number); $i++)
        if(
$array_number[$i] == $NumeroIndice) // Si el numero indice buscado es igual al indice en la posicion actual
            
$resultado[] = $i; // Agregar la posicion / ubicacion en el resultado.
    
return $resultado;
}


//OBTENER VALORES 1
function obtenerValoresTgrpA($NumeroIndice, $array_number, $array_TgrpA)
{
    
$resultado = array();
    for(
$i = 0; $i < count($array_number); $i++)
        if(
$array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            
$resultado[] = $array_TgrpA[$i]; // Agregar la palabra correspondiente en el resultado.
    
return $resultado;
}

function 
obtenerValoresTgrpB($NumeroIndice, $array_number, $array_TgrpB)
{
    
$resultado = array();
    for(
$i = 0; $i < count($array_number); $i++)
        if(
$array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            
$resultado[] = $array_TgrpB[$i]; // Agregar la palabra correspondiente en el resultado.
    
return $resultado;
}

function 
obtenerValoresNadi142($NumeroIndice, $array_number, $array_Nadi142)
{
    
$resultado = array();
    for(
$i = 0; $i < count($array_number); $i++)
        if(
$array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            
$resultado[] = $array_Nadi142[$i]; // Agregar la palabra correspondiente en el resultado.
    
return $resultado;
}

function 
obtenerValoresNadiB($NumeroIndice, $array_number, $array_NadiB)
{
    
$resultado = array();
    for(
$i = 0; $i < count($array_number); $i++)
        if(
$array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            
$resultado[] = $array_NadiB[$i]; // Agregar la palabra correspondiente en el resultado.
    
return $resultado;
}

function 
obtenerValoresDurac($NumeroIndice, $array_number, $array_Durac)
{
    
$resultado = array();
    for(
$i = 0; $i < count($array_number); $i++)
        if(
$array_number[$i] == $NumeroIndice) // Si coincide el indice con el numero indice requerido
            
$resultado[] = $array_Durac[$i]; // Agregar la palabra correspondiente en el resultado.
    
return $resultado;
}

// FIN OBTENER VALORES1

       
display_table($vbox, $data);
                 }
    }
}

class 
softswitch extends base_module {
    function 
setup($vbox) {
        
$this->dialog->set_size_request(800, 600);
        
$vbox->pack_start(new GtkLabel(get_class($this)));
    }
}



class 
main extends base_module {
    function 
setup($vbox) {
        
//define menu definition
        
$menu_definition = array(
        
'_Archivo' => array('_Cerrar'),
        
'_Aplicaciones' => array( 'Entel', 'SoftSwitch')
        );
        
$this->setup_menu($vbox, $menu_definition);
        
$vbox->pack_start(new GtkLabel('Menu Principal'));


    }

    
// shows the buttons at bottom of windows only for main_menu
    
function show_buttons($vbox) {
        global 
$modules;
        
$hbox = new GtkHBox();
        
$vbox->pack_start($hbox, 0, 0);
        
$hbox->pack_start(new GtkLabel());
        foreach(
$this->main->modules as $module) {
            if (
$module=='main') continue; // skip the main_menu button
            
$button = new GtkButton(strtoupper(substr($module,0,1)).substr($module,1)); // cap 1st letter
            
$button->set_size_request(80, 32); // makes all button the same size
            
if ($module == get_class($this)) { // sets the color of the respective button
                
$button->modify_bg(Gtk::STATE_NORMAL, GdkColor::parse("#95DDFF"));
                
$button->modify_bg(Gtk::STATE_ACTIVE, GdkColor::parse("#95DDFF"));
                
$button->modify_bg(Gtk::STATE_PRELIGHT, GdkColor::parse("#95DDFF"));
            }
            
$hbox->pack_start($button, 0, 0);
            
$hbox->pack_start(new GtkLabel());
            
$button->connect('clicked', array(&$this->main,'on_clicked'), $module); // event handler to handle button click
        
}
    }

    
// setup menu
    
function setup_menu($vbox, $menus) {
        
$menubar = new GtkMenuBar();
        
$vbox->pack_start($menubar, 0, 0);
        foreach(
$menus as $toplevel => $sublevels) {
            
$menubar->append($top_menu = new GtkMenuItem($toplevel));
            
$menu = new GtkMenu();
            
$top_menu->set_submenu($menu);
            foreach(
$sublevels as $submenu) {
                if (
$submenu=='<hr>') {
                    
$menu->append(new GtkSeparatorMenuItem());
                } else {
                    
$menu->append($menu_item = new GtkMenuItem($submenu));
                    
$menu_item->connect('activate', array(&$this->main, 'on_menu_select'));
                }
            }
        }
    }
}

?>