dbgrideh 单元格的位置

dbgrideh 单元格的位置,第1张

var

p:TPoint;

dbg:TDBGridEh;

coord:TGridCoord;

begin

if cds1IsEmpty then exit;

dbg:=DBGridEh1;

p:=MouseCursorPos;

p:=dbgScreenToClient(p);

coord:=dbgMouseCoord(pX,pY);

if (coordX<1) or (coordY<1) then Exit;

end;

参考这段代码,其中coord的x,y表示行列坐标

procedure QueryData(AStoreName: stirng; AStartDate, AEndDate: TDateTime);

var

BStartDate, BEndDate: TDateTime;

begin

BStartDate := incyear(AStartDate, -1);

BEndDate := incyear(AEndDate, -1);

with AdoQuery1 do

begin

SqlClose;

SqlClear;

SqlAdd('select 类别名, 产品订价(本期), 销售金额(本期), ' +

' 产品订价(同期), 销售金额(同期) from ' +

' ((select 类别号, sum(产品订价) as 产品订价(本期), ' +

' sum(销售金额) as 销售金额(本期) from 销售信息表 ' +

' left join 店面信息表 on 店面号 = 店面编号 ' +

' where 店名 = AStoreName and ' +

' (销售日期 between AStartDate and AEndDate) group by 类别号)) tb1 ' +

' left join ' +

' (select 类别号, sum(产品订价) as 产品订价(本期), ' +

' sum(销售金额) as 销售金额(本期) from 销售信息表 ' +

' left join 店面信息表 on 店面号 = 店面编号 ' +

' where 店名 = AStoreName and ' +

' (销售日期 between BStartDate and BEndDate) group by 类别号)) tb2 ' +

' on tb1类别号 = tb2类别号) right join 商品类别信息表 ' +

' tb3 on tb1类别号 = tb3类别号')

SqlOpen;

end;

end;

导出到excel 你用dbgrideh

uses

DBGridEhImpExp

procedure ExportDataExcel;

var ExpClass:TDBGridEhExportClass;

Ext:String;

begin

if SaveDialog1Execute then

begin

ExpClass := TDBGridEhExportAsXLS;

SaveDBGridEhToExportFile(ExpClass,dbgrideh1,

SaveDialog1FileName,true);

end;

end;

兄弟用得着写吗?有现成的啊!

你在interface

uses 中引用 math 单元,然后调用MAX(A,B),其中有下面几种情况:

function Max(A,B: Integer): Integer;

function Max(A,B: Int64): Int64;

function Max(A,B: Single): Single;

function Max(A,B: Double): Double;

function Max(A,B: Extended): Extended;

举个例子(先在窗体上放置3个EDIT组件和一个BUTTON组件,在单击BUTTON按钮事件写代码),全部代码为:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,math, GridsEh, DBGridEh;

type

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

DBGridEh1: TDBGridEh;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R dfm}

procedure TForm1Button1Click(Sender: TObject);

var m,A,B:integer;

begin

A:=strtoint(trim(edit1Text));

B:=strtoint(trim(edit2Text));

m:=max(A,B);//调用MATH单元的比较函数

edit3Text:=inttostr(m);//显示最大的一个数。

end;

end

TDBGrideh(Args[I]VObject)DataSourceDataSetfirst;//移动指针到数据集第一条

for iCount := 0 to TDBGrideh(Args[I]VObject)ColumnsCount - 1 do

SheetCells[1, iCount + 1] :=

TDBGrideh(Args[I]VObject)ColumnsItems[iCount]TitleCaption;//列标题导出,在EXCEL第一行

jCount := 1;//从EXCEL第二行开始写

while not TDBGrideh(Args[I]VObject)DataSourceDataSetEof do

begin//只要不到数据集文尾,就一直导出

for iCount := 0 to TDBGrideh(Args[I]VObject)ColumnsCount - 1 do

SheetCells[jCount + 1, iCount + 1] :=

TDBGrideh(Args[I]VObject)ColumnsItems[iCount]FieldAsString;//导完一行数据的所有列

Inc(jCount);//EXCEL下一个表格行

TDBGrideh(Args[I]VObject)DataSourceDataSetNext;//数据集指针向下移动一条记录

代码没有问题,是你的查询有问题,如果是多表联接,联接应该有问题。ACCESS的表联接一般不能超过二张表。请注意一下“实施参照完整性”设置窗口中的意思,你先用单表导出试试。如果单表导出无重复,那就肯定是查询有问题了

以上就是关于dbgrideh 单元格的位置全部的内容,包括:dbgrideh 单元格的位置、使用DELPHI7和ACCESS做个查询程序,要做多表查询,并可导出结果。以前没接触过。 求指教、用delphi语言写一个程序实现求两个数的最大值,程序名为E_max。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9422669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存