注册 登录
编程论坛 VFP论坛

请教:vfp代码简化

王咸美 发布于 2024-12-24 19:14, 903 次点击
下列代码如何简化?请高手赐教,万分感谢!!!
DO   CASE
      CASE  L_类型="N"
         REPLACE  PICTURE   WITH   IIF(L_类型="N",'"@Z"',"")  && 数值型字段空值不显示
      CASE  L_类型="D"
        REPLACE  PICTURE   WITH   IIF(L_类型="D",'"@Z"',"{}")  && 日期型字段空值不显示
      CASE  L_类型="L"
        REPLACE  PICTURE   WITH   IIF(L_类型="L",'"@Z"',"(..)")  && 逻辑型字段空值不显示
ENDCASE   


[此贴子已经被作者于2024-12-24 19:15编辑过]

10 回复
#2
easyppt2024-12-24 20:11
case 条件为: L_类型="N"
然后对应的分支下又写:IIF(L_类型="N",'"@Z"',"")
这个iif()结果 永远都是 .T.,不可能是 .F.,代码有问题
#3
王咸美2024-12-24 22:47
代码经测试没有问题,关键是如何简化。请高手赐教!
#4
easyppt2024-12-24 23:28
Replace Picture with iif(L_类型="N",'"@Z"',iif(L_类型="D",'"@Z"',iif(L_类型="L",'"@Z"','')))

或者

Replace Picture with icase(L_类型="N",'"@Z"',L_类型="D",'"@Z"',L_类型="L",'"@Z"','')

#5
sdta2024-12-24 23:55
看下BLANK命令对你是否有帮助
#6
sam_jiang2024-12-25 00:57
回复 3楼 王咸美
你的代码逻辑是有问题的
#7
wengjl2024-12-25 08:25
以下是引用王咸美在2024-12-24 19:14:04的发言:

下列代码如何简化?请高手赐教,万分感谢!!!
DO   CASE
      CASE  L_类型="N"
         REPLACE  PICTURE   WITH   IIF(L_类型="N",'"@Z"',"")  && 数值型字段空值不显示

      CASE  L_类型="D"
        REPLACE  PICTURE   WITH   IIF(L_类型="D",'"@Z"',"{}")  && 日期型字段空值不显示
      CASE  L_类型="L"
        REPLACE  PICTURE   WITH   IIF(L_类型="L",'"@Z"',"(..)")  && 逻辑型字段空值不显示
ENDCASE   


CASE  L_类型="N" 这里已锁定为 N 了
下一句的 IIF 是多余的
         REPLACE  PICTURE   WITH   IIF(L_类型="N",'"@Z"',"")  && 数值型字段空值不显示
只要直接 REPLACE PICTURE WITH "@Z" 就可以了
#8
sych2024-12-25 08:56
REPLACE  PICTURE   WITH   IIF(inlist(L_类型,"N","D","L"),'"@Z"',"")  && 数值型字段空值不显示
#9
王咸美2024-12-25 09:27
如何改写,请指点!
#10
sdta2024-12-25 13:55
看下数据表及结构,才能修改代码
#11
sdta2024-12-25 13:57
一个字段有三种数据类型,这是什么字段,万能的吗?
1