Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Сводка движения

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> SQL: ТЗК (Табельно-зарплатный контур)
Предыдущая тема :: Следующая тема  
Автор Сообщение
Evgeniy



Зарегистрирован: 24.10.2012
Сообщения: 7

СообщениеДобавлено: Пн Ноя 26, 2012 09:22    Заголовок сообщения: Сводка движения Ответить с цитатой

Здравствуйте, форумчане. Помогите пожалуйста решить один вопрос. Имеется процедура в табельном учете в на основе которой формируется отчет о движении людей(пришло, ушло за месяц) и в конце этой процедуры идет подсчет мужчин и женщин на конец месяца. Задача состоит в том, как сделать чтобы рассчет мужчин и женщин производился на начало, а не на конец месяца? Текст процедуры прилагается ниже, специально расставил комментарии где именно идет подсчет мужчин и женщин.

{
var InsertVal[250];
var SelectStr[250];
var tempstr[100];
var T;
var s[4];
var mm, yy, dd_[3], dd_1[3], dd_2[3],_dd_1[3];
var mes[20];
var podr[40];
var kvalID[2];
var id[2];
var GrLevel[2];
var kval[40];
var sd[4];
var sd_n[4];
number summa_d;

delete from tb_user_svodka_dvig;

ParamStr(0, s); strnum(s, yy);
ParamStr(1, s); strnum(s, mm);
НМесяц(mm,mes,0);
sput(s," %04d г.",yy);
sput(dd_1, "%04d-%02d-%02d", yy, mm, 1);
sput(dd_2, "%04d-%02d-%02d", yy, mm, ДнейМесяца(mm, yy));
Дата(1,mm,yy,dd_);
ДатаМинусДни(_dd_1,1,dd_);

Open T

SELECT GrLevel, catID, ID, Cat, Struct_Name
FROM tb_user_svodka_dvig_category
WHERE GrLevel > 0 order by 2,3,5;

while(1)
{
Fetch T,GrLevel, kvalID, id, kval, podr ;

strnum(kvalID,summa_d);
if (teot(T)) break;

sput(InsertVal, "INSERT INTO tb_user_svodka_dvig(GrLevel, CatLevel, Categ, struct_name, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10) "
"VALUES (%s, %s, '%s', '%s' " , GrLevel, kvalID, kval, podr);

//--подсчет работников на начало месяца по каждой квалификации и подразделению

sput(SelectStr, "select dbo.user_forSvodDvig_00('%s', '%s')", id, dd_1);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;
sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ
if (summa_d == 4)
{
sput(SelectStr, "select dbo.user_forSvodDvig_01('%s', '%s')", id, dd_1);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s", sd,sd_n);

};

strcat(InsertVal,tempstr);

//--подсчет работников вновь принятых на комбинат по каждой квалификации и подразделению

sput(SelectStr, "select dbo.user_forSvodDvig_02('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;

sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ
if (summa_d == 4)
{
sput(SelectStr, "select dbo.user_forSvodDvig_03('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s", sd,sd_n);

};

strcat(InsertVal,tempstr);

//--подсчет работников вышедших из декрета по каждой квалификации и подразделению

sput(SelectStr, "select dbo.user_forSvodDvig_04('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;
sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ
if (summa_d == 4)
{
sput(SelectStr, "select dbo.user_forSvodDvig_05('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s", sd,sd_n);

};

strcat(InsertVal,tempstr);

//--подсчет работников перешедших из одного подразделения в другое по каждой квалификации и подразделению

sput(SelectStr, "select dbo.user_forSvodDvig_06('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;
sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ

if (summa_d == 4)
{
sput(SelectStr, "select dbo.user_forSvodDvig_07('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s", sd,sd_n);

};
strcat(InsertVal,tempstr);

//--подсчет работников уволившихся за месяц по каждой квалификации и подразделению

sput(SelectStr, "select dbo.user_forSvodDvig_08('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;
sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ

if (summa_d == 4)
{
sput(SelectStr, "select dbo.user_forSvodDvig_09('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s", sd,sd_n);

};
strcat(InsertVal,tempstr);

//--подсчет работников ушедших в декрет по каждой квалификации и подразделению

sput(SelectStr, "select dbo.user_forSvodDvig_10('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;
sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ
if (summa_d == 4)
{

sput(SelectStr, "select dbo.user_forSvodDvig_11('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s", sd,sd_n);

};
strcat(InsertVal,tempstr);

//--подсчет работников перешедших в другие подразделения по каждой квалификации и подразделению

sput(SelectStr, "select dbo.user_forSvodDvig_12('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;
sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ
if (summa_d == 4)
{

sput(SelectStr, "select dbo.user_forSvodDvig_13('%s', '%s', '%s')", id, dd_1, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s", sd,sd_n);

};

strcat(InsertVal,tempstr);

//--подсчет работников на конец месяца по каждой квалификации и подразделению

sput(SelectStr, "select dbo.user_forSvodDvig_14('%s', '%s')", id, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;
sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ
if (summa_d == 4)
{

sput(SelectStr, "select dbo.user_forSvodDvig_15('%s', '%s')", id, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s", sd,sd_n);

};

strcat(InsertVal,tempstr);

//--подсчет мужчин на конец месяца по каждой квалификации и подразделению

sput(SelectStr, "select dbo.user_forSvodDvig_16('%s', '%s')", id, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;
sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ
if (summa_d == 4)
{
sput(SelectStr, "select dbo.user_forSvodDvig_17('%s', '%s')", id, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s + %s", sd , sd_n);
};

strcat(InsertVal,tempstr);

//--подсчет женщин на конец месяца по каждой квалификации и подразделению
sput(SelectStr, "select dbo.user_forSvodDvig_18('%s', '%s')", id, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd);
close T1;
sput(tempstr, ", %s", sd);

//--если данная квалификация РУКОВОДИТЕЛИ СПЕЦИАЛИСТЫ
if (summa_d == 4)
{
sput(SelectStr, "select dbo.user_forSvodDvig_19('%s', '%s')", id, dd_2);

T1=topen(SelectStr,0);
tget(T1,sd_n);
close T1;
sput(tempstr, ", %s + %s", sd , sd_n);
};

strcat(InsertVal,tempstr);

strcat(InsertVal,");");
DO_SQL(InsertVal);

}

Close T;
return 0;}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Vitaly
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 29.07.2008
Сообщения: 281
Откуда: Санкт-Петербург

СообщениеДобавлено: Вт Ноя 27, 2012 09:11    Заголовок сообщения: Ответить с цитатой

Ну так всё считается в dbo.user_forSvodDvig_XX надо там смотреть
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
zhenya17



Зарегистрирован: 04.02.2009
Сообщения: 190
Откуда: Кемерово

СообщениеДобавлено: Вт Дек 04, 2012 19:18    Заголовок сообщения: Ответить с цитатой

Может, просто брать расчёт за предыдущий месяц? Ведь если Вам нужен расчёт на начало, то он должен совпадать с расчётом на конец прошлого месяца.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> SQL: ТЗК (Табельно-зарплатный контур) Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU