sábado, 28 de marzo de 2020

Imprimir con PrintDocument en C#

Se agrega de la caja de herramientas el control printDocument1 y printPreviewDialog1
Doble click en printDocument1 se genera el metodo PrintPage:
 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        { // Se agrega el texto Hola como estas? en la posicion 100,100
            e.Graphics.DrawString("Hola como estas?",new Font("Arial",12),Brushes.Black,100,100,new StringFormat());
  // Se agrega una imagen al documento bike4.png en la posicion 200,200
Image img = Image.FromFile(@"c:\fotos\bike4.png");
            e.Graphics.DrawImage(img, new Point(200, 200));
           
        }
En un boton:
private void button1_Click(object sender, EventArgs e)
        { // Se asigna printDocument1 a printPreviewDialog1
            printPreviewDialog1.Document = printDocument1;
          // Alto y Ancho del dialogo
            printPreviewDialog1.Height = 700;
            printPreviewDialog1.Width = 1000;
            // Se asigna tamano de papel de nombre Ticket de 300x500
            PaperSize pt = new PaperSize("Ticket",300,500);
            printDocument1.DefaultPageSettings.PaperSize = pt;
            // Se muestra el dialogo de impresion mediante ShowDialog()
            printPreviewDialog1.ShowDialog();
        }



lunes, 9 de marzo de 2020

Obtener Posicion de Mouse en PictureBox con Visual C#

Dentro de una clase :
int x,y;
// Constructor 
public Form1()
{
    InitializeComponent();
   //Agregar metodo 
   this.pictureBox1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseMove);
}
//Metodo picturebox mousemove
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
   x = e.Location.X;
   y = e.Location.Y;
}
// se obtiene la posicion en x e y.


jueves, 13 de febrero de 2020

Obtener Valores de Fila Seleccionada de un DataGrid en Visual C#

string primeraColumna, segundaColumna, terceraColumna;
primeraColumna = grid1.SelectedRows[0].Cells[0].Value.ToString();
segundaColumna = grid1.SelectedRows[0].Cells[1].Value.ToString();
terceraColumna = grid1.SelectedRows[0].Cells[2].Value.ToString();


martes, 1 de septiembre de 2015

Simulacion de Recibo en C++ QT Creator & QTableWidget

QT Creator es uno de los mejores IDE para c++ en especial cuando se trata de crear formularios, maneja todos los controles como cuadro de texto, botones, Table, combos box, listas, conexion a base de datos, generacion de archivos pdf, archivos de texto, tiene otros temas como qt network, es excelente.
 

File mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <cmath>
#include <QDateTime>
#include <QTimer>
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

{
    ui->setupUi(this);
    setWindowTitle("Simulacion de Recibo");
    QStringList titu;
    ui->tblPro->setColumnCount(4);
    titu<<"Producto"<<"Precio_U"<<"Cantidad"<<"Importe";
    ui->tblPro->setHorizontalHeaderLabels(titu);
    ui->tblPro->setColumnWidth(0,150);
    cargar_combo();
    cargar_cli();
    setHora();
}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::setHora()
{
    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(cargar_fecha()));
    timer->start(1000);
}

void MainWindow::on_btnAdd_clicked()
{
    //ui->txtPrecio->setText(ui->txtNombre->text());
    ui->tblPro->insertRow(ui->tblPro->rowCount());
    ui->tblPro->setItem(ui->tblPro->rowCount()-1,0,new QTableWidgetItem(ui->cmbPro->currentText()));
    ui->tblPro->setItem(ui->tblPro->rowCount()-1,1,new QTableWidgetItem(ui->txtPrecio->text()));
    ui->tblPro->setItem(ui->tblPro->rowCount()-1,2,new QTableWidgetItem(ui->txtCan->text()));
    calTot();
}
void MainWindow::cargar_combo()
{
    ui->cmbPro->addItem("PlayStation 4");
    ui->cmbPro->addItem("Laptop Dell i7");
    ui->cmbPro->addItem("Hard disk 1Tb");
    ui->cmbPro->addItem("TV 60 LED Sony");
    ui->cmbPro->addItem("Laptop Apple i7");
    ui->cmbPro->addItem("Samsung Galaxy S6");
}
void MainWindow::calTot()
{
    double imp;
    double precio;
    double can;
    double S=0;
    double tax=0;
    double total=0;
    int i;
    for(i=0;i<ui->tblPro->rowCount();i++){
        precio=ui->tblPro->item(i,1)->text().toDouble();
        //precio=ui->tblPro->takeItem(i,1)->text().toDouble();
        can=ui->tblPro->item(i,2)->text().toDouble();
        imp=precio*can;
        ui->tblPro->setItem(i,3,new QTableWidgetItem(QString::number(imp)));
        S=S+imp;
        S=redo(S);
        tax=0.09*S;
        tax=redo(tax);
        total=1.09*S;
        total=redo(total);
        ui->lblSub->setText(QString::number(S));
        ui->lblTax->setText(QString::number(tax));
        ui->lblTotal->setText(QString::number(total));
    }
}
double MainWindow::redo(double n)
{
    n=n*100;
    n=round(n);
    n=n/100;
    return n;
}
void MainWindow::cargar_cli()
{
    ui->cmbCli->addItem("Miguel Nunez Varillas");
    ui->cmbCli->addItem("Rosa Castro");
    ui->cmbCli->addItem("Soila Monge");
    ui->cmbCli->addItem("Luis Salvatierra");
    ui->cmbCli->addItem("Alberto Lozano");
    ui->cmbCli->addItem("Fernando Garcia");
    ui->cmbCli->addItem("Julio Ortiz Jason");
}
void MainWindow::cargar_fecha()
{
    QDateTime tiempo2=QDateTime();
    ui->lblFecha->setText(tiempo2.currentDateTime().toString());
    QString h=QString::number(tiempo2.currentDateTime().time().hour());
    QString m=QString::number(tiempo2.currentDateTime().time().minute());
    QString s=QString::number(tiempo2.currentDateTime().time().second());
    ui->lblRelog->setText(h+":"+m+":"+s);
}

void MainWindow::on_cmbPro_currentIndexChanged(const QString &arg1)
{   QString cad;
    switch (ui->cmbPro->currentIndex()) {
    case 1:cad="500";break;
    case 2:cad="89";break;
    case 3:cad="700";break;
    case 4:cad="800";break;
    case 5:cad="200";break;
    default:cad="220";
        break;
    }
    ui->txtPrecio->setText(cad);
    ui->txtCan->setText("1");
}

void MainWindow::on_btnDel_clicked()
{   QMessageBox mensa;
    if (ui->tblPro->currentRow()>-1){
        ui->tblPro->removeRow(ui->tblPro->currentRow());
    }else{
        mensa.setText("Seleccione una fila");
        mensa.exec();
    }
}

sábado, 2 de mayo de 2015

Conectar a MySql con Java Netbeans mediante un Formulario

 Tener agregado en libraries el conector mysql. clase coneBD.java package pktForm12; import java.sql.*; import javax.swing.JOptionPane; publ...