Thứ Tư, 29 tháng 4, 2015

GridView DoubleClick

private void gridView1_DoubleClick(object sender, EventArgs e)
{
   GridView view = (GridView)sender;
   Point pt = view.GridControl.PointToClient(Control.MousePosition);

   DoRowDoubleClick(view, pt);
}


private static void DoRowDoubleClick(GridView view, Point pt)
{
   GridHitInfo info = view.CalcHitInfo(pt);

   if (info.InRow || info.InRowCell)
   {
       string colCaption = info.Column == null ? "N/A" : info.Column.GetCaption();
       MessageBox.Show(string.Format("DoubleClick on row: {0}, column: {1}.", info.RowHandle, colCaption));

   }
}

Thứ Tư, 22 tháng 4, 2015

Tạo file excel và xuất ra máy in

MemoryStream ms = new MemoryStream();
Workbook workbook = new Workbook(@"TenFile.xlsx");

void TaoFileVaIn(bool xuatBan)
{
      // Lấy sheet mẫu
      Worksheet worksheet = workbook.Worksheets[0];
      worksheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
      worksheet.PageSetup.Orientation = PageOrientationType.Landscape;
      // Chuyển worksheet mẫu về đầu
      worksheet.Move(0);
      // Chỉ định sheet đang hoạt động là sheet đầu tiên
      workbook.Worksheets.ActiveSheetIndex = 0;
      // Không hiển thị đầy đủ lưới
      // worksheet.IsGridlinesVisible = false;
      int stt = 1;
      int sohang = 17;

      string now = "Tháng " + cbbThang.Text + " năm " + cbbNam.Text;
      worksheet.Cells["A8"].Value = now;

      for (int i = 0; i < listBKTH01.Count; i++)
      {
          worksheet.Cells.InsertRow(17);
      }
      //Style cellA = worksheet.Cells["A16"].GetStyle();

      for (int i = 0; i < listBKTH01.Count ;i++ )
      {
          worksheet.Cells["A" + sohang].Value = stt;
          worksheet.Cells["B" + sohang].Value = "GiaTri";
          stt++;
          sohang++;
      }
      worksheet.Cells["C" + sohang].Formula = "=SUM(C17:C" + (sohang - 1) + ")";

      if (xuatBan)
      {
          try
          {
               Aspose.Cells.Rendering.ImageOrPrintOptions options = new Aspose.Cells.Rendering.ImageOrPrintOptions();
               options.PrintingPage = PrintingPageType.Default;
               worksheet.PageSetup.FitToPagesTall = 1;

               //Setting the number of pages to which the width of the worksheet will be spanned
               worksheet.PageSetup.FitToPagesWide = 1;

              //Setting the paper size to A4
              worksheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
              SheetRender sr = new SheetRender(worksheet, options);
                        sr.ToPrinter(Properties.Settings.Default.TenMayIn);
     }
     catch
     {
              ThongBao.BaoLoi("Không tìm thấy máy in đã chỉ định!");
                }
      }
            // Truyền dữ liệu vào luồng excel để hiển thị trên form excel
            else
            {
                workbook.Save(ms, SaveFormat.Xlsx);
            }
        }

private void btnXemDuLieu_Click(object sender, EventArgs e)
{
            TaoFileVaIn(false);
            frmXemTruoc f = new frmXemTruoc(ms);
            f.Show();
}

Đọc dữ liệu từ file Excel

// Chọn file Excel
     OpenFileDialog f = new OpenFileDialog();
     f.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
     f.FilterIndex = 1;
     f.RestoreDirectory = true;
     if (f.ShowDialog() == DialogResult.OK)
     {
          SplashScreenManager.ShowForm(typeof(frmLoading));
          FileInfo newFile = new FileInfo(f.FileName);
          Workbook workbook = new Workbook(f.FileName);
          Worksheet wordsheet = workbook.Worksheets[0];
          workbook.Worksheets.ActiveSheetIndex = 0;

          for (int i = 18; i <= wordsheet.Cells.Rows.Count; i++)
          {
                    
              if (wordsheet.Cells["B"i].Value.ToString().ToUpper() == "TỔNG CỘNG:")
              {
                   break;
              }
              string d = wordsheet.Cells["D"+i].Value.ToString();
                   
           }
     }

Checkbox trên GridControl Devexpress

1. Thêm một cột trên girdview.
UnboundType = Boolean
2. Thêm sự kiện CustomUnboundColumnData trên gridView
3. Code như sau:
Khai báo biến:
 ArrayList chon = new ArrayList();

Sự kiện FormLoad:
 private void frm_Load(object sender, EventArgs e)
 {
            for (int i = 0; i < BindingSource.Count; i++)
            {
                chon.Add(false);
            }      
 }

Sự kiện CustomUnboundColumnData
private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
{
            try
            {
                if (e.Column == colChon)
                {
                    if (e.IsGetData)
                    {
                        e.Value = chon[e.ListSourceRowIndex];
                    }
                    else
                    {
                        chon[e.ListSourceRowIndex] = e.Value;
                    }
                 }
            }
            catch(Exception)
            {
            }
}

Sử dụng:
 for (int i = 0; i < BindingSource.Count; i++)
 {
          if (Convert.ToBoolean(chon[i]))
          {
                    // Thủ tục;
          }
}