简单展示一个示例
套了两层switch
switch 支付1
{
case "医保":
objExcel.Cells(y,11).Value:=""
objExcel.Cells(y,7).Value:=名字
objExcel.Cells(y+1,7).Value:=名字
switch 处方类型
{
case "草药":
objExcel.Cells(y+1,8).Value:=付数
objExcel.Cells(y+1,11).Value:=付数
case "代煎":
objExcel.Cells(y+1,9).Value:=付数
objExcel.Cells(y+1,11).Value:=3*付数
default:
objExcel.Cells(y+1,9).Value:=付数
objExcel.Cells(y+1,11).Value:=""
}
objExcel.Cells(y,20).Value:="医保"
objExcel.Cells(y+1,20).Value:="中国银行"
InputBox,医保扣费,请输入医保扣费
objExcel.Cells(y,10).Value:=医保扣费
objExcel.Cells(y+1,10).Value:=药价-医保扣费
if (挂号费="28")
{
objExcel.Cells(y,22).Value:="中国银行"
objExcel.Cells(y,23).Value:="28"
}
case "琳姐":
objExcel.Cells(y,7).Value:=名字
objExcel.Cells(y,10).Value:=药价
switch 处方类型
{
case "草药":
objExcel.Cells(y,8).Value:=付数
objExcel.Cells(y,11).Value:=付数
case "代煎":
objExcel.Cells(y,9).Value:=付数
objExcel.Cells(y,11).Value:=3*付数
case "糖浆":
objExcel.Cells(y,9).Value:=付数
objExcel.Cells(y,11).Value:=""
objExcel.Cells(y,16).Value:=制作费
case "丸剂":
objExcel.Cells(y,9).Value:=付数
objExcel.Cells(y,11).Value:=""
objExcel.Cells(y,17).Value:=制作费
}
objExcel.Cells(y,20).Value:=""
objExcel.Cells(y,18).Value:="琳姐那里"
default:
objExcel.Cells(y,7).Value:=名字
objExcel.Cells(y,10).Value:=药价
switch 处方类型
{
case "草药":
objExcel.Cells(y,8).Value:=付数
objExcel.Cells(y,11).Value:=付数
case "代煎":
objExcel.Cells(y,9).Value:=付数
objExcel.Cells(y,11).Value:=3*付数
case "糖浆":
objExcel.Cells(y,9).Value:=付数
objExcel.Cells(y,11).Value:=""
objExcel.Cells(y,16).Value:=制作费
case "丸剂":
objExcel.Cells(y,9).Value:=付数
objExcel.Cells(y,11).Value:=""
objExcel.Cells(y,17).Value:=制作费
}
if (挂号费="28")
{
objExcel.Cells(y,22).Value:="中国银行"
objExcel.Cells(y,23).Value:="28"
}
else
{
objExcel.Cells(y,22).Value:=""
objExcel.Cells(y,23).Value:=""
}
objExcel.Cells(y,20).Value:=支付1
}
return
这个示例里面有if也有switch,if的话随便写一下很简单,但是很乱的感觉,switch语法要求比较严格,一个引号冒号都不能缺少.但是实际上手以后发现这个语法写的其实挺简洁的,而且思路非常清晰,把我if来if去的思路纠正了.
学会了以后也不难这个.
没有Default case?
每个case后面要break吧?不然会有bug
老哥,c语言之类的才需要 break吧,ahk不需要的吧,ahk没有fallthrough的机制?我看帮助写的,然后def应该可以省略?
我试过了,每个case里不用加break?
厉害了,不积以跬步无以致千里!