int _ViewCurAtt1(CATT_STRU *stru,char *att,char *titleName,short ai=0);
参数:入口 ai - 工作区号。
aType – 属性类型 i – 指定记录号
*titleName – 窗口标题
*stru – 属性结构 *att – 属性
出口 无
返回值 成功返回属性窗口句柄,失败返回NULL。
个函数编辑、浏览指定记录的当前属性,后两个函数可编辑、浏览所有记录的当前属性。
说明:返回0,IDYES,IDNO,IDCANCEL,只有当显示窗口取消后,这些函数才返回。前两
字段操作
根据字段名称取字段序号
short _GetFldNo(CATT_STRU *stru,char *fldName);
参数:入口 *stru - 属性结构 *fldName- 字段名称
出口 无
返回值 成功返回字段序号,失败返回0。 根据字段名称取数值型字段值
double _GetFld(char *att,CATT_STRU *stru,char *fldName,short *type=NULL,short
*isBlank=NULL); short _GetField(char *att,CATT_STRU *stru,char *fldName,char *fldBuf,long bufLen,short *isBlank); 参数:入口 att - 属性记录 stru - 属性结构
*fldName- 字段名称
*fldBuf – 返回字段内容的缓冲区指针。 bufLen – fldBuf缓冲区字节长度。 *type - 返回字段类型的变量地址,若不需要返回字段类型,可设置 为NULL。
*isBlank – 返回字段是否为空的变量地址。 出口 *fldBuf – 返回字段内容
*type - 返回字段类型
*isBlank – 返回字段是否为空
返回值 _GetFld 函数返回字段值,因此,若fldName字段是非数值型字段,
该函数返回0;_GetField函数返回1/0,分别表示成功和失败,该函数通过fldBuf返回字段的二进制内容,因此,字段类型可以是任意类型。
说明:数值型字段包括:BYTE_TYPE(字节型),SHORT_TYPE(短整型),LONG_TYPE(长整型),FLOAT_TYPE(浮点型),DOUBLE_TYPE(双精度型),BOOL_TYPE(布尔型)。前一个函数通过函数返回值,后一个函数通过地址返回值。 根据字段序号取数值型字段值
double _GetFldOnNumb(char *att,CATT_STRU *stru,short fldi,short *type=NULL,short
*isBlank=NULL);
short _GetFieldOnNumb(char *att,CATT_STRU *stru,short fldi,char *fldBuf,long bufLen,short *isBlank); 参数:入口 *att - 属性记录 *stru - 属性结构
fldi - 字段序号,从0开始,第一个字段序号为0。
bufLen - 字段内容缓冲区长度
出口 *fldBuf – 字段内容缓冲区 *type - 返回字段类型的变量地址,若不需要返回字段类型,可设置为
*isBlank – 返回字段是否为空的变量地址
NULL。
说明:这两个函数的功能分别和_GetFld函数和_GetField函数相同,不同之处在于这两个函数是根据字段序号取字段内容,字段序号从0开始。其余注意事项请参阅_GetFld函数和_GetField函数。
根据字段名称设置字段值
short _SetFld(char *att,CATT_STRU *stru,char *fldName,char *realVal); 参数:入口 *att - 属性记录 *stru - 属性结构 *fldName- 字段名称,用来指定要修改的字段。
*realVal - 字段真值地址,该函数用此真值替换att中原来的字段值。
出口 无
返回值 1=成功,0=失败 说明:该函数仅仅把realVal值写到att所指内存空间上,若要永久修改属性字段值,还
必须调用_WriteAtt函数将属性记录写到工作区中。
VB函数:Declare Function bSetFld(att As Byte, stru As CATT_STRU, fldName As String, realVal As Any) As Integer
根据字段名称将字符串设置为字段值
short _SetFldFromStr(char *att,CATT_STRU *stru,char *fldName,char *strVal); 参数:入口 *att - 属性记录 *stru - 属性结构
*fldName- 字段名称,用来指定要修改的字段。 *strVal - 字符串地址,该函数将此字符串转换成字段名称所确定的字
段类型值,替换att中原来的字段值位置。
出口 无
返回值 1=成功,0=失败
说明:该函数仅仅修改att上的字段值,若要永久修改属性字段值,还必须调用_WriteAtt
函数将属性记录写到工作区中。
VB函数:Declare Function bSetFldFromStr(att As Byte, stru As CATT_STRU, fldName
As String, strVal As String) As Integer
根据字段序号设置字段值
short _SetFldOnNumb(char *att,CATT_STRU *stru,short fldi,char *realVal); 参数:入口 *att - 属性记录 *stru - 属性结构 *fldi - 字段序号,用来指定要修改的字段。
*realVal - 字段真值地址,该函数用此真值替换att中原来的字段值。
出口 无
返回值 1=成功,0=失败
说明:该函数仅仅修改att上的字段值,若要永久修改属性字段值,还必须调用_WriteAtt函数将属性记录写到工作区中。
VB函数:Declare Function bSetFldOnNumb(att As Byte, stru As CATT_STRU, ByVal fldi As Integer, realVal As Any) As Integer
根据字段序号将字符串设置为字段值
short _SetFldOnNumbFromStr(char *att,CATT_STRU *stru,short fldi,char *strVal); 参数:入口 *att - 属性记录
*stru - 属性结构
*fldi - 字段序号,用来指定要修改的字段。
*strVal - 字符串地址,该函数将此字符串转换成字段名称所确定的字
段类型值,替换att中原来的字段值位置。
出口 无
返回值 1=成功,0=失败
说明:该函数仅仅修改att上的字段值,若要永久修改属性字段值,还必须调用_WriteAtt函数将属性记录写到工作区中。
VB函数:Declare Function bSetFldOnNumbFromStr(att As Byte, stru As CATT_STRU,
ByVal fldi As Integer, strVal As String) As Integer
将属性记录中的字段内容转换成ASCII码
short _CvtFldToString(CATT_STRU *stru,char *att,short fldi,char *ptStr,short
ptLen,short *fldType,short *isBlank);
short _CvtFldToString1(CATT_STRU *stru,char *att,char *fldName,char
*ptStr,short ptLen,short *fldType,short *isBlank);
参数:入口 *stru – 属性结构 *att – 属性
*fldName– 字段名 fldi – 字段号
ptLen – 字符串缓冲区长度,要求比字段的字节长度多1个字节,以便存放字符串。
*ptStr – 返回字符串的缓冲区地址
*fldType – 返回字段类型的变量地址;若不需要,可设置为NULL *isBlank – 返回是否为空的变量地址
出口 *ptStr – 返回字符串内容 *fldType – 返回字段类型
*isBlank
– 返回字段是否为空
返回值 1=成功,0=失败 说明:将stru和att属性记录中第fldi号字段内容转换成ASCII码填到ptStr中,ptLen要>=32,ptStr的长度一般要求比字段的字节长度(fieldlength)多1个字节,以便存放字符串结束符(若是STR_TYPE的话)。若fldType=NULL,则不返回字段类型,若isBlank=NULL,则不返回空值标志(5.0版设为NULL)。 统改属性记录字段 long _RepLstRcdFld0(short ai,short aType,long *ptLst,char *ptRepFldFlag, char
*attExp,void *grpPad, void *grpInf,char *repAtt);
参数:入口 ai – 工作区号
aType - 属性类型
*ptLst - 将要进行替换的记录号表,ptLst[0]=个数,ptLst[1]...pt[ptLst[0]]=
记录号,若ptLst=NULL则统改所有记录。
*ptRepFldFlag - 替换字段开关;ptRepFldFlag[i]对应i(从0开始)号字段,
1=替换,0=不替换
*attExp *grpPad 结构,
其余类推。可为NULL。
*grpInf - 图形参数地址,如aType=LIN时,*grpInf为LIN_INFO结构,其余
类推。可为NULL。
*repAtt - 替换值记录数据
出口 无
返回值 成功则替换ptLst表所列记录的指定字段,返回统改的记录数,失败返
回0。 字段统改
short _RepLstRcdFld(short ai,short aType,long *ptLst,char *titleName); 参数:入口 ai – 工作区号
aType - 统改属性类型
*titleName–统改属性值条件输入窗口标题
*ptLst - 统改记录号表,ptLst[0]=个数,ptLst[1]...pt[ptLst[0]]=记录号,
若ptLst=NULL则统改所有记录 出口 无
返回值 成功=1,失败=0
统改字段值
short _ModLstRcdFldVal(short ai,short aType,long *ptLst,short fldI,char *fldVal);
参数:入口 ai
– 工作区号
- 属性条件表达式字符串,可为NULL,即无属性条件 - 图形参数开关地址,如aType=LIN时,*grpPad为LIN_PAD
aType - 统改属性类型
*ptLst - 统改记录号表,ptLst[0]=个数,ptLst[1]...pt[ptLst[0]]=记录号,
若ptLst=NULL则统改所有记录 fldI - 统改字段号
*fldVal - 返回统改字段域值地址
出口 无
返回值 成功=1,失败=0