替楼主修改了代码,现在可以满足要求,虽然有点畸形,但运行现象似乎正常。
程序代码:
SELECT ls_ds_person&&&&&&&选择 ls_ds_person,把指针转到表格grdds_persor所选的记录上
GO grdds_persor_activerow
&&&&&&&&&&& 先判断此记录已存在,点击保存时,对界面上的值重新保存。
SELECT ds_say
SET ORDER TO anhao
SEEK ls_ds_person.anhao
IF found()
GO RECNO()
FOR i=1 TO FCOUNT()&&&&&&&清空已有记录中的数据,防止变更时记录的内容少于以前记录的内容,
againcopy=FIELD(i)
clearrecorder=''
replace &againcopy WITH clearrecorder&&&&&&&&&&而出现以前的记录内容
ENDFOR
ELSE
APPEND blank
ENDIF
ds_sayrecorder=RECNO()&&&&&&&&&&为打印按钮提供指针
********把编辑框内输入的内容,存入ds_say中(因为表格中有15行,所以定义DIMENSION b(15),
*********80为ds_say中定义的字符数)
* DIMENSION b(15)
********把编辑框内输入的内容,存ds_say中(因为表格中有15行,所以定义DIMENSION b(15),
*********80为ds_say中定义的字符数)
* MESSAGEBOX(LEN(thisform.edit1.Value),0+16)
* IF LEN(thisform.edit1.Value)<76.and.LEN(thisform.edit1.Value)=76
* b(1)=ALLTRIM(thisform.edit1.Value)
* ELSE
* b(1)=substr(thisform.edit1.Value,1,76)
* FOR j=2 TO INT(LEN(thisform.edit1.Value)-76/80)+2
* b(j)=substr(thisform.edit1.Value,80*(j-1)-3,80)
* ENDFOR
* ENDIF
SELECT ds_say
replace anhao WITH ALLTRIM(ls_ds_person.anhao)&&&&&&&&&把身份证号存入到相应的表中,便于检索(因表ds_person与ds_say以anhao为关联的)
*-- by TonyDeng --
LOCAL lcBuffer, lnIndex, lcField, lnMaxWidth
lcBuffer = This.Parent.Edit1.Value
lnIndex = 2
DO WHILE !EMPTY(lcBuffer) .AND. (lnIndex <= 16)
lcField = FIELD(lnIndex) && 字段名
lnMaxWidth = INT(LEN(EVALUATE(lcField)) / 2) && 根据字段宽度计算截取字符数
REPLACE (lcField) WITH LEFTC(lcBuffer, lnMaxWidth)
lcBuffer = SUBSTRC(lcBuffer, LEN(ALLTRIM(EVALUATE(lcField))) + 1)
lnIndex = lnIndex + 1
ENDDO
*-------------------
* replace ds_say1 WITH b(1)
* FOR i=2 TO INT(LEN(thisform.edit1.Value)-76/80)+2
* c=FIELD(i+1)
* replace &c with b(i)
* ENDFOR
=.t.&&&&把打印按钮置为可用
this.Enabled=.f.
[
本帖最后由 TonyDeng 于 2011-8-5 14:27 编辑 ]