Данные по счетам хранятся в data43, при этом поле компании - f839.
Компании - в data42 по полю id.
Логично было бы, что эти поля совпадают, однако они разные (интервал значений f839 - 14-19, id- 50-56)
При этом в отчете по компаниям, где используется эта связь суммы выводятся. а названия нет.
НО - в таблице счета названия все корректны.
Где то еще таблица связей?
Вопрос по связям таблиц
Автор slavem, 29 апр. 2010 20:57
Сообщений в теме: 7
#1
Отправлено 29 Апрель 2010 - 20:57
#2
Отправлено 29 Апрель 2010 - 21:28
slavem (29.4.2010, 20:57) писал:
Данные по счетам хранятся в data43, при этом поле компании - f839.
Компании - в data42 по полю id.
Логично было бы, что эти поля совпадают, однако они разные (интервал значений f839 - 14-19, id- 50-56)
При этом в отчете по компаниям, где используется эта связь суммы выводятся. а названия нет.
НО - в таблице счета названия все корректны.
Где то еще таблица связей?
Компании - в data42 по полю id.
Логично было бы, что эти поля совпадают, однако они разные (интервал значений f839 - 14-19, id- 50-56)
При этом в отчете по компаниям, где используется эта связь суммы выводятся. а названия нет.
НО - в таблице счета названия все корректны.
Где то еще таблица связей?
Нашел!!!!!!!!!!
В отчете сначала сделал запрос по полю f774 из data71, а потом по этой записи из data 42 нашел название
А еще вчера не знал что такое php sql smarty !!!!!!!!!!
#3
Отправлено 30 Апрель 2010 - 08:30
Поле f839 из таблицы Счета является полем связи с таблицей Реквизиты, а не Контрагенты. Это легко можно увидеть в свойствах поля.
#4
Отправлено 30 Апрель 2010 - 10:07
А почему тогда ссылаетесь в отчете по компаниям на реквизиты
#6
Отправлено 30 Апрель 2010 - 11:35
В отчете "Доход по компаниям" столбец "Компания" заполняется из таблицы 42, по полю f839 из 43 таблицы, но значения 43.f839 и 42.id не совпадают!
#7
Отправлено 30 Апрель 2010 - 11:48
Совершенно верно, похоже ошибка кода отчета. Будем исправлять.
#8
Отправлено 30 Апрель 2010 - 15:00
Исправили. Вам необходимо заменить код подготовки данных в отчете на следующий:
$date1 = $_REQUEST['date1']?$_REQUEST['date1']:date("d.m.Y");
$date2 = $_REQUEST['date2']?$_REQUEST['date2']:date("d.m.Y");
$date3 = date("d.m.Y", mktime(0,0,0,date("m"),date("d")-30,date("Y")));
$date4 = date("d.m.Y");
$date5 = date("d.m.Y", mktime(0,0,0,date("m"),date("d")-60,date("Y")));
$date6 = date("d.m.Y", mktime(0,0,0,date("m"),date("d")-31,date("Y")));
if ($_REQUEST['_type'])
{
unset($_SESSION[$ses_id]['on_filter']);
if ($_REQUEST['_type']=="Месяц")
{
$_SESSION[$ses_id]['on_filter'][436] = 1;
$_SESSION[$ses_id]['term_filter'][436] = "period";
$_SESSION[$ses_id]['value_filter'][436] = $date3." 00:00";
$_SESSION[$ses_id]['value_filter2'][436] = $date4." 23:59";
$_SESSION[$ses_id]['on_filter'][839] = 1;
$_SESSION[$ses_id]['term_filter'][839] = "=";
$_SESSION[$ses_id]['value_filter'][839] = $_REQUEST['_company'];
}
elseif ($_REQUEST['_type']=="Месяц2")
{
$_SESSION[$ses_id]['on_filter'][436] = 1;
$_SESSION[$ses_id]['term_filter'][436] = "period";
$_SESSION[$ses_id]['value_filter'][436] = $date5." 00:00";
$_SESSION[$ses_id]['value_filter2'][436] = $date6." 23:59";
$_SESSION[$ses_id]['on_filter'][839] = 1;
$_SESSION[$ses_id]['term_filter'][839] = "=";
$_SESSION[$ses_id]['value_filter'][839] = $_REQUEST['_company'];
}
elseif ($_REQUEST['_type']=="Все")
{
$_SESSION[$ses_id]['on_filter'][839] = 1;
$_SESSION[$ses_id]['term_filter'][839] = "=";
$_SESSION[$ses_id]['value_filter'][839] = $_REQUEST['_company'];
}
else
{
$_SESSION[$ses_id]['on_filter'][436] = 1;
$_SESSION[$ses_id]['term_filter'][436] = "period";
$_SESSION[$ses_id]['value_filter'][436] = $date1." 00:00";
$_SESSION[$ses_id]['value_filter2'][436] = $date2." 23:59";
$_SESSION[$ses_id]['on_filter'][839] = 1;
$_SESSION[$ses_id]['term_filter'][839] = "=";
$_SESSION[$ses_id]['value_filter'][839] = $_REQUEST['_company'];
}
header("Location: ".$config["site_root"]."/fields.php?table=43");
}
$sqlQuery = "SELECT * FROM ".DATA_TABLE."43 GROUP BY f839";
$result = mysql_query($sqlQuery) or die(mysql_error()."<br>".$sqlQuery);
while ($row = mysql_fetch_array($result))
{
$data['company'] = $row['f839'];
$sqlQuery = "SELECT * FROM ".DATA_TABLE."71 WHERE id='".$data['company']."'";
$result2 = mysql_query($sqlQuery) or die(mysql_error()."<br>".$sqlQuery);
$row2 = mysql_fetch_array($result2);
$sqlQuery = "SELECT * FROM ".DATA_TABLE."42 WHERE id='".$row2['f774']."'";
$result2 = mysql_query($sqlQuery) or die(mysql_error()."<br>".$sqlQuery);
$row2 = mysql_fetch_array($result2);
$data['company_name'] = $row2['f435'];
$sqlQuery = "SELECT count(*) as cnt, sum(f454) as summa FROM ".DATA_TABLE."43 WHERE f436>='".form_eng_time($date3." 00:00:00")."' AND f436<='".form_eng_time($date4." 23:59:59")."' AND f839='".$data['company']."'";
$result2 = mysql_query($sqlQuery);
$row2 = mysql_fetch_array($result2);
$data['month'] = $row2['cnt'];
$data['smonth'] = number_format($row2['summa'], 2, ',', '');
$sqlQuery = "SELECT count(*) as cnt, sum(f454) as summa FROM ".DATA_TABLE."43 WHERE f436>='".form_eng_time($date5." 00:00:00")."' AND f436<='".form_eng_time($date6." 23:59:59")."' AND f839='".$data['company']."'";
$result2 = mysql_query($sqlQuery);
$row2 = mysql_fetch_array($result2);
$data['month2'] = $row2['cnt'];
$data['smonth2'] = number_format($row2['summa'], 2, ',', '');
$sqlQuery = "SELECT count(*) as cnt, sum(f454) as summa FROM ".DATA_TABLE."43 WHERE f839='".$data['company']."'";
$result2 = mysql_query($sqlQuery);
$row2 = mysql_fetch_array($result2);
$data['all'] = $row2['cnt'];
$data['sall'] = number_format($row2['summa'], 2, ',', '');
$sqlQuery = "SELECT count(*) as cnt, sum(f454) as summa FROM ".DATA_TABLE."43 WHERE f436>='".form_eng_time($date1." 00:00:00")."' AND f436<='".form_eng_time($date2." 23:59:59")."' AND f839='".$data['company']."'";
$result2 = mysql_query($sqlQuery);
$row2 = mysql_fetch_array($result2);
$data['choice'] = $row2['cnt'];
$data['schoice'] = number_format($row2['summa'], 2, ',', '');
$lines[] = $data;
}
$smarty->assign("date1", $date1);
$smarty->assign("date2", $date2);
$smarty->assign("lines", $lines);
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных













