// obtain column numbers
__CREATE_QUERY("SELECT column_number FROM co_%s_spreadsheet_column
WHERE id=%d OR id=%d ORDER BY column_number", par_area, column1_id, column2_id);
__SQL_GET_RESULT
column1_num = cor_GetCopyOfValue(cnx, corec,0,0);
if (column1_id==column2_id)
{
column2_num = column1_num;
}
else
{
column2_num = cor_GetCopyOfValue(cnx, corec,1,0);
}
__CLEAR_RESULT
// obtain row numbers
__CREATE_QUERY("SELECT row_number FROM co_%s_spreadsheet_row
WHERE id=%d OR id=%d ORDER BY row_number", par_area, row1_id, row2_id);
__SQL_GET_RESULT
row1_num = cor_GetCopyOfValue(cnx, corec,0,0);
if (row1_id==row2_id)
{
row2_num = row1_num;
}
else
{
row2_num = cor_GetCopyOfValue(cnx, corec,1,0);
}
__CLEAR_RESULT
__CREATE_QUERY("UPDATE co_%s_spreadsheet_cell SET %s='%s'
WHERE column_id IN (SELECT id FROM co_%s_spreadsheet_column WHERE (column_number BETWEEN %s AND %s) AND spreadsheet_id=%d)
AND row_id IN (SELECT id FROM co_%s_spreadsheet_row WHERE (row_number BETWEEN %s AND %s) AND spreadsheet_id=%d)",
par_area, attribute_name, attribute_value, par_area, column1_num, column2_num, par_id, par_area, row1_num, row2_num, par_id);
__SQL_EXEC
__CREATE_QUERY("INSERT INTO co_%s_spreadsheet_cell(column_id,row_id,%s)
SELECT C.id,R.id,'%s' FROM co_%s_spreadsheet_column C, co_%s_spreadsheet_row R
WHERE (C.column_number BETWEEN %s AND %s) AND C.spreadsheet_id=%d
AND (R.row_number BETWEEN %s AND %s) AND R.spreadsheet_id=%d
AND NOT EXISTS
(SELECT * from co_%s_spreadsheet_cell CL WHERE CL.column_id=C.id AND CL.row_id=R.id)",
par_area, attribute_name, attribute_value, par_area, par_area, column1_num, column2_num, par_id, row1_num, row2_num, par_id, par_area);
__SQL_EXEC
puta_ids[0] = par_id; puta_ids[1] = column1_id; puta_ids[2] = row1_id;
cou_queueActionX( cnx, "spreadsheet_rectangle", puta_classes, puta_ids, CO_OP_UPDATE, attribute_name, attribute_value, "c_n1", column1_num, "r_n1", row1_num, "c_n2", column2_num, "r_n2", row2_num, NULL);