陈奇网络工作室

德尔福导入擅长

系统运维

单元excel小组

连接

类型

TExcelFunction=procedure(Ashe et:ol variant);//声明导入函数

{访问单元格:工作表。单元格[行,列]

转为string:vartostr(sheet。单元格[行,列])

转为datetime:vartodatetime(工作表。单元格[行,列])

}

//afilename为数据源文件名,func为执行导入的函数

过程RunExcelApplication(afilename:string;func:TExcelFunction);

履行

使用控件、窗体、ComObj、windows、sysutils .

过程RunExcelApplication(afilename:string;

func:TExcelFunction);

定义变量

ExcelApp:Variant;

旧光标:t光标;

开始

旧光标:=屏幕。光标;

//保存鼠标指针状态

屏幕光标:=Cr沙漏;

尝试

CoInitializeEx(nil,0);

Excel应用程序:=创建ole对象(\ \ \ ' Excel .应用程序\ \ \ ');

ExcelApp .可见:=真;

尝试

ExcelApp .练习册。open(afilename);

//打开源文件

ExcelApp .工作表[1]。激活;

excel应用程序。可见:=假;//隐藏擅长窗体

如果赋值(func),则//执行导入函数

func(ExcelApp .活性片);//传递表给函数进行导入

最后

ExcelApp .工作簿。关闭;

ExcelApp .退出;

屏幕。游标:=旧光标

结束;

除了例外吗

开始

MessageBox(GetActiveWindow,pchar(e.message),\\\ '提示\\\ 'MB _ OK MB _ icon信息);

屏幕。游标:=旧光标

退出;

结束;

结束;

结束;

结束。

单位frmBuyingItemsP

连接

使用

窗口、消息、系统、变量、类、图形、控件、表单,

对话框,嵌入式FormU,dxSkinsCore,dxSkinOffice2010Black,

dxSkinOffice2010Blue,dxSkinOffice2010Silver,dxSkinsDefaultPainters,

dxSkinsdxBarPainter,dxBar,cxClasses,cxGraphics,cxControls,cxLookAndFeels,

cxLookAndFeelPainters,cxStyles,dxSkinscxPCPainter,cxCustomData,cxFilter,

cxData,cxDataStorage,cxEdit,DB,cxDBData,cxGridLevel,cxGridCustomView,

cxGridCustomTableView,cxGridTableView,cxgridbtableview,cxGrid,ExtCtrls,

RzPanel,StdCtrls,cxCheckBox,DBClient,ADODB,ComCtrls

类型

TCheckBoxClickEvent=对象的过程(发件人:向对象);

类型

TCheckBoxClick=class(到对象)

私人的

fon checkbox click:TCheckBoxClickEvent;//定义一个内部事件,私有里的只能在类内部调用

公众的

property View _ upcheckboxcolumn properties change:tcheckbox click事件read fon checkbox click write fon checkbox click;//定义一个外部的事件

结束;

类型

TfrmBuyingItems=class(TEmbeddableForm)

dxbar管理器1:tdxbar管理器;

dxbar管理器1 bar 1:tdx bar;

酒吧搜索:TdxBarButton

barexport:TdxBarButton;

bar导入:TdxBarButton

baradd:TdxBarButton;

bar modify:TdxBarButton;

bar close:TdxBarButton;

rzgroupbox 1:TRzGroupBox;

CX项目:TcxGridDBTableView

cxgrid 1一级:TcxGridLevel

cxgrid 1:tcx网格;

bar save:TdxBarButton;

ed tno:TLabeledEdit;

cxitemscolumn 1:tcxgridbcolumn;

cxitemscolumn 2:tcxgridbcolumn;

cxitemscolumn 3:tcxgridbcolumn;

cxitemscolumn 4:tcxgridbcolumn;

cxitemscolumn 5:tcxgridbcolumn;

cxitemscolumn 6:tcxgridbcolumn;

cxitemscolumn 7:tcxgridbcolumn;

cxitemscolumn 8:tcxgridbcolumn;

cxitemscolumn 9:tcxgridbcolumn;

cxitemscolumn 10:tcxgridbcolumn;

cxitemscolumn 11:tcxgridbcolumn;

cxitemscolumn 12:tcxgridbcolumn;

cxitemscolumn 13:tcxgridbcolumn;

cxitemscolumn 14:tcxgridbcolumn;

cxitemscolumn 15:tcxgridbcolumn;

cxitemscolumn 16:tcxgridbcolumn;

cxitemscolumn 17:tcxgridbcolumn;

cxitemscolumn 18:tcxgridbcolumn;

