文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» PowerBuilder » 关于数据窗口保存的代码       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [求助] 关于数据窗口保存的代码  ( 查看:424  回复:4 )   
 
f66lifn9
新新人类  点击可查看详细



帖子 1
精华 0
无忧币 15
积分 5
阅读权限 20
注册日期 2008-4-12
最后登录 2008-4-17 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-4-12 10:26   标题:关于数据窗口保存的代码
上一帖 |
主要是想把数据窗口中的数据写入到另外的一张表inp_bill_detail中

Int li_rtn,c_costs,c_charge,i_amount
Int li_type,pat_charge
String i_spec, ls_person_no,i_class,i_name
string i_code
String ls_adm_date, ls_dis_date
String ls_adm_status, ls_dis_status
dw_adm.AcceptText()
dw_pat_info.AcceptText()
//4
i_class = dw_adm.GetItemString(1,"bill_pattern_detail_item_class")
//5
i_name = dw_adm.GetItemString(1,"item_name")
//6
i_code = dw_adm.GetItemString(1,"item_code")
//7
i_spec = dw_adm.GetItemString(1,"item_spec")
//8
i_amount=dw_adm.GetItemNumber(1,"amount")
//9
i_unit = dw_adm.GetItemString(1,"price_list_units")

   bill_date_time =today()
//dw_adm.GetItemDateTime(1,"sysday")
//dis_date_time = dw_adm.GetItemDateTime(1,"out_date")
//ls_adm_date = String(adm_date_time,"YYYY-MM-DD")
//ls_dis_date = String(dis_date_time,"YYYY-MM-DD")
//inp_days = dw_adm.GetItemNumber(1,"inp_days")
adm_dept_name = dw_adm.GetItemString(1,"dept_name")
dis_dept_name = dw_adm.GetItemString(1,"dept_name")
//doctor_name = dw_adm.GetItemString(1,"doctor")
//ls_adm_status = dw_adm.GetItemString(1,"in_status")
//adm_diag_code = dw_adm.GetItemString(1,"in_diag")
//11
//dis_dept_name = dw_adm.GetItemString(1,"out_dept_name")
//执行科室代码10
//dis_dept_code = dw_adm.GetItemString(1,"out_dept_code")
//ls_dis_status = dw_adm.GetItemString(1,"out_status")
//dis_diag_code = dw_adm.GetItemString(1,"out_diag")
//12
c_costs=dw_adm.GetItemNumber(1,"amount*price")
//13
c_charge=dw_adm.GetItemNumber(1,"amount*price")
p_charge_type=dw_pat_info.GetItemString(1,"pat_visit_charge_type")
//开单科室15
adm_dept_code=dw_pat_info.GetItemString(1,"dept_dict_dept_code")
//1
pat_id=dw_pat_info.GetItemString(1,"pat_visit_patient_id")
//2
visit_id=dw_adm.GetItemNumber(1,"pat_visit_visit_id")

if p_charge_type='自费' or p_charge_type='医改' then
pat_charge=c_costs
else if
   p_charge_type='免费' then
  pat_charge=0
if  p_charge_type='优惠医疗' then
pat_charge=c_costs/10
end if
end if
end if
INT I

SELECT COUNT(ITEM_NO)+1 INTO :I
WHERE PATIENT_ID=AT_ID AND VISIT_ID=:VISIT_ID;

insert into "INP_BILL_DETAIL" ( "ATIENT_ID", "VISIT_ID", "ITEM_NO", "ITEM_CLASS","ITEM_NAME", "ITEM_CODE","ITEM_SPEC", "AMOUNT","UNITS","ORDERED_BY","ERFORMED_BY", "COSTS", "CHARGES", "BILLING_DATE_TIME",
"OPERATOR_NO","RCPT_NO","SPECIAL_CHARGES") values(:pat_id,:visit_id,:1,:i_class,:i_name,:i_code,:i_spec,
:i_amount,:i_unit,:adm_dept_code,:adm_dept_name,:c_costs,:c_charge,:bill_date_time,:ff,"","")



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-4-12 10:261楼
[ 顶部 ]
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3116
精华 1
无忧币 5987
积分 4103
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-10-14 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-4-14 08:22 
你的insert代码有问题
一、表名是不需要引号的
二、字段名是不需要引号的
三、变量是不能用双引号的,要用单引号

还有,报了那些错,也贴出来吧



用户必读,51CTO积分系统调整通知
2008-4-14 08:222楼
[ 顶部 ]
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3116
精华 1
无忧币 5987
积分 4103
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-10-14 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-4-14 08:24 
还有啊,偶认为你取ID的方法有问题

你的代码
SELECT COUNT(ITEM_NO)+1 INTO :I
WHERE PATIENT_ID=AT_ID AND VISIT_ID=:VISIT_ID;

这样是取数据的条数
假如:
一、目前有5条数据,你取到的值是5
二、你新增一条数据,该数据的ID为6
三、然后你删除了某一条数据
四、又做一个新增数据操作,则该新增数据的ID也为6
这就有可能造成ID重复



用户必读,51CTO积分系统调整通知
2008-4-14 08:243楼
[ 顶部 ]
 
rogers_
新新人类  点击可查看详细



帖子 27
精华 0
无忧币 0
积分 30
阅读权限 20
注册日期 2008-5-6
最后登录 2008-10-11 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-5-9 00:57 
版主有什么好的方法



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-5-9 00:574楼
[ 顶部 ]
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3116
精华 1
无忧币 5987
积分 4103
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-10-14 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-5-10 08:09 
有一张表,专门记录最大编号
如果产生了一个编号,则立即改写



用户必读,51CTO积分系统调整通知
2008-5-10 08:095楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号