/*************************************************************************/
//Function : 从 excel 读取数据,保存到指定表
//parm :
// 1. as_excelfile : 对应的 excel 文件
// 2. SQLCA : 对应的数据库事务
// 3. sle_copy : 对应的临时 单文本编辑控件
//comment : 因为直接取数据中文处理不对,所以先把数据
// : 放在剪截板,在使用 sle_copy 接受
//return : of no use
//Author : hzh
//date : 2004.04.10
//Modifier :
/**********************************************************************/
String as_excelfile
as_excelfile = "D:/work/公司财务数据转换/k3/科目对比.xls"
IF NOT FileExists(as_excelfile) THEN
MessageBox("数据读入","没有指定的文件")
RETURN 1
END IF
OLEObject xlapp
IF NOT IsValid(xlApp) THEN
xlApp = CREATE OLEObject
END IF
IF xlApp.ConnectToNewObject("Excel.Application" ) < 0 THEN
MessageBox(ga_app.dwmessagetitle,"不能打开EXCEL文件,请检查你的计算机是否安装了MSEXCEL?",QuesTion!)
RETURN -1
END IF
xlApp.Application.Workbooks.Open(as_excelfile)
xlApp.Application.Visible = FALSE
Int i_cnt
Long l_cnt,l_rows,l_cols
Long l_row,l_i,l_newrow
String s_cno,s_temp
l_rows = 289
l_cols = 23
mle_message.Text = "正在导入科目,请耐心等待..."
//一次处理两行
uo_ds_base ds_todb
IF NOT IsValid(ds_todb) THEN
ds_todb = CREATE uo_ds_base
END IF
String s_sql
s_sql = "select * from t_kmdb"
ds_todb.uf_createdwsyntax(s_sql,sqlca)
ds_todb.SetTransObject(SQLCA)
For l_cnt = 1 TO l_rows
l_newrow = ds_todb.InsertRow(0)
For l_row = 1 TO 5
xlapp.Application.ActiveWorkbook.Worksheets[1].cells[l_cnt,l_row].Copy
sle_copy.Text = ""
sle_copy.Paste()
s_temp = sle_copy.text
ds_todb.SetItem(l_newrow,l_row,s_temp)
NEXT
//exit
NEXT
xlApp.Application.Visible = TRUE
xlApp.Application.ActiveWorkbook.close(false)
xlapp.Application.Quit()
xlApp.DisConnectObject()
IF IsValid(xlApp) THEN
DESTROY xlapp
END IF
IF ds_todb.AcceptText() = 1 AND ds_todb.RowCount() > 0 THEN
delete from t_kmdb;
END IF
IF ds_todb.Update() = 1 THEN
COMMIT USING SQLCA;
//FileDelete(as_excelfile)
//MessageBox("导入数据","保存成功")
ELSE
ROLLBACK USING SQLCA;
//MessageBox("导入数据","保存失败")
END IF
IF IsValid(ds_todb) THEN
DESTROY ds_todb
END IF
delete from t_kmdb where cfikm = 'FI科目代码' or cfikm = 'c2' or cfikm = '';
COMMIT USING SQLCA;
mle_message.Text = "~r~n-------科目导入结束--------"
RETURN 1
//Function : 从 excel 读取数据,保存到指定表
//parm :
// 1. as_excelfile : 对应的 excel 文件
// 2. SQLCA : 对应的数据库事务
// 3. sle_copy : 对应的临时 单文本编辑控件
//comment : 因为直接取数据中文处理不对,所以先把数据
// : 放在剪截板,在使用 sle_copy 接受
//return : of no use
//Author : hzh
//date : 2004.04.10
//Modifier :
/**********************************************************************/
String as_excelfile
as_excelfile = "D:/work/公司财务数据转换/k3/科目对比.xls"
IF NOT FileExists(as_excelfile) THEN
MessageBox("数据读入","没有指定的文件")
RETURN 1
END IF
OLEObject xlapp
IF NOT IsValid(xlApp) THEN
xlApp = CREATE OLEObject
END IF
IF xlApp.ConnectToNewObject("Excel.Application" ) < 0 THEN
MessageBox(ga_app.dwmessagetitle,"不能打开EXCEL文件,请检查你的计算机是否安装了MSEXCEL?",QuesTion!)
RETURN -1
END IF
xlApp.Application.Workbooks.Open(as_excelfile)
xlApp.Application.Visible = FALSE
Int i_cnt
Long l_cnt,l_rows,l_cols
Long l_row,l_i,l_newrow
String s_cno,s_temp
l_rows = 289
l_cols = 23
mle_message.Text = "正在导入科目,请耐心等待..."
//一次处理两行
uo_ds_base ds_todb
IF NOT IsValid(ds_todb) THEN
ds_todb = CREATE uo_ds_base
END IF
String s_sql
s_sql = "select * from t_kmdb"
ds_todb.uf_createdwsyntax(s_sql,sqlca)
ds_todb.SetTransObject(SQLCA)
For l_cnt = 1 TO l_rows
l_newrow = ds_todb.InsertRow(0)
For l_row = 1 TO 5
xlapp.Application.ActiveWorkbook.Worksheets[1].cells[l_cnt,l_row].Copy
sle_copy.Text = ""
sle_copy.Paste()
s_temp = sle_copy.text
ds_todb.SetItem(l_newrow,l_row,s_temp)
NEXT
//exit
NEXT
xlApp.Application.Visible = TRUE
xlApp.Application.ActiveWorkbook.close(false)
xlapp.Application.Quit()
xlApp.DisConnectObject()
IF IsValid(xlApp) THEN
DESTROY xlapp
END IF
IF ds_todb.AcceptText() = 1 AND ds_todb.RowCount() > 0 THEN
delete from t_kmdb;
END IF
IF ds_todb.Update() = 1 THEN
COMMIT USING SQLCA;
//FileDelete(as_excelfile)
//MessageBox("导入数据","保存成功")
ELSE
ROLLBACK USING SQLCA;
//MessageBox("导入数据","保存失败")
END IF
IF IsValid(ds_todb) THEN
DESTROY ds_todb
END IF
delete from t_kmdb where cfikm = 'FI科目代码' or cfikm = 'c2' or cfikm = '';
COMMIT USING SQLCA;
mle_message.Text = "~r~n-------科目导入结束--------"
RETURN 1