cxitemscolumn 19:tcxgridbcolumn;

cxitemscolumn 20:tcxgridbcolumn;

cxitemscolumn 21:tcxgridbcolumn;

cxitemscolumn 22:tcxgridbcolumn;

cxitemscolumn 23:tcxgridbcolumn;

cxitemscolumn 24:tcxgridbcolumn;

cxitemscolumn 25:tcxgridbcolumn;

cxitemscolumn 26:tcxgridbcolumn;

cxitemscolumn 27:tcxgridbcolumn;

cxitemscolumn 28:tcxgridbcolumn;

cxitemscolumn 29:tcxgridbcolumn;

cxitemscolumn 30:tcxgridbcolumn;

cxitemscolumn 31:tcxgridbcolumn;

cxitemscolumn 32:tcxgridbcolumn;

cxitemscolumn 33:tcxgridbcolumn;

cxitemscolumn 34:tcxgridbcolumn;

EDT名称:TLabeledEdit

cxitemscolumn 35:tcxgridbcolumn;

客户端数据集1:TClientDataSet;

ado query 1:tado query;

打开对话框1:TOpenDialog;

bar导入2:TdxBarButton;

richedit 1:trich edit;

程序栏关闭单击(发送方:to object);

程序表单显示(发送方:to object);

过程栏搜索单击(发送方:to object);

过程表单创建(发送方:至对象);

过程barimportClick(发送方:to object);

过程工具栏点击(发送方:to object);

私人的

{私人声明}

公众的

{公开声明}

过程view _ upcheckboxcolumnpropertisechange(Sender:to object);

结束;

定义变量

frmBuyingItems:TfrmBuyingItems;

履行

{$R * .dfm}

使用dmbuyingitemsP、ExcelProUnit、dbmoduleP、Comobj、WordXP

定义变量

sl:tStrings;

pubsql:string;

过程GetFromExcel(Ashe et:ol variant);

定义变量

斯、rs:字符串;

行:整数;

no,item_no,item_no_old,choice_name,name,name_old,buying_price,face_price,add_price,

本地运输费,价格,国内运输费,服务费,

服务费,利润,中文名称,英文名称,

重量,体积,美国价格,真实美国价格,协调制度代码,

上传日,关闭日,剩余日,购买名称,购买网址,

状态,韩国名,中文名,

通关标识标识,运输方式标识,关税,add _ express _ fee:string;

adodata:tado查询;

id:字符串;

clearance_sign,transport _ way:string;

开始

行:=1;

