Type | Character |
Direction | Input |
Type | Integer |
Direction | Input |
Type | Integer |
Direction | Input |
By reference | |
Direction | Input |
#INCLUDE "dbc.h" SET PROCEDURE TO dfo.prg ADDITIVE LOCAL lcAlias,liIDT,lcDBC,luValue lcAlias=SYS(2015) lcDBC=HOME(2)+"\Tastrade\Data\tastrade.dbc" USE (lcDBC) ALIAS (lcAlias) IN 0 * Get field ID liIDT=DBC_GetIDObject(lcAlias,_DBC_Field,"products.product_id") * Get property value =DBC_GetProperty(lcAlias,liIDT,_DBCID_Comment,@luValue) ?luValue * Set property value luValue="New comment "+SYS(2015) =DBC_SetProperty(lcAlias,liIDT,_DBCID_Comment,@luValue) * Get property value =DBC_GetProperty(lcAlias,liIDT,_DBCID_Comment,@luValue) ?luValue USE IN (lcAlias) RELEASE PROCEDURE dfo.prg
LPARAMETERS lcAlias,liIDObject,liIDProp,luValue * lcAlias - Alias of opended DBC * liIDObject - Object ID * liIDProp - Property ID * luValue - Value LOCAL liStart,liLen,liLenID liStart=1 && First char SELE (lcAlias) && Skip to DBC LOCATE FOR ObjectID=liIDObject && Find object IF !FOUND() && If not found RETURN _DBC_ObjectNotFound && Get out ENDIF * Convert value to DBC value luValue=DBC_ConvertValueToProperty(liIDProp,luValue) DO WHILE liStart<=LEN(Property) liLen=DFO_C4ToI(SUBS(Property,liStart,4)) && Lenght * This is lenght of Property ID liLenID=IIF(DFO_C2ToI(SUBS(Property,liStart+4,2))>256,2,1) * Is't finding property IF IIF(liLenID=1,ASC(SUBS(Property,liStart+4+2,liLenID)),; DFO_C2ToI(SUBS(Property,liStart+4+2,liLenID)))=liIDProp REPL Property WITH STUFF(Property,liStart,liLen,; DFO_IToC4(4+2+liLenID+LEN(luValue))+; DFO_IToC2(IIF(liIDProp>256,2,1))+; IIF(liIDProp>256,DFO_IToC2(liIDProp),CHR(liIDProp))+luValue) RETURN _DBC_ObjectFound ENDIF liStart=liStart+liLen ENDDO REPL Property WITH Property+DFO_IToC4(4+2+IIF(liIDProp>256,2,1)+; LEN(luValue))+DFO_IToC2(IIF(liIDProp>256,2,1))+; IIF(liIDProp>256,DFO_IToC2(liIDProp),CHR(liIDProp))+luValue RETURN _DBC_ObjectFound