Estamos migrado todos los scrip para hacerlo mas compatible con windows y sin tener problemas de compilacion en diferente distribuciones de Linux, ya que al estar trabajando con Glade Monodevelop ya no lo esta soportando porque tiene un IDE para crear ventanas las cuales genera el codigo puro en C# con GTK#, esto tendra ventajas al poder portar la aplicacion sin mayores problemas
Saludos
Sistema para la administracion de hospitales, almacenes, facturacion, laboratorio, farmacia, registro en linea de cargos realizdos a paciente, separacion de paquetes, caja, tesoreria, etc.
sábado, 23 de mayo de 2015
viernes, 3 de abril de 2015
Ejemplo conexion Vala con PostgreSql
/**
* To compile:
* valac --pkg libpq test.vala -X -lpq
*/
using GLib;
using Postgres;
public static int main (string[] args)
{
string _url_servidor = "hostaddr=192.168.1.10 ";
string _port_DB = "port=5432 ";
string _usuario_DB = "user=your user ";
string _passwrd_user_DB = "password=your password ";
string _nombredb;
string connectionString = _url_servidor+_port_DB+_usuario_DB+_passwrd_user_DB;
if (args.length > 1) {
_nombredb = args[1];
}else{
_nombredb = "dbname = osirisdb ";
}
/* Make a connection to the database */
Database conn = Postgres.connect_db (connectionString+_nombredb);
/* Check to see that the backend connection was successfully made */
if (conn.get_status () != ConnectionStatus.OK) {
stderr.printf ("Connection to database failed: %s", conn.get_error_message ());
return 1;
}else{
stderr.printf ("Connection to database OK..\n");
}
return 0;
}
* To compile:
* valac --pkg libpq test.vala -X -lpq
*/
using GLib;
using Postgres;
public static int main (string[] args)
{
string _url_servidor = "hostaddr=192.168.1.10 ";
string _port_DB = "port=5432 ";
string _usuario_DB = "user=your user ";
string _passwrd_user_DB = "password=your password ";
string _nombredb;
string connectionString = _url_servidor+_port_DB+_usuario_DB+_passwrd_user_DB;
if (args.length > 1) {
_nombredb = args[1];
}else{
_nombredb = "dbname = osirisdb ";
}
/* Make a connection to the database */
Database conn = Postgres.connect_db (connectionString+_nombredb);
/* Check to see that the backend connection was successfully made */
if (conn.get_status () != ConnectionStatus.OK) {
stderr.printf ("Connection to database failed: %s", conn.get_error_message ());
return 1;
}else{
stderr.printf ("Connection to database OK..\n");
}
return 0;
}
martes, 15 de julio de 2014
miércoles, 7 de septiembre de 2011
miércoles, 24 de agosto de 2011
Export to ods for C# (mono)
He conseguido exportar un query a una hoja de calculo de tipo ods, espero que sea de ayuda
He tenido que recompilar AODL ya que para linux no tenia soporte.
using System;
using SmartXLS; // libreria para crear archivo xls es de paga
using Npgsql;
using Gtk;
using Glade;
// libreria creada con el proyecto AODL 1.4 que usa
using AODL;
using AODL.Document.SpreadsheetDocuments;
using AODL.Document.Content;
using AODL.Document.Content.Tables;
using AODL.Document;
using AODL.Package;
using AODL.Document.Collections;
using NUnit.Framework;
namespace osiris
{
public class class_traslate_spreadsheet
{
string connectionString;
string nombrebd;
class_conexion conexion_a_DB = new class_conexion();
//Declaracion de ventana de error
protected Gtk.Window MyWinError;
protected Gtk.Window MyWin;
public class_traslate_spreadsheet (string numeroatencion_)
{
int files_field = 0;
string[] args_names_field = {"foliodeservicio","descripcion_producto","idproducto","cantidadaplicada","preciounitario","ppcantidad"};
string[] args_type_field = {"float","string","string","float","float","float"};
connectionString = conexion_a_DB._url_servidor+conexion_a_DB._port_DB+conexion_a_DB._usuario_DB+conexion_a_DB._passwrd_user_DB;
nombrebd = conexion_a_DB._nombrebd;
//Create new spreadsheet open document (.ods)
AODL.Document.SpreadsheetDocuments.SpreadsheetDocument spreadsheetDocument = new AODL.Document.SpreadsheetDocuments.SpreadsheetDocument();
spreadsheetDocument.New();
//Create a new table
AODL.Document.Content.Tables.Table table = new AODL.Document.Content.Tables.Table(spreadsheetDocument, "hoja1", "tablefirst");
NpgsqlConnection conexion;
conexion = new NpgsqlConnection (connectionString+nombrebd);
// Verifica que la base de datos este conectada
try{
conexion.Open ();
NpgsqlCommand comando;
comando = conexion.CreateCommand ();
comando.CommandText = "SELECT osiris_erp_cobros_deta.folio_de_servicio AS foliodeservicio,descripcion_producto,to_char(osiris_erp_cobros_deta.id_producto,'999999999999') AS idproducto, "+
"to_char(osiris_erp_cobros_deta.cantidad_aplicada,'99999.99') AS cantidadaplicada,to_char(osiris_erp_cobros_deta.precio_producto,'99999999.99') AS preciounitario,"+
"to_char(osiris_erp_cobros_deta.cantidad_aplicada * osiris_erp_cobros_deta.precio_producto,'99999999.99') AS ppcantidad,"+
"to_char(osiris_erp_cobros_deta.fechahora_creacion,'dd-MM-yyyy HH24:mi:ss') AS fechcreacion, osiris_his_tipo_admisiones.descripcion_admisiones,"+
"osiris_erp_cobros_deta.id_tipo_admisiones AS idtipoadmision,descripcion_grupo_producto,osiris_productos.aplicar_iva," +
"to_char(osiris_erp_cobros_deta.id_secuencia,'9999999999') AS secuencia " +
"FROM osiris_erp_cobros_deta,osiris_productos,osiris_his_tipo_admisiones,osiris_grupo_producto " +
"WHERE osiris_erp_cobros_deta.id_producto = osiris_productos.id_producto " +
"AND osiris_erp_cobros_deta.id_tipo_admisiones = osiris_his_tipo_admisiones.id_tipo_admisiones " +
"AND osiris_productos.id_grupo_producto = osiris_grupo_producto.id_grupo_producto " +
"AND osiris_erp_cobros_deta.eliminado = false " +
"AND osiris_erp_cobros_deta.folio_de_servicio IN('"+numeroatencion_+"') " +
"ORDER BY to_char(osiris_erp_cobros_deta.fechahora_creacion,'yyyy-MM-dd HH24:mm:ss'),osiris_erp_cobros_deta.id_tipo_admisiones ASC," +
"osiris_productos.id_grupo_producto;";
comando.ExecuteNonQuery(); comando.Dispose();
//Console.WriteLine(comando.CommandText);
NpgsqlDataReader lector = comando.ExecuteReader ();
while (lector.Read()){
for (int colum_field = 0; colum_field < args_names_field.Length; colum_field++){
AODL.Document.Content.Tables.Cell cell = table.CreateCell ();
//cell.OfficeValueType ="float";
AODL.Document.Content.Text.Paragraph paragraph = new AODL.Document.Content.Text.Paragraph(spreadsheetDocument);
string text = lector[(string) args_names_field[ colum_field ]].ToString().Trim();
paragraph.TextContent.Add(new AODL.Document.Content.Text.SimpleText(spreadsheetDocument,text));
cell.Content.Add(paragraph);
cell.OfficeValueType = (string) args_type_field [colum_field];
cell.OfficeValue = text;
table.InsertCellAt (files_field, colum_field, cell);
}
files_field++;
}
conexion.Close();
//Insert table into the spreadsheet document
spreadsheetDocument.TableCollection.Add(table);
spreadsheetDocument.SaveTo("export.ods");
// open the document automatic
System.Diagnostics.Process.Start("export.ods");
}catch(NpgsqlException ex){
MessageDialog msgBoxError = new MessageDialog (MyWinError,DialogFlags.DestroyWithParent,
MessageType.Error,
ButtonsType.Close,"PostgresSQL error: {0}",ex.Message);
msgBoxError.Run (); msgBoxError.Destroy();
}
/*
// Usando libreria SmartXLS
WorkBook book = new WorkBook();
try{
//Sets the number of worksheets in this workbook
book.NumSheets = 2;
// set sheet names
book.setSheetName(0, "hoja1"); // renombrando la pestaña
book.setSheetName(1, "hoja2"); // renombrando la pestaña
book.Sheet = 0;
// book.setText(Fila, columna , "texto");
book.setText(0, 0, "foliodeservicio");
book.setText(0, 1, "descripcion_producto");
book.setText(0, 2, "idproducto");
book.setText(0, 3, "cantidadaplicada");
book.setText(0, 4, "preciounitario");
book.setText(0, 5, "ppcantidad");
book.setText(0, 6, "fechcreacion");
book.setText(0, 7, "descripcion_admisiones");
book.setText(0, 8, "idtipoadmision");
book.setText(0, 8, "descripcion_grupo_producto");
book.setText(0, 8, "aplicar_iva");
NpgsqlConnection conexion;
conexion = new NpgsqlConnection (connectionString+nombrebd);
// Verifica que la base de datos este conectada
try{
conexion.Open ();
NpgsqlCommand comando;
comando = conexion.CreateCommand ();
comando.CommandText = "SELECT osiris_erp_cobros_deta.folio_de_servicio AS foliodeservicio,descripcion_producto,to_char(osiris_erp_cobros_deta.id_producto,'999999999999') AS idproducto, "+
"to_char(osiris_erp_cobros_deta.cantidad_aplicada,'99999.99') AS cantidadaplicada,to_char(osiris_erp_cobros_deta.precio_producto,'99999999.99') AS preciounitario,"+
"to_char(osiris_erp_cobros_deta.cantidad_aplicada * osiris_erp_cobros_deta.precio_producto,'99999999.99') AS ppcantidad,"+
"to_char(osiris_erp_cobros_deta.fechahora_creacion,'dd-MM-yyyy HH24:mi:ss') AS fechcreacion, osiris_his_tipo_admisiones.descripcion_admisiones,"+
"osiris_erp_cobros_deta.id_tipo_admisiones AS idtipoadmision,descripcion_grupo_producto,osiris_productos.aplicar_iva," +
"to_char(osiris_erp_cobros_deta.id_secuencia,'9999999999') AS secuencia " +
"FROM osiris_erp_cobros_deta,osiris_productos,osiris_his_tipo_admisiones,osiris_grupo_producto " +
"WHERE osiris_erp_cobros_deta.id_producto = osiris_productos.id_producto " +
"AND osiris_erp_cobros_deta.id_tipo_admisiones = osiris_his_tipo_admisiones.id_tipo_admisiones " +
"AND osiris_productos.id_grupo_producto = osiris_grupo_producto.id_grupo_producto " +
"AND osiris_erp_cobros_deta.eliminado = false " +
"AND osiris_erp_cobros_deta.folio_de_servicio IN('"+numeroatencion_+"') " +
"ORDER BY to_char(osiris_erp_cobros_deta.fechahora_creacion,'yyyy-MM-dd HH24:mm:ss'),osiris_erp_cobros_deta.id_tipo_admisiones ASC," +
"osiris_productos.id_grupo_producto;";
comando.ExecuteNonQuery(); comando.Dispose();
//Console.WriteLine(comando.CommandText);
NpgsqlDataReader lector = comando.ExecuteReader ();
while (lector.Read()){
book.setNumber(number_file, 0, int.Parse(numeroatencion_));
book.setText(number_file, 1, (string) lector["descripcion_producto"]);
number_file++;
}
conexion.Close();
book.write("export.xls");
System.Diagnostics.Process.Start("export.xls");
}catch(NpgsqlException ex){
MessageDialog msgBoxError = new MessageDialog (MyWinError,DialogFlags.DestroyWithParent,
MessageType.Error,
ButtonsType.Close,"PostgresSQL error: {0}",ex.Message);
msgBoxError.Run (); msgBoxError.Destroy();
}
}catch (System.Exception ex){
Console.Error.WriteLine(ex);
}
*/
}
}
}
He tenido que recompilar AODL ya que para linux no tenia soporte.
using System;
using SmartXLS; // libreria para crear archivo xls es de paga
using Npgsql;
using Gtk;
using Glade;
// libreria creada con el proyecto AODL 1.4 que usa
using AODL;
using AODL.Document.SpreadsheetDocuments;
using AODL.Document.Content;
using AODL.Document.Content.Tables;
using AODL.Document;
using AODL.Package;
using AODL.Document.Collections;
using NUnit.Framework;
namespace osiris
{
public class class_traslate_spreadsheet
{
string connectionString;
string nombrebd;
class_conexion conexion_a_DB = new class_conexion();
//Declaracion de ventana de error
protected Gtk.Window MyWinError;
protected Gtk.Window MyWin;
public class_traslate_spreadsheet (string numeroatencion_)
{
int files_field = 0;
string[] args_names_field = {"foliodeservicio","descripcion_producto","idproducto","cantidadaplicada","preciounitario","ppcantidad"};
string[] args_type_field = {"float","string","string","float","float","float"};
connectionString = conexion_a_DB._url_servidor+conexion_a_DB._port_DB+conexion_a_DB._usuario_DB+conexion_a_DB._passwrd_user_DB;
nombrebd = conexion_a_DB._nombrebd;
//Create new spreadsheet open document (.ods)
AODL.Document.SpreadsheetDocuments.SpreadsheetDocument spreadsheetDocument = new AODL.Document.SpreadsheetDocuments.SpreadsheetDocument();
spreadsheetDocument.New();
//Create a new table
AODL.Document.Content.Tables.Table table = new AODL.Document.Content.Tables.Table(spreadsheetDocument, "hoja1", "tablefirst");
NpgsqlConnection conexion;
conexion = new NpgsqlConnection (connectionString+nombrebd);
// Verifica que la base de datos este conectada
try{
conexion.Open ();
NpgsqlCommand comando;
comando = conexion.CreateCommand ();
comando.CommandText = "SELECT osiris_erp_cobros_deta.folio_de_servicio AS foliodeservicio,descripcion_producto,to_char(osiris_erp_cobros_deta.id_producto,'999999999999') AS idproducto, "+
"to_char(osiris_erp_cobros_deta.cantidad_aplicada,'99999.99') AS cantidadaplicada,to_char(osiris_erp_cobros_deta.precio_producto,'99999999.99') AS preciounitario,"+
"to_char(osiris_erp_cobros_deta.cantidad_aplicada * osiris_erp_cobros_deta.precio_producto,'99999999.99') AS ppcantidad,"+
"to_char(osiris_erp_cobros_deta.fechahora_creacion,'dd-MM-yyyy HH24:mi:ss') AS fechcreacion, osiris_his_tipo_admisiones.descripcion_admisiones,"+
"osiris_erp_cobros_deta.id_tipo_admisiones AS idtipoadmision,descripcion_grupo_producto,osiris_productos.aplicar_iva," +
"to_char(osiris_erp_cobros_deta.id_secuencia,'9999999999') AS secuencia " +
"FROM osiris_erp_cobros_deta,osiris_productos,osiris_his_tipo_admisiones,osiris_grupo_producto " +
"WHERE osiris_erp_cobros_deta.id_producto = osiris_productos.id_producto " +
"AND osiris_erp_cobros_deta.id_tipo_admisiones = osiris_his_tipo_admisiones.id_tipo_admisiones " +
"AND osiris_productos.id_grupo_producto = osiris_grupo_producto.id_grupo_producto " +
"AND osiris_erp_cobros_deta.eliminado = false " +
"AND osiris_erp_cobros_deta.folio_de_servicio IN('"+numeroatencion_+"') " +
"ORDER BY to_char(osiris_erp_cobros_deta.fechahora_creacion,'yyyy-MM-dd HH24:mm:ss'),osiris_erp_cobros_deta.id_tipo_admisiones ASC," +
"osiris_productos.id_grupo_producto;";
comando.ExecuteNonQuery(); comando.Dispose();
//Console.WriteLine(comando.CommandText);
NpgsqlDataReader lector = comando.ExecuteReader ();
while (lector.Read()){
for (int colum_field = 0; colum_field < args_names_field.Length; colum_field++){
AODL.Document.Content.Tables.Cell cell = table.CreateCell ();
//cell.OfficeValueType ="float";
AODL.Document.Content.Text.Paragraph paragraph = new AODL.Document.Content.Text.Paragraph(spreadsheetDocument);
string text = lector[(string) args_names_field[ colum_field ]].ToString().Trim();
paragraph.TextContent.Add(new AODL.Document.Content.Text.SimpleText(spreadsheetDocument,text));
cell.Content.Add(paragraph);
cell.OfficeValueType = (string) args_type_field [colum_field];
cell.OfficeValue = text;
table.InsertCellAt (files_field, colum_field, cell);
}
files_field++;
}
conexion.Close();
//Insert table into the spreadsheet document
spreadsheetDocument.TableCollection.Add(table);
spreadsheetDocument.SaveTo("export.ods");
// open the document automatic
System.Diagnostics.Process.Start("export.ods");
}catch(NpgsqlException ex){
MessageDialog msgBoxError = new MessageDialog (MyWinError,DialogFlags.DestroyWithParent,
MessageType.Error,
ButtonsType.Close,"PostgresSQL error: {0}",ex.Message);
msgBoxError.Run (); msgBoxError.Destroy();
}
/*
// Usando libreria SmartXLS
WorkBook book = new WorkBook();
try{
//Sets the number of worksheets in this workbook
book.NumSheets = 2;
// set sheet names
book.setSheetName(0, "hoja1"); // renombrando la pestaña
book.setSheetName(1, "hoja2"); // renombrando la pestaña
book.Sheet = 0;
// book.setText(Fila, columna , "texto");
book.setText(0, 0, "foliodeservicio");
book.setText(0, 1, "descripcion_producto");
book.setText(0, 2, "idproducto");
book.setText(0, 3, "cantidadaplicada");
book.setText(0, 4, "preciounitario");
book.setText(0, 5, "ppcantidad");
book.setText(0, 6, "fechcreacion");
book.setText(0, 7, "descripcion_admisiones");
book.setText(0, 8, "idtipoadmision");
book.setText(0, 8, "descripcion_grupo_producto");
book.setText(0, 8, "aplicar_iva");
NpgsqlConnection conexion;
conexion = new NpgsqlConnection (connectionString+nombrebd);
// Verifica que la base de datos este conectada
try{
conexion.Open ();
NpgsqlCommand comando;
comando = conexion.CreateCommand ();
comando.CommandText = "SELECT osiris_erp_cobros_deta.folio_de_servicio AS foliodeservicio,descripcion_producto,to_char(osiris_erp_cobros_deta.id_producto,'999999999999') AS idproducto, "+
"to_char(osiris_erp_cobros_deta.cantidad_aplicada,'99999.99') AS cantidadaplicada,to_char(osiris_erp_cobros_deta.precio_producto,'99999999.99') AS preciounitario,"+
"to_char(osiris_erp_cobros_deta.cantidad_aplicada * osiris_erp_cobros_deta.precio_producto,'99999999.99') AS ppcantidad,"+
"to_char(osiris_erp_cobros_deta.fechahora_creacion,'dd-MM-yyyy HH24:mi:ss') AS fechcreacion, osiris_his_tipo_admisiones.descripcion_admisiones,"+
"osiris_erp_cobros_deta.id_tipo_admisiones AS idtipoadmision,descripcion_grupo_producto,osiris_productos.aplicar_iva," +
"to_char(osiris_erp_cobros_deta.id_secuencia,'9999999999') AS secuencia " +
"FROM osiris_erp_cobros_deta,osiris_productos,osiris_his_tipo_admisiones,osiris_grupo_producto " +
"WHERE osiris_erp_cobros_deta.id_producto = osiris_productos.id_producto " +
"AND osiris_erp_cobros_deta.id_tipo_admisiones = osiris_his_tipo_admisiones.id_tipo_admisiones " +
"AND osiris_productos.id_grupo_producto = osiris_grupo_producto.id_grupo_producto " +
"AND osiris_erp_cobros_deta.eliminado = false " +
"AND osiris_erp_cobros_deta.folio_de_servicio IN('"+numeroatencion_+"') " +
"ORDER BY to_char(osiris_erp_cobros_deta.fechahora_creacion,'yyyy-MM-dd HH24:mm:ss'),osiris_erp_cobros_deta.id_tipo_admisiones ASC," +
"osiris_productos.id_grupo_producto;";
comando.ExecuteNonQuery(); comando.Dispose();
//Console.WriteLine(comando.CommandText);
NpgsqlDataReader lector = comando.ExecuteReader ();
while (lector.Read()){
book.setNumber(number_file, 0, int.Parse(numeroatencion_));
book.setText(number_file, 1, (string) lector["descripcion_producto"]);
number_file++;
}
conexion.Close();
book.write("export.xls");
System.Diagnostics.Process.Start("export.xls");
}catch(NpgsqlException ex){
MessageDialog msgBoxError = new MessageDialog (MyWinError,DialogFlags.DestroyWithParent,
MessageType.Error,
ButtonsType.Close,"PostgresSQL error: {0}",ex.Message);
msgBoxError.Run (); msgBoxError.Destroy();
}
}catch (System.Exception ex){
Console.Error.WriteLine(ex);
}
*/
}
}
}
jueves, 11 de agosto de 2011
lunes, 13 de septiembre de 2010
Manual de Instalacion del Sistema Hospitalario OSIRIS
Hola Amigos
le dejo el link del manual de instalacion del sistemas para GNU/Linux
http://www.scribd.com/doc/37039589/Manual-Instalacion-Sistema-Hospitalario-OSIRIS
Este manual esta un poco descontinuado, se hicieron modificaciones para no usar la libreria gnomeprint.
Se agregaron mas campos y tablas a la base de datos
cualquier duda para solicitar la base de datos envienme un correo a arcangeldoc@gmail.com
Saludos
le dejo el link del manual de instalacion del sistemas para GNU/Linux
http://www.scribd.com/doc/37039589/Manual-Instalacion-Sistema-Hospitalario-OSIRIS
Este manual esta un poco descontinuado, se hicieron modificaciones para no usar la libreria gnomeprint.
Se agregaron mas campos y tablas a la base de datos
cualquier duda para solicitar la base de datos envienme un correo a arcangeldoc@gmail.com
Saludos
Suscribirse a:
Entradas (Atom)
