我有一个名为df2 = df2.withColumnRenamed('id', 'id_faux')
df1.join(df2, df1.id == df2.id_faux, how='left') \
.withColumn('flag', func.when(func.col('id_faux').isNull(), 0).otherwise(1)).drop('id_faux').collect()
的表,其中包含以下四列:
Records
ID | StartChainage | EndChainage | DistanceTraveled
是DistanceTraveled
和EndChainage
之间的差异。对于每个新记录,StartChainage
应该等于前一个记录的StartChainage
。
我创建了一个名为EndChainage
的表单,其中我只能在名为Record1
的字段中添加值,而在字段EndChainage
中我使用以下表达式:
StartChainage
我实际上说的是表格中的第一条记录"记录" (即ID = 1)=IIf([ID]=1,0,DLookUp("[EndChainage]","Record","[ID]=Forms![Record1]![ID]-1"))
中的值必须为StartChainage
,否则应获取前一记录的0
字段的值。
这很好用,我有一个带有字段的表单,我只输入EndChainage
的值,表格为下一条记录设置EndChainage
的值,它还计算{{ 1}}。
问题是计算字段不会更新表的相关字段。在表中,唯一更新的字段是StartChainage
个,即。我只手动键入值。
如何通过表格的计算字段使表格自动更新?
也许我可以在表格中使用计算字段,但这是不我真正想要的。
答案 0 :(得分:0)
尝试:
=IIf([ID]=1,0,DLookUp("[EndChainage]","Record","[ID]=" & Forms![Record1]![ID]-1 & ""))
检查您是否获得了ID:
=Forms![Record1]![ID]-1