| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 | 
							- unit SheetSelectFrm;
 
- interface
 
- uses
 
-   SMXLS, ZjCells, SMCells,
 
-   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 
-   Dialogs, StdCtrls, CheckLst, ZJGrid;
 
- type
 
-   TSheetSelectForm = class(TForm)
 
-     btnOK: TButton;
 
-     btnCancel: TButton;
 
-     zgExcelSheets: TZJGrid;
 
-     procedure zgExcelSheetsCellCanEdit(Sender: TObject;
 
-       const ACoord: TPoint; var Allow: Boolean);
 
-     procedure zgExcelSheetsSetCellText(Sender: TObject;
 
-       const ACoord: TPoint; var Value: String; DisplayText: Boolean);
 
-     procedure zgExcelSheetsGetCellText(Sender: TObject;
 
-       const ACoord: TPoint; var Value: String; DisplayText: Boolean);
 
-   private
 
-     FExcel: TMSExcel;
 
-     FIsMulit: Boolean;
 
-     FSelectRow: Integer;
 
-     
 
-     procedure InitGrid(AExcel: TMSExcel);
 
-     procedure SetIsMulit(const Value: Boolean);
 
-   public
 
-     constructor Create(AExcel: TMSExcel);
 
-     procedure AssignResult(ASelects: TList);
 
-     function SelectResult: TSpreadSheet;
 
-     // ¿É·ñ¶àÑ¡
 
-     property IsMulti: Boolean read FIsMulit write SetIsMulit;
 
-   end;
 
- function SelectSheets(AExcel: TMSExcel; ASelects: TList): Boolean;
 
- function SelectSheet(AExcel: TMSExcel; var ASheet: TSpreadSheet): Boolean;
 
- implementation
 
- {$R *.dfm}
 
- function SelectSheets(AExcel: TMSExcel; ASelects: TList): Boolean;
 
- var
 
-   SelectForm: TSheetSelectForm;
 
- begin
 
-   SelectForm := TSheetSelectForm.Create(AExcel);
 
-   try
 
-     SelectForm.IsMulti := True;
 
-     Result := SelectForm.ShowModal = mrOk;
 
-     if Result then
 
-       SelectForm.AssignResult(ASelects);
 
-   finally
 
-     SelectForm.Free;
 
-   end;
 
- end;
 
- function SelectSheet(AExcel: TMSExcel; var ASheet: TSpreadSheet): Boolean;
 
- var
 
-   SelectForm: TSheetSelectForm;
 
- begin
 
-   SelectForm := TSheetSelectForm.Create(AExcel);
 
-   try
 
-     SelectForm.IsMulti := False;
 
-     Result := SelectForm.ShowModal = mrOk;
 
-     if Result then
 
-       ASheet := SelectForm.SelectResult;
 
-   finally
 
-     SelectForm.Free;
 
-   end;
 
- end;
 
- { TSheetSelectForm }
 
- procedure TSheetSelectForm.AssignResult(ASelects: TList);
 
- var
 
-   i: Integer;
 
- begin
 
-   ASelects.Clear;
 
-   for i := 1 to zgExcelSheets.RowCount - 1 do
 
-     if zgExcelSheets.Cells[1, i].Text = 'True' then
 
-       ASelects.Add(zgExcelSheets.Rows[i].Data);
 
- end;
 
- constructor TSheetSelectForm.Create(AExcel: TMSExcel);
 
- begin
 
-   inherited Create(nil);
 
-   InitGrid(AExcel);
 
-   FSelectRow := 1;
 
- end;
 
- procedure TSheetSelectForm.InitGrid(AExcel: TMSExcel);
 
- var
 
-   i: Integer;
 
- begin
 
-   zgExcelSheets.RowCount := 1;
 
-   zgExcelSheets.Cells[1, 0].Text := 'Ñ¡Ôñ';
 
-   zgExcelSheets.CellClass.Cols[1] := TZjCheckBoxCell;
 
-   zgExcelSheets.Cells[2, 0].Text := '¹¤×÷±í';
 
-   zgExcelSheets.ColWidths[2] := 200;
 
-   zgExcelSheets.RowCount := AExcel.Sheets.Count + 1;
 
-   for i := 0 to AExcel.SheetNames.Count - 1 do
 
-   begin
 
-     zgExcelSheets.Cells[2, i+1].Text := AExcel.SheetNames.Strings[i];
 
-     zgExcelSheets.Rows[i+1].Data := AExcel.Sheets.Spreadsheet(i);
 
-   end;
 
- end;
 
- function TSheetSelectForm.SelectResult: TSpreadSheet;
 
- var
 
-   i: Integer;
 
- begin
 
-   for i := 1 to zgExcelSheets.RowCount - 1 do
 
-     if zgExcelSheets.Cells[1, i].Text = 'True' then
 
-     begin
 
-       Result := TSpreadSheet(zgExcelSheets.Rows[i].Data);
 
-       Break;
 
-     end;
 
- end;
 
- procedure TSheetSelectForm.zgExcelSheetsCellCanEdit(Sender: TObject;
 
-   const ACoord: TPoint; var Allow: Boolean);
 
- begin
 
-   Allow := (ACoord.X = 1) and (ACoord.Y > 0);
 
- end;
 
- procedure TSheetSelectForm.zgExcelSheetsSetCellText(Sender: TObject;
 
-   const ACoord: TPoint; var Value: String; DisplayText: Boolean);
 
- begin
 
-   if Value = 'True' then
 
-     FSelectRow := ACoord.Y
 
-   else
 
-     FSelectRow := -1;
 
-   zgExcelSheets.Invalidate;
 
- end;
 
- procedure TSheetSelectForm.zgExcelSheetsGetCellText(Sender: TObject;
 
-   const ACoord: TPoint; var Value: String; DisplayText: Boolean);
 
- begin
 
-   if (ACoord.X = 1) and (ACoord.Y > 0) then
 
-   begin
 
-     if FSelectRow = ACoord.Y then
 
-       Value := 'True'
 
-     else
 
-       Value := 'False';
 
-   end;
 
- end;
 
- procedure TSheetSelectForm.SetIsMulit(const Value: Boolean);
 
- begin
 
-   FIsMulit := Value;
 
-   if not FIsMulit then
 
-   begin
 
-     zgExcelSheets.OnGetCellText := zgExcelSheetsGetCellText;
 
-     zgExcelSheets.OnSetCellText := zgExcelSheetsSetCellText;
 
-   end;
 
- end;
 
- end.
 
 
  |