回 帖 发 新 帖 刷新版面

主题:请问我错在哪里,怎么优化?谢谢指点!!

l=thisform .text1. value
  b=thisform .text2. value
  h=thisform .text3. value
  j=thisform .text4. value
  
   
  l1="l+130"
  l2="b+57"
  l3="b+57"
  l4="0.5*l-119" 
  l5="b+57" 
  l6="0.5*l-62" 
  l7="h+66" 
  l8="(l+56)*(b+56)"
  l9="h+60" 
  l10="(b+126)*(h+66)" 
  l11="h+60" 
  l12="(l+126)*(h+66)" 
  l13="(l+120)*(b+120)" 
  l14="b+114" 
  l15="l" 
  l16="b+114"


    ***创建表自己***
  close all
  creat table 自己(序号 c(10),图号 c(20),名称 c(20),数值 n(10),数量 n(10),材料 c(20),单重 n(10,3),总重 n(10,3),备注 c(20))
  for 自己= 1 to 21
  append blank 
  endfor

    ***修改表记录***
 
   goto 2
   replace 序号 with "1/1",图号 with "TGS38001-2005",名称 with "Ⅰ10;L=",数值 with l1, 数量 with j*2, 材料 with "Q235-A.F",单重 with l1*11.2/1000,总重 with j*2*l1*11.2/1000
   goto 3
   replace 序号 with "1/2",图号 with "TGS38001-2005",名称 with "Ⅰ10;L=",数值 with l2, 数量 with j*2, 材料 with "Q235-A.F",单重 with l2*11.2/1000,总重 with j*2*l2*11.2/1000,备注 with "两端锁口"
   goto 4
   replace 序号 with "1/3",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l3, 数量 with j*2, 材料 with "Q235-A.F",单重 with l3*5.72/1000,总重 with j*2*l3*5.72/1000,备注 with "两端锁口"
   goto 5
   replace 序号 with "1/4",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l4, 数量 with j*1, 材料 with "Q235-A.F",单重 with l4*5.72/1000,总重 with j*l4*5.72/1000,备注 with "一端锁口"
   goto 6
   replace 序号 with "1/5",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l5, 数量 with j*1, 材料 with "Q235-A.F",单重 with l5*5.72/1000,总重 with j*l5*5.72/1000,备注 with "两端锁口"
   goto 7
   replace 序号 with "1/6",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l6, 数量 with j*1, 材料 with "Q235-A.F",单重 with l6*5.72/1000,总重 with j*l6*5.72/1000,备注 with "两端锁口"
   goto 8
   replace 序号 with "1/7",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l7, 数量 with j*4, 材料 with "Q235-A.F",单重 with l7*5.72/1000,总重 with j*4*l7*5.72/1000
   goto 9
   replace 序号 with "1/8",图号 with "TGS38001-2005",名称 with "钢板δ3;"-str(l+56)-"x",数值 with (b+56), 数量 with j*1, 材料 with "Q235-A.F",单重 with l8*7.85*3/1000000,总重 with j*l8*7.85*3/1000000
   goto 10
   replace 序号 with "1/9",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l9, 数量 with j*2, 材料 with "Q235-A.F",单重 with l9*5.72/1000,总重 with j*2*l9*5.72/1000,备注 with "一端锁口"
   goto 11 
   replace 序号 with "1/10",图号 with "TGS38001-2005",名称 with "钢板δ2;"-str(b+126)-"x",数值 with (h+66), 数量 with j*2, 材料 with "Q235-A.F",单重 with l10*7.85*2/1000000,总重 with j*2*l10*7.85*2/1000000
   goto 12
   replace 序号 with "1/11",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l11, 数量 with j*2, 材料 with "Q235-A.F",单重 with l11*5.72/1000,总重 with j*2*l11*5.72/1000,备注 with "一端锁口"
   goto 13 
   replace 序号 with "1/12",图号 with "TGS38001-2005",名称 with "钢板δ2;"-str(l+126)-"x",数值 with (h+66), 数量 with j*2, 材料 with "Q235-A.F",单重 with l12*7.85*2/1000000,总重 with j*2*l12*7.85*2/1000000
   goto 14
   replace 序号 with "1/13",图号 with "TGS38001-2005",名称 with "钢板δ3;"-str(l+126)-"x",数值 with (b+120), 数量 with j*1, 材料 with "Q235-A.F",单重 with l13*7.85*3/1000000,总重 with j*l13*7.85*3/1000000
   goto 15
   replace 序号 with "1/14",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l14, 数量 with j*1, 材料 with "Q235-A.F",单重 with l14*5.72/1000,总重 with j*l14*5.72/1000,备注 with "一端锁口"
   goto 16
   replace 序号 with "1/15",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l15, 数量 with j*2, 材料 with "Q235-A.F",单重 with l15*5.72/1000,总重 with j*2*l15*5.72/1000,备注 with "两端锁口"
   goto 17
   replace 序号 with "1/16",图号 with "TGS38001-2005",名称 with "∠63×63×6;L=",数值 with l16, 数量 with j*2, 材料 with "Q235-A.F",单重 with l16*5.72/1000,总重 with j*2*l16*5.72/1000,备注 with "两端锁口"
   sum 总重 to m
   goto 1
   replace 图号 with "TGS38001-2005",名称 with "铁箱 Ⅰ型", 数量 with j, 材料 with "装配件"
   goto 18
   replace 名称 with "铁箱长L1="+alltrim(str(l+130))
   goto 19
   replace 名称 with "铁箱宽B1="+alltrim(str(b+130))
   goto 20
   replace 名称 with "铁箱高H1="+alltrim(str(h+169))
  

 
  use g:\学习\tg2008\1111\js.dbf
      
      append from 自己
      use

