打印本文 打印本文 关闭窗口 关闭窗口
TStringGrid使用(1)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1737  更新时间:2009/4/23 18:29:28  文章录入:mintao  责任编辑:mintao
ecordset.PageSize :=spinedit1.Value;
Edit1.Text := IntToStr(ADoquery1.Recordset.PageCount);
ShowData(spinedit2.Value);
end;

//然后将AbsolutePage的数据乾坤大挪移到StringGrid1中
procedure TForm1.ShowData(page:integer);
var
iRow, iCol, iCount : Integer;
rs : ADOInt.Recordset;
begin
ADoquery1.Recordset.AbsolutePage:=Page;
Currpage:=page; 
iRow := 0;
iCol := 1;
stringgrid1.Cells[iCol, iRow] := ''''FixedCol1'''';
Inc(iCol);
stringgrid1.Cells[iCol, iRow] := ''''FixedCol2'''';
Inc(iRow);
Dec(iCol);
rs := adoquery1.Recordset;
for iCount := 1 to SpinEdit1.Value do
begin
  stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item(''''FieldName1'''').Value;
  Inc(iCol);
  stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item(''''FieldName1'''').Value;
  Inc(iRow);
  Dec(iCol);
  rs.MoveNext;
end;
 
//上一页
procedure TForm1.Button2Click(Sender: TObject);
begin
If (CurrPage)<>1 then
  ShowData(CurrPage-1);
end;

//下一页
procedure TForm1.Button3Click(Sender: TObject);
begin
If CurrPage<>ADoquery1.Recordset.PageCount then
  ShowData(CurrPage+1);
end;


打印StringGrid的程序源码这段代码没有看懂,但是可能有的朋友需要,所以共享一下子 :)
procedure TForm1.SpeedButton11Click(Sender: TObject);
Var
Index_R ,ALeft: Integer;
Index : Integer;
begin
StringGrid_File(''''D:\AAA.TXT'''');
if Not LinkTextFile then
begin
  ShowMessage(''''失败'''');
  Exit;
end;
//
QuickRep1.DataSet := ADOTable1;
Index_R := ReSize(StringGrid1.Width);
ALeft := 13;
Create_Title(TitleBand1,ALeft,24,HeaderControl1.Sections.Items[0].Width,20,
  HeaderControl1.Sections[0].Text,taLeftJustify);
with Create_QRDBText(DetailBand1,ALeft,8,StringGrid1.ColWidths[0],20,
    StringGrid1.Font,taLeftJustify) do
begin
  DataSet := ADOTable1;
  DataField := ADOTable1.Fields[0].DisplayName;
end;
ALeft := ALeft + StringGrid1.ColWidths[0] * Index_R + Index_R;
For Index := 1 to ADOTable1.FieldCount - 1 do
begin
  Create_VLine(TitleBand1,ALeft - 13,16,1,40);
  Create_Title(TitleBand1,ALeft,24,HeaderControl1.Sections.Items[Index].Width,20,
   HeaderControl1.Sections[Index].Text,taLeftJustify);
  Create_VLine(DetailBand1,ALeft - 13,-1,1,31);
  with Create_QRDBText(DetailBand1,ALeft ,8,StringGrid1.ColWidths[Index] * Index_R,20,
    StringGrid1.Font,taLeftJustify) do
  begin
   DataSet := ADOTable1;
   DataField := ADOTable1.Fields[Index].DisplayName;
  end;
  ALeft := ALeft + StringGrid1.ColWidths[Index] * Index_R + Index_R;
end;
QuickRep1.Preview;
end;

function TForm1.ReSize(AGridWidth: Integer): Integer;
begin
Result := Trunc(718 / AGridWidth);
end;

function TForm1.StringGrid_File(AFileName: String): Boolean;
var
StrValue : String;
Index : Integer;
ACol , ARow : Integer;
AFileValue : System.TextFile;
begin
StrValue := '''''''';
Try
  AssignFile(AFileValue , AFileName);
  ReWrite(AFileValue);
  StrValue := HeaderControl1.Sections[0].Text;
  For Index := 1 to HeaderControl1.Sections.Count - 1 do
   StrValue := StrValue + '''','''' + HeaderControl1.Sections[Index].Text;
  Writeln(AFileValue,StrValue);
  StrValue := '''''''';
  For ARow := 0 To StringGrid1.RowCount - 1 do
  begin
   StrValue := '''''''';
   StrValue := StringGrid1.Cells[0,ARow];
   For ACol := 1 To StringGrid1.ColCount - 1 do
   begin
    StrValue := StrValue + '''', '''' + StringGrid1.Cells[ACol,ARow];
   end;
   Writeln(AFileValue,StrValue);
  end;
Finally
  CloseFile(AFileValue);
end;
end;

function TForm1.LinkTextfile: Boolean;
begin
Result := False;
with ADOTable1 do
begin
  {ConnectionString := ''''Provider=Microsoft.Jet.OLEDB.4.0;'''' +
            ''''Data Source= D:\;Extended Properties=Text;'''' +
            ''''Persist Security Info=False'''';
  TableName := ''''AAA#TXT'''';
  Open;    }
  if Active then
   Result := True;
end;
end;

function TForm1.Create_QRDBText(Sender: TWinControl; ALeft, ATop, AWidth,
AHight: Integer; AFont: TFont; AAlignMent: TAlignment): TQRDBText;
var
AQRDBText : TQRDBText;
begin
AQRDBText := TQRDBText.Create(Nil);
with AQRDBText do
begin
  Parent := Sender;
  Left := ALeft;
  Top := ATop;
  Width := AWidth;
  Height := AHight;
  AlignMent := AAlignMent;
  Font.Assign(AFont);
end;
Result := AQRDBText;
end;

function TForm1.Create_VLine(Sender: TWinControl; ALeft, ATop, AWidth,
AHight: Integer): TQRShape;
var
AQRShapeV : TQRShape;
begin
AQRShapeV := TQRShape.Create(Nil);
with AQRShapeV do
begin
  Parent := Sender;
  Left := ALeft;
  Top := ATop;
  Width := AWidth;
  Height := AHight;
end;
Result := AQRShapeV;
end;

procedure TForm1.Create_Title(Sender: TWinControl; ALeft, ATop, AWidth,
AHight: Integer; ACaption: String; AAlignMent: TAlignment);
var
AQRLabel : TQRLabel;
begin
AQRLabel := TQRLabel.Create(Nil);
with AQRLabel do
begin
  Parent := Sender;
  Left := ALeft;
  Top := ATop;
  Width := AWidth;
  AlignMent := AAlignMent;
  Caption := ACaption;
end;
end;

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口