// Сформировать json конструкцию и вывести в строку


int Do_iButton_JsonOut()

{

       string svalue;

       int ivalue;

       int iJSON;

       object("create", "ts_json", iJSON);

       ts_json(iJSON, "init");

       int iJSONRootClass;

       object("create", "ts_class", iJSONRootClass);

       ts_json(iJSON, "GetRootClassObject", iJSONRootClass);

       // Имя проекта

       ts_dialogcontrol(iTextEdit_ProjectName_MainDialog, "GetText", svalue);

       int iProjectName;

       object("create", "ts_string", iProjectName, "project_name");

       object("set_simple_value", iProjectName, svalue);

       ts_class(iJSONRootClass, "add_property", iProjectName);

       // Код проекта в системе iRidi

       ts_dialogcontrol(iIntEdit_iRidiProjectID_MainDialog, "GetValue", ivalue);

       int iProject_PT_ID;

       object("create", "ts_num", iProject_PT_ID, "project_PT_ID");

       object("set_simple_value", iProject_PT_ID, ivalue);

       ts_class(iJSONRootClass, "add_property", iProject_PT_ID);


       int iFloorArray;

       object("create", "ts_array", iFloorArray, "floors");


       int iClassFloor;

       int iFloorName;

       int iFloorIndex;


       int iRoomArray;

       object("create", "ts_array", iRoomArray, "rooms");

       int iClassRoom;

       int iRoomName;

       int iRoomGUID;

       int iRoom_PT_ID;


       int iElementArray;

       object("create", "ts_array", iElementArray, "elements");

       int iClassElement;

       int iElementName;

       int iElementGUID;

       int iPT_ID;

       int iID;


       int iElementParamerersArray;

       int iClassElementParameter;

       int iParameterName;

       int iParameterType;

       int iParameterValue;


       int i, icount;

       int FloorIndex;

       string FloorName;

       ts_table(iTable_Floors, "get_rows_count", icount);

       coutvar << icount;

       for (i = 0; i < icount; i++)

       {

               ts_table(iTable_Floors, "select_row", i);

               ts_table(iTable_Floors, "get_value_of"

                       "FloorIndex", FloorIndex,

                       "FloorName" , FloorName

                       );

               object("create", "ts_class", iClassFloor, "");

               object("create", "ts_string", iFloorName, "floor_name");

               object("set_simple_value", iFloorName, FloorName);

               ts_class(iClassFloor, "add_property", iFloorName);

               object("create", "ts_num", iFloorIndex, "floor_index");

               object("set_simple_value", iFloorIndex, FloorIndex);

               ts_class(iClassFloor, "add_property", iFloorIndex);

               ts_array(iFloorArray, "Push", iClassFloor);

       }


       ts_table(iTable_Rooms, "sort", "FloorIndex", "RoomName");

       string GUID, RoomName, RoomGUID;

       int Room_PT_ID;

       ts_table(iTable_Rooms, "get_rows_count", icount);

       coutvar << icount;

       for (i = 0; i < icount; i++)

       {

               ts_table(iTable_Rooms, "select_row", i);

               ts_table(iTable_Rooms, "get_value_of"

                       "GUID", RoomGUID,

                       "RoomName" , RoomName,

                       "PT_ID", Room_PT_ID,

                       "FloorIndex", FloorIndex

                       );


               object("create", "ts_class", iClassRoom, "");


               object("create", "ts_string", iRoomGUID, "room_guid");         object("set_simple_value", iRoomGUID, RoomGUID);  ts_class(iClassRoom, "add_property", iRoomGUID);

               object("create", "ts_string", iRoomName, "room_name");         object("set_simple_value", iRoomName, RoomName);  ts_class(iClassRoom, "add_property", iRoomName);

               object("create", "ts_num", iRoom_PT_ID, "room_PT_ID");         object("set_simple_value", iRoom_PT_ID, Room_PT_ID); ts_class(iClassRoom, "add_property", iRoom_PT_ID);

               object("create", "ts_num", iFloorIndex, "floor_index"); object("set_simple_value", iFloorIndex, FloorIndex); ts_class(iClassRoom, "add_property", iFloorIndex);

               ts_array(iRoomArray, "Push", iClassRoom);

       }



       ts_table(iTable_Elements, "add_column", -1, "string", "GUID");

       ts_table(iTable_Elements, "add_column", -1, "string", "RoomGUID");

       ts_table(iTable_Elements, "add_column", -1, "int", "PT_ID");

       ts_table(iTable_Elements, "add_column", -1, "string", "ElementClass");

       ts_table(iTable_Elements, "add_column", -1, "string", "ElementName");

       ts_table(iTable_Elements, "add_column", -1, "string", "ID");

       ts_table(iTable_Elements, "add_column", -1, "string", "ElementParametersTable"); // таблица параметров


       ts_table(iTable_Elements, "sort", "RoomGUID", "GUID");

       //string GUID, RoomName, RoomGUID;

       string ElementClass, ElementName, ID, ElementParametersTable;

       int PT_ID;

       ts_table(iTable_Elements, "get_rows_count", icount);

       coutvar << icount;

       for (i = 0; i < icount; i++)

       {

               ts_table(iTable_Elements, "select_row", i);

               ts_table(iTable_Elements, "get_value_of",

                       "GUID", GUID,

                       "RoomGUID", RoomGUID,

                       "ElementName", ElementName,

                       "ElementClass", ElementClass,

                       "ID", ID,

                       "PT_ID", PT_ID

                       );


               object("create", "ts_class", iClassElement, "");


               object("create", "ts_string", iElementGUID, "element_guid");         object("set_simple_value", iElementGUID, GUID);  ts_class(iClassElement, "add_property", iElementGUID);

               object("create", "ts_string", iRoomGUID, "element_room_guid");         object("set_simple_value", iRoomGUID, RoomGUID);  ts_class(iClassElement, "add_property", iRoomGUID);

               object("create", "ts_string", iElementName, "element_name");         object("set_simple_value", iElementName, ElementName);  ts_class(iClassElement, "add_property", iElementName);

               object("create", "ts_num", iPT_ID, "element_PT_ID");         object("set_simple_value", iPT_ID, PT_ID); ts_class(iClassElement, "add_property", iPT_ID);

               object("create", "ts_string", iID, "element_ID"); object("set_simple_value", iID, ID); ts_class(iClassElement, "add_property", iID);


               object("create", "ts_array", iElementParamerersArray, "element_parameters");


               object("create", "ts_class", iClassElementParameter, "");

               object("create", "ts_string", iParameterName , "element_parameter_name");         object("set_simple_value", iParameterName, "Параметр текстовый");  ts_class(iClassElementParameter, "add_property", iParameterName);

               object("create", "ts_string", iParameterType , "element_parameter_type");         object("set_simple_value", iParameterType, "string");  ts_class(iClassElementParameter, "add_property", iParameterType);

               object("create", "ts_string", iParameterValue, "element_parameter_svalue");        object("set_simple_value", iParameterValue, "Значение текстового параметра");  ts_class(iClassElementParameter, "add_property", iParameterValue);

               ts_array(iElementParamerersArray, "Push", iClassElementParameter);


               object("create", "ts_class", iClassElementParameter, "");

               object("create", "ts_string", iParameterName , "element_parameter_name");         object("set_simple_value", iParameterName, "Параметр с плавающей точкой");  ts_class(iClassElementParameter, "add_property", iParameterName);

               object("create", "ts_string", iParameterType , "element_parameter_type");         object("set_simple_value", iParameterType, "double");  ts_class(iClassElementParameter, "add_property", iParameterType);

               object("create", "ts_string", iParameterValue, "element_parameter_svalue");        object("set_simple_value", iParameterValue, "111.223");  ts_class(iClassElementParameter, "add_property", iParameterValue);

               ts_array(iElementParamerersArray, "Push", iClassElementParameter);


               object("create", "ts_class", iClassElementParameter, "");

               object("create", "ts_string", iParameterName , "element_parameter_name");         object("set_simple_value", iParameterName, "Параметр логический");  ts_class(iClassElementParameter, "add_property", iParameterName);

               object("create", "ts_string", iParameterType , "element_parameter_type");         object("set_simple_value", iParameterType, "bool");  ts_class(iClassElementParameter, "add_property", iParameterType);

               object("create", "ts_string", iParameterValue, "element_parameter_svalue");        object("set_simple_value", iParameterValue, "1");  ts_class(iClassElementParameter, "add_property", iParameterValue);

               ts_array(iElementParamerersArray, "Push", iClassElementParameter);


               object("create", "ts_class", iClassElementParameter, "");

               object("create", "ts_string", iParameterName , "element_parameter_name");         object("set_simple_value", iParameterName, "Параметр целочисленный");  ts_class(iClassElementParameter, "add_property", iParameterName);

               object("create", "ts_string", iParameterType , "element_parameter_type");         object("set_simple_value", iParameterType, "int");  ts_class(iClassElementParameter, "add_property", iParameterType);

               object("create", "ts_string", iParameterValue, "element_parameter_svalue");        object("set_simple_value", iParameterValue, "111");  ts_class(iClassElementParameter, "add_property", iParameterValue);

               ts_array(iElementParamerersArray, "Push", iClassElementParameter);



               ts_class(iClassElement, "add_property", iElementParamerersArray);



               ts_array(iElementArray, "Push", iClassElement);

       }


       ts_class(iJSONRootClass, "add_property", iFloorArray);

       ts_class(iJSONRootClass, "add_property", iRoomArray);

       ts_class(iJSONRootClass, "add_property", iElementArray);


       string str;

       ts_json(iJSON, "EncodeToStr", str);

       coutvar << str;



//c:\\iridi_json_out.txt


       object("delete", iJSON); // удалить объект

}

Created with the Personal Edition of HelpNDoc: Easily create Qt Help files