回复列表 (共4个回复)

沙发

1。thisform .text1. value应连写,中间不能有空格
2。thisform.text1.value的类型如果是字符型就应该转换为数值:
  l=int(val(thisform.text1.value))
  b=int(val(thisform.text2.value))
  h=int(val(thisform.text3.value))
  j=int(val(thisform.text4.value))
  
 3. 按下面对‘数值 with l1’等的分析,l1, l2, ..., l16都是数值型:
  l1=l+130
  l2=b+57
  l3=b+57
  l4=0.5*l-119
  l5=b+57 
  l6=0.5*l-62 
  l7=h+66
  l8=(l+56)*(b+56)
  l9=h+60
  l10=(b+126)*(h+66) 
  l11=h+60
  l12=(l+126)*(h+66) 
  l13=(l+120)*(b+120)
  l14=b+114
  l15=l 
  l16=b+114

4.将replace换成insert-sql更好:
insert into 自己 values ('', "TGS38001-2005", "铁箱 Ⅰ型", 0, j, "装配件", 0, 0, '')

insert into 自己 values ("1/1", "TGS38001-2005", "Ⅰ10;L=", l1, j*2, "Q235-A.F", l1*11.2/1000, j*2*l1*11.2/1000, '')
insert into 自己 values ("1/2", "TGS38001-2005", "Ⅰ10;L=", l2, j*2, "Q235-A.F", l2*11.2/1000, j*2*l2*11.2/1000, "两端锁口")
.....

insert into 自己 values ("", "", "铁箱长L1="+alltrim(str(l+130)), 0, 0, '', 0, 0, '')
insert into 自己 values ("", "", "铁箱长L1="+alltrim(str(b+130)), 0, 0, '', 0, 0, '')
insert into 自己 values ("", "", "铁箱长L1="+alltrim(str(h+169)), 0, 0, '', 0, 0, '')

 注意:将
for 自己= 1 to 21
  append blank 
endfor
去掉


板凳