s:=trim(vartostr(asheet。cells[row,1]);

pubsql:=\ \ \ ' \ \ \ '

而s \\\'\\\ '会

开始

如果行490然后

开始

否:=trim(vartostr(asheet。cells[row,1]);

item _ no:=trim(vartostr(asheet。cells[row,2]);

item _ no:=dmbuyingitems。getmaxbuyingitems _ Id

item _ no _ old:=trim(vartostr(asheet。cells[row,2]);

choice _ name:=trim(vartostr(asheet。单元格[行,3]);

name:=trim(vartostr(asheet。cells[row,4]));

name:=choice _ name \ \ \ ' \ \ \ ' item _ no;

name _ old:=trim(vartostr(asheet。单元格[第4行]);

buying _ price:=trim(vartostr(asheet。单元格[第5行]);

if (buying_price=\\\'\\\ ')或(buying_price=Null)然后

buying _ price:=\ \ \ ' 0 \ \ \ '

face _ price:=trim(vartostr(asheet。单元格[第6行]);

如果(face_price=\\\'\\\ ')或(face_price=Null)则

face _ price:=\ \ \ ' 0 \ \ \ '

add _ price:=trim(vartostr(asheet。单元格[第7行]);

if (add_price=\\\'\\\ ')或(add_price=Null)然后

add _ price:=\ \ \ ' 0 \ \ \ '

native _ trans _ fee:=trim(vartostr(asheet。单元格[第8行]);

if (native_trans_fee=\\\'\\\ ')或(native_trans_fee=Null)则

native _ trans _ fee:=\ \ \ ' 0 \ \ \ '

价格:=trim(vartostr(asheet。单元格[第9行]);

如果(price=\\\'\\\ ')或(价格=空)则

price:=\ \ \ ' 0 \ \ \ '

national _ tran _ fee:=trim(vartostr(asheet。单元格[第10行]);

如果(national_tran_fee=\\\'\\\ ')或(national_tran_fee=Null)则

national _ tran _ fee:=\ \ \ ' 0 \ \ \ '

service _ charge _ rate:=trim(vartostr(asheet。单元格[第11行]);

如果(服务收费费率=\\\'\\\ ')或(服务收费费率=空值),则

service _ charge _ rate:=\ \ \ ' 0 \ \ \ '

service _ charge _ fee:=trim(vartostr(asheet。单元格[第12行]);

如果(服务费用=\\\'\\\ ')或(服务费用=空)则

service _ charge _ fee:=\ \ \ ' 0 \ \ \ '

利润:=trim(vartostr(asheet。单元格[第13行]);

如果(profit=\\\'\\\ ')或(利润=空)则

利润:=\ \ \ ' 0 \ \ \ '

Chinese _ kind _ name:=trim(vartostr(asheet。单元格[第14行]);

English _ name:=trim(vartostr(asheet。单元格[第15行]);

重量:=trim(vartostr(asheet。单元格[第16行]);

如果(weight=\\\'\\\ ')或(重量=零)则

weight:=\ \ \ ' 0 \ \ \ '

音量:=trim(vartostr(asheet。单元格[第17行]);

如果(volume=\\\'\\\ ')或(体积=零)则

卷:=\ \ \ ' 0 \ \ \ '

American _ price:=trim(vartostr(asheet。单元格[第18行]);

如果(american_price=\\\'\\\ ')或(american_price=Null)则

American _ price:=\ \ \ ' 0 \ \ \ '

real _ American _ price:=trim(vartostr(asheet。单元格[第19行]);

如果(real _ american _ price=\ \ \ ' \ ')或(真实美国价格=Null)则

real _ American _ price:=\ \ \ ' 0 \ \ \ '

hs _ code:=trim(vartostr(asheet。单元格[第20行]);

upload _ day:=trim(vartostr(asheet。单元格[第21行]);

down shelf _ day:=trim(vartostr(asheet。单元格[第22行]);

剩余天数:=trim(vartostr(asheet。单元格[第23行]));

if (leftdays=\\\'\\\ ')或(剩余天数=空)然后

剩余天数:=\ \ \ ' 0 \ \ \ '

buying _ name:=trim(vartostr(asheet。单元格[第24行]);

buying _ URL:=trim(vartostr(asheet。单元格[第25行]);

状态:=trim(vartostr(asheet。单元格[第26行]));

Korea _ name:=trim(vartostr(asheet。单元格[第27行]);

Chinese _ name:=trim(vartostr(asheet。单元格[第28行]);

transport _ way:=trim(vartostr(asheet。单元格[第29行]);

clearance _ sign:=trim(vartostr(asheet。单元格[第30行]);

如果(clearance_sign=\\\'\\\ ')或(clearance_sign=null)则

开始

申请MessageBox(\\\ '请输入通关符号\\\'\\\'提示\\\ 'MB _ icon警告);

中止;

结束;

if (transport_way=\\\'\\\ ')或(transport_way=null)则

开始

申请MessageBox(\\\ '请输入货运方式\\\'\\\'提示\\\ 'MB _ icon警告);

中止;

结束;

clearance _ sign _ id _ id:=dmbuyingitems。get _ clearance _ sign _ id(clearance _ sign);

transport _ way _ id _ id:=dmbuyingitems。get _ transport _ way _ id(transport _ way);

clearance _ sign _ id _ id:=\ \ \ ' 1 \ \ \ '

transport _ way _ id _ id:=\ \ \ ' 1 \ \ \ '

关税:=trim(vartostr(asheet。单元格[第31行]);

如果(关税=\\\'\\\ ')或(关税=空)则

关税:=\ \ \ ' 0 \ \ \ '

add _ express _ fee:=trim(vartostr(asheet。单元格[第32行]);

如果(添加快速费用=\\\'\\\ ')或(添加快速费用=空)则

add _ express _ fee:=\ \ \ ' 0 \ \ \ '

'插入到erp_buyingitem(no,item_no,item_no_old,choice_name,name,name_old,buying_price,face_price,add_price,\ '

\\\' native_trans_fee,price,national _ tran _ fee,service_charge_rate,\\\ '

\\\ '服务费用,利润,中文名称,英文名称,\\ '

\\\ '重量,体积,美国价格,真实美国价格,hs代码,\\ '

\\\' upload_day,downshelf_day,leftdays,buying_name,buying_url,\ '

\\\ '状态,韩国名,中国名,\\\ '

\\\' clearance_sign_id_id,transport_way_id_id,tariff,add _ express _ fee)\ \ \ '

pubsql:=pubsql \ \ \ ' select \ \ \ ' quoted str(no)\ \ \ '\ \ \ ' quoted str(item _ no)\ \ \ '\ \ \ ' quoted str(item _ no _ old)\ \ \ '\\\' QuotedStr(choice_name)

\\\ '\ \ \ ' quoted str(name)\ \ \ '\ \ \ ' quoted str(name _ old)\ \ \ '\ \ \ ' quoted str(buying _ price)\ \ \ '\ \ \ ' quoted str(face _ price)\ \ \ '\\\' QuotedStr(add_price)

\\\ '\ \ \ ' quoted str(native _ trans _ fee)\ \ \ '\ \ \ ' quoted str(price)\ \ \ '\ \ \ ' quoted str(national _ trans _ fee)\ \ \ '\ \ \ ' quoted str(service _ charge _ rate)

\\\ '\ \ \ ' quoted str(service _ charge _ fee)\ \ \ '\\\' QuotedStr(profit) \\\ '\ \ \ ' quoted str(Chinese _ kind _ name)\ \ \ '\\\' QuotedStr(english_name)

\\\ '\\\' QuotedStr(重量)\ \ \ \ '\\\' QuotedStr(体积)\ \ \ \ '\\\' QuotedStr(美国价格)\ \ \ \ '\\\' QuotedStr(真实美国价格)

\\\ '\\\' QuotedStr(hs_code) \\\ '\\\' QuotedStr(upload_day) \\\ '\ \ \ ' quoted str(down shelf _ day)\ \ \ '\\\' QuotedStr(leftdays)

\\\ '\\\' QuotedStr(buying_name) \\\ '\\\' QuotedStr(buying_url) \\\ '\\\' QuotedStr(status) \\\ '\\\' QuotedStr(korea_name)

\ '\\\' QuotedStr(中文名称)\\\ \ '\\\ '引用的str(clearance _ sign _ id _ id)\ \ \ '\ \ \ '引用的str(transport _ way _ id _ id)\ \ \ '\ \ \ '

引用的Str(关税)\ \ \ \ '\ \ \ '引用str(add _ express _ fee);

结束;

公司(世界其他地区);

sl .添加(RS);

s:=trim(vartostr(asheet。cells[row,3]));

结束;

结束;

过程TfrmBuyingItems.barcloseClick(发送方:to object);

开始

关闭;

结束;

过程TfrmBuyingItems.barimportClick(发送方:to object);

开始

OpenDialog1 .标题:=\\\ '请选择正确的擅长文件\\\'

OpenDialog1 .筛选器:=\\\'Excel(* .xls)|* .xls \ \ \ '

if OpenDialog1 .然后执行

开始

//RunExcelApplication(ExtractFilePath(application .ExeName) \\\'success.xls\\\ 'get from excel);

RunExcelApplication(打开对话框1 .文件名,get from excel);

富裕1 .text:=pubsql;

尝试

dbmodule .SHSCon。贝京特内斯

dmbuyingitems。exesql(pubsql);

dbmodule .SHSCon。委托事务

申请MessageBox(\\\ '导入成功!\\\'\\\'提示\\\ 'MB _ OK);

酒吧搜索点击(自己);

除.之外

dbmodule .SHSCon。回滚事务

申请MessageBox(\\\ '导入失败!\\\'\\\'提示\\\ 'MB _ OK);

结束;

//memo1 .台词。add strings(sl);

结束;

{

RunExcelApplication(ExtractFilePath(application .ExeName) \\\'success.xlsx\\\ 'get from excel);

记忆1 .台词。add strings(sl);

}

结束;

过程TfrmBuyingItems.barsaveClick(发送方:to object);

var excelx,excely:string;

ExcelApp,工作簿:oleVariant

ExcelRowCount,我:整数;

开始

OpenDialog1 .标题:=\\\ '请选择正确的擅长文件\\\'

OpenDialog1 .筛选器:=\\\'Excel(* .xls)|* .xls \ \ \ '

if OpenDialog1 .然后执行

开始

尝试

Excel应用程序:=创建ole对象(\ \ \ ' Excel .应用程序\ \ \ ');

工作簿:=CreateOleObject(\\\'Excel .工作表\ \ \ ');

工作簿:=ExcelApp .练习册。打开(opendialog1 .文件名);//使用打开对话框对话框指定

//excel档路径

ExcelApp .可见:=假;

ExcelRowCount :=工作簿。工作表[1].使用范围。行。数数;

对于我:=1的excelrowcount 1 do

开始

excelx :=excelapp .单元格[我,1].价值;

excely :=excelapp .单元格[i,2].价值;

if ((excelapp .单元格[我,1].Value=\\\'\\\ ')和(ExcelApp .单元格[i,2].Value=\\\'\\\ '))然后

//指定擅长档的第我行,第1,2(看情况而定)行如果为空就退出,这样的设定,最好是你的

//档案力这两行//对应数据库中不能为空的数据

出口

其他

用adobe query 1做

开始

关闭;

sql.clear

SQL。add(\ \ \ ' insert into test(name,address) values(:name,address)\ \ \ \ ');

参数。param byname(\ \ \ ' name \ \ \ ').值:=excelx//excel档的第一列插入到试验表的名字栏位;

参数。param byname(\ \ \ '地址\ \ \ ').值:=excely//excel档的第二列插入到试验表的地址栏位;

execsql

结束;

结束;

最后

工作簿。关闭;

ExcelApp .退出;

ExcelApp :=未赋值;

工作簿:=未分配;

结束;

结束;

结束;

过程TfrmBuyingItems.barsearchClick(发送方:to object);

定义变量

item_no,name:string;

开始

dmbuyingitems。getbuyingitems(item _ no,name);

cxitems .数据控制器。数据来源:=dmbuyingitems。ds项目;

结束;

过程TfrmBuyingItems .表单创建(发件人:to object);

开始

sl :=TStringList .创建;

结束;

过程TfrmBuyingItems .表单显示(发件人:to object);

定义变量

我:整数;

开始

for i :=0 to self .组件数量1个

开始

如果自我。那么组件[i]是TLabeledEdit

开始

和自己在一起。组件[我]与TLabeledEdit一样

开始

斜边:=[beBottom];

斜面内部:=bv none

斜面种类:=bk软;

斜面外:=bv凸起;

边框样式:=bs无;

父色:=True

结束;

结束;

结束;

酒吧搜索点击(自己);

客户端数据集1 .FieldDefs。清楚的

对于i:=0到dmbuyingitems。ado项目。字段计数-1 do

开始

使用客户端数据集1 .FieldDefs。AddFieldDef do

开始

name:=dmbuyingitems。ado项目。字段[I].显示名称;

如果dmbuyingitems。ado项目。字段。字段[I].那么DataType=ftAutoInc

数据类型:=ftInteger

否则如果dmbuyingitems。ado项目。字段。字段[I].那么DataType=ftWideString

数据类型:=ftString

其他

数据类型:=dmbuyingitems。ado项目。字段。字段[I].数据类型;//取原数据字段数据类型

size:=dmbuyingitems。ado项目。字段。字段[I].尺寸;

结束;

结束;

客户端数据集1 .创建数据集

dmbuyingitems。ds项目。数据集:=dmbuyingitems。ado项目;

cxitems .数据控制器。数据来源:=dmbuyingitems。ds项目;

//cxyzjl .清除项目

//cxyzjl .创建列;//建立一个没绑定的列

cxitems .列[0]。标题:=\\\ '选择\\\'

//cxitems .数据控制器。CreateAllItems//建立所有绑定的列

//dw_checker1 .列[0]。数据绑定。字段名:=\ \ \ ' flag \ \ \

cxitems .列[0]。宽度:=45;

//下列5行语句是为了让没绑定列成为复选框:

cxitems .数据控制器。关键字段名称:=\ \ \ ' id \ \ \

cxitems .数据控制器。主关键字字段名称:=\ \ \ ' id \ \ \

cxitems .数据控制器。详细信息关键字字段名称:=\ \ \ ' id \ \ \

cxitems .数据控制器。数据模式控制器。智能刷新:=true

cxitems .列[0]。数据绑定。值类型:=\ \ \ '布尔\ \ \ '

cxitems .列[0]。properties类:=TcxCheckBoxProperties

(cxitems .列[0]。属性作为TcxCheckBoxProperties).null style:=ns sun checked;

//由于检验盒列是动态列,所以需要给其关联一个OnChange的事件:

(cxitems .列[0]。属性作为TcxCheckBoxProperties).OnChange:=View _ upcheckboxcolumnpropertisechange;//关联事件

cxitems .选项视图。指标:=真;

cxitems .选项视图。NoDataToDisplayInfoText:=\ \ \ ' \ \ \ '

结束;

过程TfrmBuyingItems .view _ upcheckboxcolumnpropertisechange(

发件人:to object);

开始

////////////////////////////////////////////////////

如果cxitems .聚焦=那么正确

如果(发送方为tcx复选框).检查过了

开始

cxitems .查看数据。行[cxitems .控制器。FocusedRowIndex].values[0]:=true;

结束

其他

开始

cxitems .查看数据。行[cxitems .控制器。FocusedRowIndex].values[0]:=false;

结束;

结束;

结束。

更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理商官网:www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3