l=thisform.text1. value
  b=thisform.text2. value
  h=thisform.text3. value
  j=thisform.text4. value
  
   
  l1=l+130 
  l2= b+57 
  l3= b+57 
  l4= 0.5*l-119  
  l5= b+57  
  l6= 0.5*l-62  
  l7= h+66  
  l8= (l+56)*(b+56) 
  l9= h+60  
  l10= (b+126)*(h+66)  
  l11= h+60  
  l12= (l+126)*(h+66)  
  l13= (l+120)*(b+120)  
  l14= b+114  
  l15= l  
  l16= b+114 


    ***创建表自己***
  close all
  creat table 自己(序号 c(10),图号 c(20),名称 c(20),数值 n(10),数量 n(10),材料 c(20),单重 n(10,3),总重 n(10,3),备注 c(20))
  for 自己= 1 to 21
  append blank 
  endfor

    ***修改表记录***
 
  goto 2
   replace 序号 with "1/1",图号 with "TGS38001-2005",名称 with "Ⅰ10 L=",数值 with l1, 数量 with j*2, 材料 with "Q235-A.F",单重 with l1*11.2/1000,总重 with j*2*l1*11.2/1000
   goto 3
   replace 序号 with "1/2",图号 with "TGS38001-2005",名称 with "Ⅰ10 L=",数值 with l2, 数量 with j*2, 材料 with "Q235-A.F",单重 with l2*11.2/1000,总重 with j*2*l2*11.2/1000,备注 with "两端锁口"
   goto 4
   replace 序号 with "1/3",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l3, 数量 with j*2, 材料 with "Q235-A.F",单重 with l3*5.72/1000,总重 with j*2*l3*5.72/1000,备注 with "两端锁口"
   goto 5
   replace 序号 with "1/4",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l4, 数量 with j*1, 材料 with "Q235-A.F",单重 with l4*5.72/1000,总重 with j*l4*5.72/1000,备注 with "一端锁口"
   goto 6
   replace 序号 with "1/5",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l5, 数量 with j*1, 材料 with "Q235-A.F",单重 with l5*5.72/1000,总重 with j*l5*5.72/1000,备注 with "两端锁口"
   goto 7
   replace 序号 with "1/6",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l6, 数量 with j*1, 材料 with "Q235-A.F",单重 with l6*5.72/1000,总重 with j*l6*5.72/1000,备注 with "两端锁口"
   goto 8
   replace 序号 with "1/7",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l7, 数量 with j*4, 材料 with "Q235-A.F",单重 with l7*5.72/1000,总重 with j*4*l7*5.72/1000
   goto 9
   replace 序号 with "1/8",图号 with "TGS38001-2005",名称 with "钢板δ3 "-str(l+56)-"x",数值 with (b+56), 数量 with j*1, 材料 with "Q235-A.F",单重 with l8*7.85*3/1000000,总重 with j*l8*7.85*3/1000000
   goto 10
   replace 序号 with "1/9",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l9, 数量 with j*2, 材料 with "Q235-A.F",单重 with l9*5.72/1000,总重 with j*2*l9*5.72/1000,备注 with "一端锁口"
   goto 11 
   replace 序号 with "1/10",图号 with "TGS38001-2005",名称 with "钢板δ2 "-str(b+126)-"x",数值 with (h+66), 数量 with j*2, 材料 with "Q235-A.F",单重 with l10*7.85*2/1000000,总重 with j*2*l10*7.85*2/1000000
   goto 12
   replace 序号 with "1/11",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l11, 数量 with j*2, 材料 with "Q235-A.F",单重 with l11*5.72/1000,总重 with j*2*l11*5.72/1000,备注 with "一端锁口"
   goto 13 
   replace 序号 with "1/12",图号 with "TGS38001-2005",名称 with "钢板δ2 "-str(l+126)-"x",数值 with (h+66), 数量 with j*2, 材料 with "Q235-A.F",单重 with l12*7.85*2/1000000,总重 with j*2*l12*7.85*2/1000000
   goto 14
   replace 序号 with "1/13",图号 with "TGS38001-2005",名称 with "钢板δ3 "-str(l+126)-"x",数值 with (b+120), 数量 with j*1, 材料 with "Q235-A.F",单重 with l13*7.85*3/1000000,总重 with j*l13*7.85*3/1000000
   goto 15
   replace 序号 with "1/14",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l14, 数量 with j*1, 材料 with "Q235-A.F",单重 with l14*5.72/1000,总重 with j*l14*5.72/1000,备注 with "一端锁口"
   goto 16
   replace 序号 with "1/15",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l15, 数量 with j*2, 材料 with "Q235-A.F",单重 with l15*5.72/1000,总重 with j*2*l15*5.72/1000,备注 with "两端锁口"
   goto 17
   replace 序号 with "1/16",图号 with "TGS38001-2005",名称 with "∠63×63×6 L=",数值 with l16, 数量 with j*2, 材料 with "Q235-A.F",单重 with l16*5.72/1000,总重 with j*2*l16*5.72/1000,备注 with "两端锁口"
   sum 总重 to m
   goto 1
   replace 图号 with "TGS38001-2005",名称 with "铁箱 Ⅰ型", 数量 with j, 材料 with "装配件"

 
  use g:\学习\tg2008\1111\js.dbf
      
      append from 自己
      use

3 楼

[quote]1。thisform .text1. value应连写,中间不能有空格
2。thisform.text1.value的类型如果是字符型就应该转换为数值:
  l=int(val(thisform.text1.value))
  b=int(val(thisform.text2.value))
  h=int(val(thisform.text3.value))
  j=int(val(thisform.text4.value))
  
 
请问:
with thisform
l=val(.text1.value)
b=val(.text1.value)
h=val(.text1.value)
j=val(.text1.value)
endwith

是否是简略写法,有区别吗,区别在哪里?

4 楼

就编程来讲可以这么说,但它还有更深刻的——为编译程序指明了代码优化

我来回复

您尚未登录,请登录后再回复。点此登录或注册