Delphi-int.ru: портал программистов

Вход Регистрация | Забыли пароль?

Просмотр кода

Идентификатор: 13d6d579 Описание: Код загружен: 8 ноября 2014, 15:35 (Валя)

  1. unit u_razc1;
  2. {
  3.  вазовские расчетки по годам
  4.  }
  5. interface
  6.  
  7. uses
  8. Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  9. StdCtrls, ExtCtrls, Menus;
  10.  
  11. type
  12. TForm1 = class(TForm)
  13. Panel2: TPanel;
  14. Label2: TLabel;
  15. Panel1: TPanel;
  16. mont: TEdit;
  17. year: TEdit;
  18. Image5: TImage;
  19. Image4: TImage;
  20. Image3: TImage;
  21. Image2: TImage;
  22. Image1: TImage;
  23. Image6: TImage;
  24. ComboBox1: TComboBox;
  25. Button6: TButton;
  26. MainMenu1: TMainMenu;
  27. File1: TMenuItem;
  28. Save1: TMenuItem;
  29. procedure FormCreate(Sender: TObject);
  30. procedure ComboBox1Change(Sender: TObject);
  31. procedure Button6Click(Sender: TObject);
  32. procedure Save1Click(Sender: TObject);
  33. private
  34. { Private declarations }
  35. public
  36. { Public declarations }
  37. //
  38. procedure ck(Sender: TObject; Button: TMouseButton;
  39. Shift: TShiftState; X, Y: Integer);
  40. end;
  41.  
  42. type iarray=array of integer;
  43.  
  44. type chassum=packed record
  45. chas: currency;
  46. sum: currency;
  47. end;
  48.  
  49. type kchassum=packed record
  50. kod: word;
  51. chas: currency;
  52. sum: currency;
  53. end;
  54.  
  55. type ksum=packed record
  56. kod: word;
  57. sum: currency;
  58. end;
  59.  
  60. type list=packed record ///расчетка трещетка
  61. r1: longword;//Расчетный лист
  62. r2: byte;//Месяц
  63. r3: word;//Год
  64. r4: longword;//Постоянный номер
  65. r5: string[250];//Фамилия, имя, отчество
  66. r6: word;//Профессия, должность
  67. r7: word;//Код налога
  68. r8: word;//Р-д
  69. r9: currency;//Тарифная ставка, оклад
  70. t1: longword;//Табельный номер
  71. t2: currency;//Премия рабочим
  72. t3: currency;//Премия РСиС
  73. u1: chassum;//По тарифной ставке или окладу
  74. u2: chassum;//Премия за выполнение норм. (производ.) задания
  75. u3: chassum;//Доплата за работу в вечернюю смену
  76. u4: chassum;//Доплата за работу в ночную смену
  77. u5: currency;//Надбавка за выпол. инд. показателей
  78. u6: chassum;//Доплата за выходные и праздники
  79. u7: chassum;//Доплата за срерхурочные
  80. u8: chassum;//Оплата за отпуск
  81. u9: chassum;//Оплата по больничным листам
  82. u10: currency;//Доплата за условия труда
  83. n1: array[0..15]of kchassum;//Начисления Код Часы Сумма (16)
  84. a1: currency;//Аванс
  85. a2: currency;//Подоход. налог
  86. a3: currency;//Профсоюзн. взносы
  87. a4: currency;//Долг прошлого месяца
  88. a5: array[0..11]of ksum;//Удержания Код Сумма (16)
  89. //Средняя заработная плата
  90. a6: currency;//За последние 2 календарных года для оплаты больничных (дневная)
  91. a7: currency;//За последние 12 месяцев для оплаты по среднему (часовая)
  92. a8: currency;//За последние 12 месяцев для оплаты отпуска (дневная)
  93. a9: currency;//Индив. фонд времени
  94. z1: currency;//Начислено
  95. z2: currency;//Причитается
  96. z3: currency;//Долг за работающим
  97. z4: currency;//Удержано
  98. z5: currency;//Сумма к выплате
  99. //Перечислено в банк
  100. z6: word;//Код
  101. z7: currency;//Сумма
  102. end;
  103.  
  104. type bob=array[1..12]of list;
  105. var
  106. Form1: TForm1;
  107. Sum: Extended;
  108. cro: currency;
  109. SumStr: string;
  110. bio: bob;
  111. f: file of bob;
  112. vo: list;
  113. pn: array[1..12]of tpanel;
  114. sa: array[1..12]of string[12]=('Январь','Февраль','Март',
  115. 'Апрель','Май','Июнь',
  116. 'Июль','Август','Сентябрь',
  117. 'Октябрь','Ноябрь','Декабрь');
  118. dnov: array[0..4]of integer=(0,10,13,13,13);
  119. dnog: array[0..7]of integer=(0,160,50,70,70,70,30,70);
  120. dnogi: iarray;
  121. dnovi: iarray;
  122. dnoe: array[0..10]of tedit;
  123. dnol: array[0..12]of tlabel;
  124. udvi: iarray;
  125. udgi: iarray;
  126. ude: array[0..28]of tedit;
  127. udl: array[0..11]of tlabel;
  128. ////
  129. na2v: iarray;
  130. na2g: iarray;
  131. na2e: array[0..12*4]of tedit;
  132. na2l: array[0..11]of tlabel;
  133. ////
  134. na1v: iarray;
  135. na1g: iarray;
  136. na1e: array[0..20]of tedit;
  137. na1l: array[0..20]of tlabel;
  138. ////
  139. hatv: iarray;
  140. hatg: iarray;
  141. hate: array[0..6]of tedit;
  142. hatl: array[0..6]of tlabel;
  143. /////
  144. cur: integer=1; // курсор
  145. namy: string='1969.vaz';
  146. boob: array[0..200]of bob; // на 20 лет
  147. sxxx: single; // коефициент оси у
  148. cury: integer; // курсор годов
  149.  
  150. implementation
  151.  
  152. {$R *.DFM}
  153.  
  154. function butt(x: array of integer): iarray;
  155. var i: integer;
  156. begin
  157. setlength(result,high(x)+1);
  158. for i:=0 to high(x) do
  159. result[i]:=x[i];
  160. end;
  161.  
  162.  
  163. function tooi(x: integer; y: iarray): integer;// универсальное говно призванное
  164. // уничтожить буржуазию как класс
  165. var i: integer;
  166. begin
  167. result:=0;
  168. for i:=0 to high(y)do
  169. if x>i then
  170. inc(result,y[i]);
  171. end;
  172.  
  173.  
  174. function getsxxx: single;
  175. var i,j,k: integer;
  176. b: bob;
  177. mx,dx,c,v: currency;
  178. function get479(x: integer): currency; // аванс в банк
  179. var i: integer;
  180. begin
  181. result:=0;
  182. for i:=0 to high(bio[x].a5) do
  183. if bio[x].a5[i].kod=479 then
  184. begin
  185. result:=bio[x].a5[i].sum;
  186. exit;
  187. end;
  188. end;
  189. begin
  190. mx:=0;//-maxint;
  191. for j:=0 to high(boob) do
  192. begin
  193. b:=boob[j];
  194. for i:=1 to 12 do
  195. begin
  196. c:=get479(i);
  197. v:=(b[i].z5
  198. +b[i].a1
  199. +b[i].z7
  200. +c);
  201. if (1969+j)>1997 then v:=v*1000;
  202. if v>mx then
  203. mx:=v;
  204. end;
  205. end;
  206. sxxx:=mx/70;
  207. end;
  208.  
  209.  
  210.  
  211. procedure vw2;
  212. var i,j,k,x,y,z: integer;
  213. sx,sy: single;
  214. mx,mi,dx,c: currency;
  215.  
  216. function get479(x: integer): currency; // аванс в банк
  217. var i: integer;
  218. begin
  219. result:=0;
  220. for i:=0 to high(bio[x].a5) do
  221. begin
  222. if bio[x].a5[i].kod=479 then
  223. begin
  224. result:=bio[x].a5[i].sum;
  225. exit;
  226. end;
  227. end;
  228. end;
  229. begin
  230. getsxxx;
  231. mx:=0;//-maxint;
  232. mi:=maxint;
  233. with form1 do
  234. with image6.canvas do
  235. begin
  236. brush.color:=clred;
  237. fillrect(rect(0,0,image6.Width,image6.Height));
  238. sx:=sxxx;
  239. if (1969+ComboBox1.ItemIndex)>1997 then sx:=sx/1000;
  240. if sx<=0 then exit;
  241. pen.color:=cllime;
  242. pen.width:=3;
  243. brush.color:=clfuchsia;
  244. font.color:=clwhite;
  245. k:=5;
  246. for i:=1 to 12 do
  247. begin
  248. brush.style:=bssolid;
  249. pen.color:=clyellow;//claqua;//
  250. pen.width:=10;
  251. c:=get479(i);
  252. x:=-10+i*49;
  253. y:=100-round( (bio[i].z5
  254. +bio[i].a1
  255. +bio[i].z7
  256. +c) / sx );
  257. z:=100-round( (bio[i].z5
  258. +bio[i].z7) / sx );
  259. moveto(x,100);
  260. lineto(x,y);
  261. pen.color:=clblue;//cllime;//
  262. moveto(x,z);
  263. lineto(x,y);
  264. pen.width:=3;
  265. pen.color:=clwhite;
  266. ellipse(x-k,y-k,x+k,y+k);
  267. if (bio[i].u1.sum>0)then
  268. begin
  269. // хитрый способ обойтись без бсклер, который
  270. // потом хрен отключишь
  271. brush.style:=bsBDiagonal;//bsclear; //
  272. textout(x-10,110,format('%.f%%',[(100*
  273. bio[i].t2)/bio[i].u1.sum]));
  274. end;
  275. brush.style:=bssolid; //
  276. end;
  277. end;
  278. end;
  279.  
  280.  
  281. function curr2str(x: currency): string;
  282. begin
  283. result:='';
  284. if x=0 then exit;
  285. result:=format('%f',[x]);
  286. end;
  287.  
  288.  
  289. function word2str(x: word): string;
  290. begin
  291. result:='';
  292. if x=0 then exit;
  293. result:=format('%.3d',[x]);
  294. end;
  295.  
  296.  
  297. function kod2str(x: word): string;
  298. begin
  299. result:='';
  300. if x=0 then exit;
  301. result:=format('%.3d',[x]);
  302. end;
  303.  
  304.  
  305.  
  306. function rd2str(x: word): string;
  307. begin
  308. result:='';
  309. if x=0 then exit;
  310. result:=format('%d',[x]); // .3
  311. end;
  312.  
  313.  
  314. function str2word(x: string): word;
  315. begin
  316. result:=0;
  317. if x='' then exit;
  318. result:=strtoint(x);
  319. end;
  320.  
  321.  
  322. function chas2str(x: currency): string;
  323. begin
  324. result:='';
  325. if x=0 then exit;
  326. result:=format('%.1f',[x]);
  327. end;
  328.  
  329.  
  330.  
  331. function kodvaz(x: word): string;
  332. begin
  333. result:=' ';
  334. if x=0 then exit;
  335. case x of
  336. 001: result:='Оплата за проработанное время по среднему заработку';
  337. 003: result:='Доплата за сданную продукцию';
  338. 004: result:='Оплата по среднему беременным женщинам на легком труде';
  339. 005: result:='Доплата за напряженность труда';
  340. 006: result:='Оплата по тарифной ставке (окладу)';
  341. 007: result:='Надбавка за выполнение индивидуальных показателей';
  342. 008: result:='Доплата за условия труда';
  343. 009: result:='Премия за выполнение нормированного (производственного) задания';
  344. 010: result:='Премия';
  345. 011: result:='Премия из фонда мастера';
  346. 012: result:='Доплата за совмещения профессий';
  347. 013: result:='Доплата за работу в ночную смену';
  348. 015: result:='Доплата за мойку';
  349. 016: result:='Надбавка за выполнение индивидуальных показателей по руководству бригадой';
  350. 017: result:='Доплата за временное заместительство';
  351. 018: result:='Надбавка за классность';
  352. 019: result:='Доплата за ненормированный рабочий день';
  353. 022: result:='Доплата за работу в вечернюю смену';
  354. 023: result:='Доплата за перевыполнение нормирования задания';
  355. 024: result:='Дополнительная оплата за работу в ОАО АВТОВАЗ';
  356. 031: result:='Доплата за сокращенные на 1 час ночные смены';
  357. 033: result:='Доплата за работу в сверхурочное время';
  358. 034: result:='Доплата за работу в выходные и праздничные дни';
  359. 036: result:='Персональная надбавка';
  360. 046: result:='Премия за обучение молодых рабочих';
  361. 048: result:='Доплата за руководство практикой студентов';
  362. 049: result:='Доплата за теоретическое обучение';
  363. 052: result:='Оплата труда изобретателей и изобретателей';
  364. 053: result:='Единовременное вознаграждение за снижение технологической трудоемкости';
  365. 058: result:='Вознаграждение по результатам работам за год';
  366. 063: result:='Доплата за стаж работы на конвейере';
  367. 065: result:='Премия РСиС за основные рез-ты хоз-ной деят-ти';
  368. 066: result:='Премия за выполнение отдельных показателей хозяйственной деятельности';
  369. 067: result:='Премия за повышение эффективности производства';
  370. 068: result:='Премия за трудовую активность';
  371. 069: result:='Премия за экономию всех видов ресурсов';
  372. 070: result:='Премия за ускорение подготовки производства';
  373. 079: result:='Прочие выплаты и премии по основной зарплате';
  374. 110: result:='Пособие по временной нетрудоспособности за первые 2 дня';
  375. 125: result:='Доплата до средней заработной платы';
  376. 130: result:='Оплата простоя на рабочем месте по вине работодателя';
  377. 131: result:='Оплата простоя на рабочем месте не по вине работодателя';
  378. 132: result:='Оплата простоя по вине работодателя при отсутствии работника на рабочем месте';
  379. 136: result:='Компенсация за неиспользованный отпуск';
  380. 137: result:='Оплата часов гособязанностей';
  381. 138: result:='Оплата очередного отпуска в счет текущего месяца';
  382. 139: result:='Оплата очередного отпуска в счет будущего месяца';
  383. 140: result:='Оплата времени прохождения медицинских осмотров';
  384. 141: result:='Оплата по среднему служебных командировок';
  385. 143: result:='Оплата льготных часов студентов и учащихся';
  386. 145: result:='Оплата отпуска по учебе в счет текущего месяца';
  387. 146: result:='Оплата отпуска по учебе в счет будущего месяца';
  388. 147: result:='Оплата донорам';
  389. 157: result:='Компенсационная выплата женщинам (матерям) по уходу за ребенком до 3-х лет';
  390. 158: result:='Оплата дней отпуска рабочим сверх установленных законодательством в счет текущего месяца';
  391. 159: result:='Оплата дней отпуска рабочим сверх установленных законодательством в счет будущего месяца';
  392. 166: result:='Вознаграждение за нерабочие праздничные дни';
  393. 167: result:='Вознаграждение за работу по непрерывному трехсменному графику';
  394. 168: result:='Премия за работу станочником в ОАО АВТОВАЗ';
  395. 169: result:='Вознаграждение за работу в выходные и праздничные дни по трехсменным графикам';
  396. 179: result:='Прочие выплаты по дополнительной зарплате';
  397. 180: result:='Доплата до бюджета прожиточного минимума';
  398. 261: result:='Премия единовременного характера в связи с праздничными и юбилейными датами';
  399. 293: result:='Премия непроизводственного характера';
  400. 294: result:='Оплата нерабочих дней по семейным обстоятельствам';
  401. 295: result:='Доп. пособие по уходу за ребенком до 3-х лет';
  402. 296: result:='Оплата дополнительного дородового отпуска';
  403. 298: result:='Прочие выплаты и премии из ФМП';
  404. 360: result:='Пособие по временной нетрудоспособности в счет прошлого месяца';
  405. 361: result:='Пособие по временной нетрудоспособности в счет текущего месяца';
  406. 362: result:='Пособие по временной нетрудоспособности в счет будущего месяца';
  407. 363: result:='Пособие по уходу за ребенком-инвалидом';
  408. 365: result:='Премия за содействие изобретательству';
  409. 367: result:='Единовременное пособие беременным женщинам';
  410. 368: result:='Авторское вознаграждение, не подтвержденное свидетельством авторских изобретений';
  411. 369: result:='Премия за содействие внедрению рацпредложений';
  412. 370: result:='Премия по итогу соревнования по БРИЗ';
  413. 372: result:='Пособие по уходу за ребенком до 1,5 лет';
  414. 375: result:='Доплата за раздачу проездных билетов';
  415. 376: result:='Депонированная заработная плата';
  416. 378: result:='Зарплата за оказание платных услуг';
  417. 384: result:='Сумма, начисл. за задержку выплаты зарплаты';
  418. 386: result:='Внесено в кассу';
  419. 388: result:='Материальная помощь по заявлению';
  420. 389: result:='Пенсионный взнос';
  421. 396: result:='Дивиденды и иные доходы от прироста капитала';
  422. 397: result:='Прочие выплаты и премии, не облагаемые налогом';
  423. 398: result:='Прочие выплаты и премии, облагаемые налогом';
  424. 441: result:='Удержания за спецодежду';
  425. 442: result:='Удержания за инструмент';
  426. 443: result:='Удержания за материальный ущерб';
  427. 445: result:='Удержания в пользу профтехучилища';
  428. 446: result:='Удержания в пользу других организаций';
  429. 448: result:='Квартирная плата по заявлению в УК №2';
  430. 449: result:='Оплата за услуги телевидения';
  431. 451: result:='Взносы независимых профсоюзов';
  432. 458: result:='Выплаченное вознаграждение';
  433. 463: result:='Погашение задолженности по договору с рассрочкой платежа';
  434. 464: result:='Ссуда молодым семьям';
  435. 465: result:='Перечисление в негосударственный пенсионный фонд';
  436. 467: result:='Страховые взносы АО Самара-АСКО';
  437. 468: result:='Страховые взносы ПК Социальный';
  438. 469: result:='Страховые взносы ОАО АСТРО-ВОЛГА';
  439. 470: result:='Страховые взносы СК ЭКСПЕРТ';
  440. 475: result:='Налог с дивидендов';
  441. 477: result:='Налог с доходов по ставке 35%';
  442. 478: result:='Удержание за проживание в общежитии';
  443. 479: result:='Плановый аванс, перечисленный в банк';
  444. 480: result:='Налог с доходов по ставке 13%';
  445. 481: result:='Отчисления в негосударственный пенсионный фонд';
  446. 482: result:='Плановый аванс';
  447. 483: result:='Разовые выплаты';
  448. 484: result:='Перечисление заработной платы в банк';
  449. 485: result:='Перечисление отпускных в банк';
  450. 486: result:='Удержание за питание по талонам';
  451. 487: result:='За брак деталей и полуфабрикатов';
  452. 488: result:='Алименты';
  453. 489: result:='Другие исполнительные листы';
  454. 490: result:='Квартирная плата по заявлению в УЖКХ';
  455. 491: result:='Квартирная плата по заявлению в УК №1';
  456. 492: result:='Долг прошлого месяца';
  457. 493: result:='Передано к выплате в другие цехи';
  458. 494: result:='Разовые выплаты через банки';
  459. 495: result:='Удержание за проезд общественным транспортом';
  460. 496: result:='Подотчетные суммы';
  461. 497: result:='Взносы профсоюза АСМ РФ';
  462. 498: result:='Прочие удержания и зачеты';
  463. 499: result:='Госстрах';
  464. end;
  465. end;
  466.  
  467.  
  468. procedure vw;
  469. var i,j,k: integer;
  470. begin
  471. with bio[cur] do
  472. begin
  473. ///dno
  474. dnoe[0].text:=curr2str(a6);
  475. dnoe[1].text:=curr2str(a7);
  476. dnoe[2].text:=curr2str(a8);
  477.  
  478. dnoe[3].text:=chas2str(a9);
  479. dnoe[4].text:=curr2str(z1);
  480. dnoe[5].text:=curr2str(z4);
  481. dnoe[6].text:=curr2str(z2);
  482. dnoe[7].text:=curr2str(z3);
  483. dnoe[8].text:=curr2str(z5);
  484. dnoe[9].text:=kod2str(z6);
  485. dnoe[10].text:=curr2str(z7);
  486. //// ud
  487. ude[0].text:=curr2str(a1);
  488. ude[1].text:=curr2str(a2);
  489. ude[2].text:=curr2str(a3);
  490. ude[3].text:=curr2str(a4);
  491. for i:=0 to 11 do
  492. begin
  493. ude[4+i*2].text:=kod2str(a5[i].kod);
  494. ude[4+i*2].ShowHint:=''<ude[4+i*2].text;
  495. ude[4+i*2].Hint:=kodvaz(a5[i].kod); /// описание кода
  496. ude[5+i*2].text:=curr2str(a5[i].sum);
  497. end;
  498. //// na2
  499. for i:=0 to 15 do
  500. begin
  501. na2e[0+i*3].text:=kod2str(n1[i].kod);
  502. na2e[0+i*3].ShowHint:=''<na2e[0+i*3].text;
  503. na2e[0+i*3].Hint:=kodvaz(n1[i].kod);
  504. na2e[1+i*3].text:=chas2str(n1[i].chas);
  505. na2e[2+i*3].text:=curr2str(n1[i].sum);
  506. end;
  507. /// na1
  508. na1e[16].text:=curr2str(u5);
  509. na1e[17].text:=curr2str(t2);
  510. na1e[18].text:=curr2str(u10);
  511. na1e[19].text:=curr2str(t3);
  512. na1e[0].text:=chas2str(u1.chas);
  513. na1e[1].text:=curr2str(u1.sum);
  514. na1e[2].text:=chas2str(u2.chas);
  515. na1e[3].text:=curr2str(u2.sum);
  516. na1e[4].text:=chas2str(u3.chas);
  517. na1e[5].text:=curr2str(u3.sum);
  518. na1e[6].text:=chas2str(u4.chas);
  519. na1e[7].text:=curr2str(u4.sum);
  520.  
  521. na1e[8].text:=chas2str(u6.chas);
  522. na1e[9].text:=curr2str(u6.sum);
  523. na1e[10].text:=chas2str(u7.chas);
  524. na1e[11].text:=curr2str(u7.sum);
  525. na1e[12].text:=chas2str(u8.chas);
  526. na1e[13].text:=curr2str(u8.sum);
  527. na1e[14].text:=chas2str(u9.chas);
  528. na1e[15].text:=curr2str(u9.sum);
  529. /// hat
  530. hate[0].text:=kod2str(r6);
  531. hate[1].text:=kod2str(r7);
  532. hate[2].text:=rd2str(r8);
  533. hate[3].text:=curr2str(r9);
  534. end;
  535. end;
  536.  
  537.  
  538. function createl(x,y,w,h: integer; s: string): tlabel;
  539. begin
  540. result:=tlabel.create(form1);
  541. with result do
  542. begin
  543. wordwrap:=true;
  544. caption:=s;
  545. autosize:=false;
  546. alignment:=tacenter;
  547. color:=clwhite;//cllime;
  548. font.Name:='arial';
  549. font.Size:=5;
  550. width:=w;
  551. height:=h;
  552. parent:=form1.Panel1;
  553. top:=y;
  554. left:=x;
  555. hint:=s;
  556. showhint:=true;
  557. end;
  558. end;
  559.  
  560.  
  561. function createe(x,y,w,h: integer; s: string): tedit;
  562. begin
  563. result:=tedit.create(form1);
  564. with result do
  565. begin
  566. color:=rgb($f0,$f0,$a0);//clyellow;
  567. autosize:=false;
  568. borderstyle:=bsnone;
  569. width:=w;
  570. height:=h;
  571. text:='';
  572. parent:=form1.Panel1;
  573. top:=y;
  574. left:=x;
  575. end;
  576. end;
  577.  
  578.  
  579. procedure uderj;
  580. var i,j,k,i1,i2,i3,i4: integer;
  581. begin
  582. with form1 do
  583. begin
  584. ///////////////// удержания лейблы
  585. udl[0]:=createl(image2.left+1,image2.top+1,
  586. tooi(2,udgi)-1,tooi(2,udvi)-1,'Аванс');
  587. udl[1]:=createl(1+image2.left+tooi(2,udgi),image2.top+1,
  588. tooi(2,udgi)-1,tooi(2,udvi)-1,'Подоход. налог');
  589. udl[2]:=createl(1+image2.left+tooi(3,udgi),image2.top+1,
  590. tooi(4,udgi)-tooi(3,udgi)-1,tooi(2,udvi)-1,'Код');
  591. udl[3]:=createl(1+image2.left+tooi(4,udgi),image2.top+1,
  592. tooi(5,udgi)-tooi(4,udgi)-1,tooi(2,udvi)-1,'Сумма');
  593. udl[4]:=createl(1+image2.left+tooi(5,udgi),image2.top+1,
  594. tooi(6,udgi)-tooi(5,udgi)-1,tooi(2,udvi)-1,'Код');
  595. udl[5]:=createl(1+image2.left+tooi(6,udgi),image2.top+1,
  596. tooi(7,udgi)-tooi(6,udgi)-1,tooi(2,udvi)-1,'Сумма');
  597. udl[6]:=createl(1+image2.left+tooi(7,udgi),image2.top+1,
  598. tooi(8,udgi)-tooi(7,udgi)-1,tooi(2,udvi)-1,'Код');
  599. udl[7]:=createl(1+image2.left+tooi(8,udgi),image2.top+1,
  600. tooi(9,udgi)-tooi(8,udgi)-1,tooi(2,udvi)-1,'Сумма');
  601. udl[8]:=createl(1+image2.left+tooi(9,udgi),image2.top+1,
  602. tooi(10,udgi)-tooi(9,udgi)-1,tooi(2,udvi)-1,'Код');
  603. udl[9]:=createl(1+image2.left+tooi(10,udgi),image2.top+1,
  604. tooi(11,udgi)-tooi(10,udgi)-1,tooi(2,udvi)-1,'Сумма');
  605. udl[10]:=createl(1+image2.left+tooi(1,udgi),
  606. 1+image2.top+tooi(3,udvi),
  607. tooi(2,udgi)-tooi(1,udgi)-1,
  608. tooi(4,udvi)-tooi(3,udvi)-1,'Профсоюз.'#10#13'взносы');
  609. udl[11]:=createl(1+image2.left+tooi(2,udgi),
  610. 1+image2.top+tooi(3,udvi),
  611. tooi(3,udgi)-tooi(2,udgi)-1,
  612. tooi(4,udvi)-tooi(3,udvi)-1,'Долг прошлого'#10#13'месяца');
  613. ///////////////////// удержания эдиты
  614. ude[0]:=createe(1+image2.left+tooi(1,udgi),
  615. 1+image2.top+tooi(2,udvi),
  616. tooi(2,udgi)-tooi(1,udgi)-1,
  617. tooi(4,udvi)-tooi(3,udvi)-1,'0');
  618. ude[1]:=createe(1+image2.left+tooi(2,udgi),
  619. 1+image2.top+tooi(2,udvi),
  620. tooi(3,udgi)-tooi(2,udgi)-1,
  621. tooi(4,udvi)-tooi(3,udvi)-1,'1');
  622. ude[2]:=createe(1+image2.left+tooi(1,udgi),
  623. 1+image2.top+tooi(4,udvi),
  624. tooi(2,udgi)-tooi(1,udgi)-1,
  625. tooi(4,udvi)-tooi(3,udvi),'2');
  626. ude[3]:=createe(1+image2.left+tooi(2,udgi),
  627. 1+image2.top+tooi(4,udvi),
  628. tooi(3,udgi)-tooi(2,udgi)-1,
  629. tooi(4,udvi)-tooi(3,udvi),'3');
  630. for i:=0 to 2 do
  631. begin
  632. ude[4+i*2]:=createe(1+image2.left+tooi(3,udgi),
  633. 1+image2.top+tooi(2+i,udvi),
  634. tooi(4,udgi)-tooi(3,udgi)-1,
  635. tooi(4,udvi)-tooi(3,udvi),inttostr(4+i*2));
  636. ude[5+i*2]:=createe(1+image2.left+tooi(4,udgi),
  637. 1+image2.top+tooi(2+i,udvi),
  638. tooi(5,udgi)-tooi(4,udgi)-1,
  639. tooi(4,udvi)-tooi(3,udvi),inttostr(5+i*2));
  640. end;
  641. for i:=0 to 2 do
  642. begin
  643. ude[4+6+i*2]:=createe(1+image2.left+tooi(5,udgi),
  644. 1+image2.top+tooi(2+i,udvi),
  645. tooi(6,udgi)-tooi(5,udgi)-1,
  646. tooi(4,udvi)-tooi(3,udvi),inttostr(4+6+i*2));
  647. ude[5+6+i*2]:=createe(1+image2.left+tooi(6,udgi),
  648. 1+image2.top+tooi(2+i,udvi),
  649. tooi(7,udgi)-tooi(6,udgi)-1,
  650. tooi(4,udvi)-tooi(3,udvi),inttostr(5+6+i*2));
  651. end;
  652. for i:=0 to 2 do
  653. begin
  654. ude[4+12+i*2]:=createe(1+image2.left+tooi(7,udgi),
  655. 1+image2.top+tooi(2+i,udvi),
  656. tooi(8,udgi)-tooi(7,udgi)-1,
  657. tooi(4,udvi)-tooi(3,udvi),inttostr(4+12+i*2));
  658. ude[5+12+i*2]:=createe(1+image2.left+tooi(8,udgi),
  659. 1+image2.top+tooi(2+i,udvi),
  660. tooi(9,udgi)-tooi(8,udgi)-1,
  661. tooi(4,udvi)-tooi(3,udvi),inttostr(5+12+i*2));
  662. end;
  663. for i:=0 to 2 do
  664. begin
  665. ude[4+18+i*2]:=createe(1+image2.left+tooi(9,udgi),
  666. 1+image2.top+tooi(2+i,udvi),
  667. tooi(10,udgi)-tooi(9,udgi)-1,
  668. tooi(4,udvi)-tooi(3,udvi),inttostr(4+18+i*2));
  669. ude[5+18+i*2]:=createe(1+image2.left+tooi(10,udgi),
  670. 1+image2.top+tooi(2+i,udvi),
  671. tooi(11,udgi)-tooi(10,udgi)-1,
  672. tooi(4,udvi)-tooi(3,udvi),inttostr(5+18+i*2));
  673. end;
  674. end;
  675. end;
  676.  
  677.  
  678. procedure nachis2;
  679. var i,j,k,i1,i2,i3,i4: integer;
  680. begin
  681. with form1 do
  682. begin
  683. ////////////// начисления-2 лейблы
  684. for i:=0 to 3 do
  685. begin
  686. na2l[i+0]:=createl(1+image3.left+tooi(i*3+1,na2g),
  687. 1+image3.top+tooi(1,na2v),
  688. tooi(2,na2g)-tooi(1,na2g)-1,
  689. tooi(2,na2v)-tooi(1,na2v)-1,'Код'); //
  690. na2l[i+1]:=createl(1+image3.left+tooi(i*3+2,na2g),
  691. 1+image3.top+tooi(1,na2v),
  692. tooi(3,na2g)-tooi(2,na2g)-1,
  693. tooi(2,na2v)-tooi(1,na2v)-1,'Часы');
  694. na2l[i+2]:=createl(1+image3.left+tooi(i*3+3,na2g),
  695. 1+image3.top+tooi(1,na2v),
  696. tooi(4,na2g)-tooi(3,na2g)-1,
  697. tooi(2,na2v)-tooi(1,na2v)-1,'Суммa');
  698. end;
  699. //////// начисление-2 эдиты na1g
  700. for j:=0 to 3 do
  701. for i:=0 to 3 do
  702. begin
  703. i1:=j*12+i*3+0;
  704. i2:=j*12+i*3+1;
  705. i3:=j*12+i*3+2;
  706. na2e[i1]:=createe(1+image3.left+tooi(i*3+1,na2g),
  707. 1+image3.top+tooi(j+2,na2v),
  708. tooi(2,na2g)-tooi(1,na2g)-1,
  709. tooi(3,na2v)-tooi(2,na2v),inttostr(i1)); //
  710. na2e[i2]:=createe(1+image3.left+tooi(i*3+2,na2g),
  711. 1+image3.top+tooi(j+2,na2v),
  712. tooi(3,na2g)-tooi(2,na2g)-1,
  713. tooi(3,na2v)-tooi(2,na2v),inttostr(i2)); //'Ч');
  714. na2e[i3]:=createe(1+image3.left+tooi(i*3+3,na2g),
  715. 1+image3.top+tooi(j+2,na2v),
  716. tooi(4,na2g)-tooi(3,na2g)-1,
  717. tooi(3,na2v)-tooi(2,na2v),inttostr(i3)); //'С');
  718. end;
  719. end;
  720. end;
  721.  
  722.  
  723. procedure nachis1;
  724. var i,j,k,i1,i2,i3,i4: integer;
  725. begin
  726. with form1 do
  727. begin
  728. /////////начислено-1 лэйбл
  729. for i:=0 to 3 do
  730. begin
  731. na1l[i*2+0]:=createl(1+image4.left+tooi(i*2+1,na1g),
  732. 1+image4.top+tooi(1,na1v),
  733. tooi(2,na1g)-tooi(1,na1g)-1,
  734. tooi(2,na1v)-tooi(1,na1v)-1,
  735. 'Часы');
  736. na1l[i*2+1]:=createl(1+image4.left+tooi(i*2+2,na1g),
  737. 1+image4.top+tooi(1,na1v),
  738. tooi(3,na1g)-tooi(2,na1g)-1,
  739. tooi(2,na1v)-tooi(1,na1v)-1,
  740. 'Сумма');
  741. end;
  742. na1l[8]:=createl(1+image4.left+tooi(9,na1g),
  743. 1+image4.top+tooi(1,na1v),
  744. tooi(3,na1g)-tooi(2,na1g)-1,
  745. tooi(2,na1v)-tooi(1,na1v)-1,
  746. 'Сумма');
  747. na1l[9]:=createl(3+image4.left+tooi(10,na1g),
  748. 3+image4.top+tooi(1,na1v),
  749. tooi(11,na1g)-tooi(10,na1g)-5,
  750. tooi(3,na1v)-tooi(1,na1v)-3,
  751. #10#13'Премия рабочим');
  752. na1l[10]:=createl(1+image4.left+tooi(1,na1g),
  753. 1+image4.top+tooi(2,na1v),
  754. tooi(3,na1g)-tooi(1,na1g)-1,
  755. tooi(3,na1v)-tooi(2,na1v)-1,
  756. 'По тарифной ставке'#10#13'или окладу');
  757. na1l[11]:=createl(1+image4.left+tooi(3,na1g),
  758. 1+image4.top+tooi(2,na1v),
  759. tooi(3,na1g)-tooi(1,na1g)-1,
  760. tooi(3,na1v)-tooi(2,na1v)-1,
  761. 'Премия за выполнение'#10#13'норм. (производ.) задания');
  762. na1l[12]:=createl(1+image4.left+tooi(5,na1g),
  763. 1+image4.top+tooi(2,na1v),
  764. tooi(3,na1g)-tooi(1,na1g)-1,
  765. tooi(3,na1v)-tooi(2,na1v)-1,
  766. 'Доплата за работу'#10#13'в вечернюю смену');
  767. na1l[13]:=createl(1+image4.left+tooi(7,na1g),
  768. 1+image4.top+tooi(2,na1v),
  769. tooi(3,na1g)-tooi(1,na1g)-1,
  770. tooi(3,na1v)-tooi(2,na1v)-1,
  771. 'Доплата за работу'#10#13'в ночную смену');
  772. na1l[14]:=createl(1+image4.left+tooi(9,na1g),
  773. 1+image4.top+tooi(2,na1v),
  774. tooi(10,na1g)-tooi(9,na1g)-1,
  775. tooi(3,na1v)-tooi(2,na1v)-1,
  776. 'Надбавка за выпол'#10#13'инд. показателей');
  777. na1l[15]:=createl(1+image4.left+tooi(1,na1g),
  778. 1+image4.top+tooi(4,na1v),
  779. tooi(3,na1g)-tooi(1,na1g)-1,
  780. tooi(3,na1v)-tooi(2,na1v)-1,
  781. 'Доплата'#10#13'за выходные и праздники');
  782. na1l[16]:=createl(1+image4.left+tooi(3,na1g),
  783. 1+image4.top+tooi(4,na1v),
  784. tooi(3,na1g)-tooi(1,na1g)-1,
  785. tooi(3,na1v)-tooi(2,na1v)-1,
  786. 'Доплата'#10#13'за сверхурочные');
  787. na1l[17]:=createl(1+image4.left+tooi(5,na1g),
  788. 1+image4.top+tooi(4,na1v),
  789. tooi(3,na1g)-tooi(1,na1g)-1,
  790. tooi(3,na1v)-tooi(2,na1v)-1,
  791. 'Оплата за отпуск');
  792. na1l[18]:=createl(1+image4.left+tooi(7,na1g),
  793. 1+image4.top+tooi(4,na1v),
  794. tooi(3,na1g)-tooi(1,na1g)-1,
  795. tooi(3,na1v)-tooi(2,na1v)-1,
  796. 'Оплата'#10#13'по больничным листам');
  797. na1l[19]:=createl(1+image4.left+tooi(9,na1g),
  798. 1+image4.top+tooi(4,na1v),
  799. tooi(10,na1g)-tooi(9,na1g)-1,
  800. tooi(3,na1v)-tooi(2,na1v)-1,
  801. 'Доплата за'#10#13'условия труда');
  802. na1l[20]:=createl(3+image4.left+tooi(10,na1g),
  803. 1+image4.top+tooi(4,na1v),
  804. tooi(11,na1g)-tooi(10,na1g)-5,
  805. tooi(3,na1v)-tooi(2,na1v)-1,
  806. 'Премия РСиС');
  807. ////////// начисления-1 эдиты
  808. for i:=0 to 3 do
  809. begin
  810. i1:=i*2;
  811. i2:=i*2+1;
  812. na1e[i1]:=createe(1+image4.left+tooi(i*2+1,na1g),
  813. 1+image4.top+tooi(3,na1v),
  814. tooi(2,na1g)-tooi(1,na1g)-1,
  815. tooi(3,na1v)-tooi(2,na1v)-1,'К+'+inttostr(i1)); //
  816. na1e[i2]:=createe(1+image4.left+tooi(i*2+2,na1g),
  817. 1+image4.top+tooi(3,na1v),
  818. tooi(3,na1g)-tooi(2,na1g)-1,
  819. tooi(3,na1v)-tooi(2,na1v)-1,'Ч+'+inttostr(i2));
  820. end;
  821. for i:=0 to 3 do
  822. begin
  823. i1:=8+i*2;
  824. i2:=9+i*2;
  825. na1e[i1]:=createe(1+image4.left+tooi(i*2+1,na1g),
  826. 1+image4.top+tooi(5,na1v),
  827. tooi(2,na1g)-tooi(1,na1g)-1,
  828. tooi(3,na1v)-tooi(2,na1v)-1,'К-'+inttostr(i1)); //
  829. na1e[i2]:=createe(1+image4.left+tooi(i*2+2,na1g),
  830. 1+image4.top+tooi(5,na1v),
  831. tooi(3,na1g)-tooi(2,na1g)-1,
  832. tooi(3,na1v)-tooi(2,na1v)-1,'Ч-'+inttostr(i2));
  833. end;
  834. na1e[16]:=createe(1+image4.left+tooi(9,na1g),
  835. 1+image4.top+tooi(3,na1v),
  836. tooi(10,na1g)-tooi(9,na1g)-1,
  837. tooi(3,na1v)-tooi(2,na1v)-1,'hy16');
  838. na1e[17]:=createe(3+image4.left+tooi(10,na1g),
  839. 1+image4.top+tooi(3,na1v),
  840. tooi(11,na1g)-tooi(10,na1g)-5,
  841. tooi(3,na1v)-tooi(2,na1v)-1,'za17');
  842. na1e[18]:=createe(1+image4.left+tooi(9,na1g),
  843. 1+image4.top+tooi(5,na1v),
  844. tooi(10,na1g)-tooi(9,na1g)-1,
  845. tooi(3,na1v)-tooi(2,na1v)-1,'bo18');
  846. na1e[19]:=createe(3+image4.left+tooi(10,na1g),
  847. 1+image4.top+tooi(5,na1v),
  848. tooi(11,na1g)-tooi(10,na1g)-5,
  849. tooi(3,na1v)-tooi(2,na1v)-3,'ta19');
  850. end;
  851. end;
  852.  
  853.  
  854. procedure hatto;
  855. var i,j,k: integer;
  856. begin
  857. ///// шапка лейблы
  858. with form1 do
  859. begin
  860. hatl[0]:=createl(1+image5.left+tooi(1,hatg),
  861. 1+image5.top+tooi(1,hatv),
  862. tooi(2,hatg)-tooi(1,hatg)-1,
  863. tooi(2,hatv)-tooi(1,hatv)-1,
  864. 'Професс.'#10#13'должность');
  865. hatl[1]:=createl(1+image5.left+tooi(2,hatg),
  866. 1+image5.top+tooi(1,hatv),
  867. tooi(3,hatg)-tooi(2,hatg)-1,
  868. tooi(2,hatv)-tooi(1,hatv)-1,
  869. 'Kод'#10#13'налога');
  870. hatl[2]:=createl(1+image5.left+tooi(3,hatg),
  871. 1+image5.top+tooi(1,hatv),
  872. tooi(4,hatg)-tooi(3,hatg)-1,
  873. tooi(2,hatv)-tooi(1,hatv)-1,
  874. 'Р-д');
  875. hatl[3]:=createl(1+image5.left+tooi(4,hatg),
  876. 1+image5.top+tooi(1,hatv),
  877. tooi(5,hatg)-tooi(4,hatg)-1,
  878. tooi(2,hatv)-tooi(1,hatv)-1,
  879. 'Тарифн. ставка'#10#13'оклад');
  880. hatl[4]:=createl(3+image5.left+tooi(5,hatg),
  881. 3+image5.top+tooi(1,hatv),
  882. tooi(6,hatg)-tooi(5,hatg)-5,
  883. tooi(3,hatv)-tooi(1,hatv)-3,
  884. 'Табельный номер');
  885. ///// шапка эдиты
  886. hate[0]:=createe(1+image5.left+tooi(1,hatg),
  887. 1+image5.top+tooi(2,hatv),
  888. tooi(2,hatg)-tooi(1,hatg)-1,
  889. tooi(3,hatv)-tooi(2,hatv)-1,'П-0');
  890. hate[1]:=createe(1+image5.left+tooi(2,hatg),
  891. 1+image5.top+tooi(2,hatv),
  892. tooi(3,hatg)-tooi(2,hatg)-1,
  893. tooi(3,hatv)-tooi(2,hatv)-1,'K-1');
  894. hate[2]:=createe(1+image5.left+tooi(3,hatg),
  895. 1+image5.top+tooi(2,hatv),
  896. tooi(4,hatg)-tooi(3,hatg)-1,
  897. tooi(3,hatv)-tooi(2,hatv)-1,'Р-2');
  898. hate[3]:=createe(1+image5.left+tooi(4,hatg),
  899. 1+image5.top+tooi(2,hatv),
  900. tooi(5,hatg)-tooi(4,hatg)-1,
  901. tooi(3,hatv)-tooi(2,hatv)-1,'Т-3');
  902. end;
  903. end;
  904.  
  905.  
  906. procedure dno; // донные ячейки
  907. var i,j,k,i1,i2,i3,i4: integer;
  908. begin
  909. with form1 do
  910. begin
  911. dnoe[0]:=createe(image1.left+dnogi[1]+1,image1.top+11,
  912. tooi(3,dnogi)-tooi(2,dnogi)-1,12,'010nx');
  913. dnoe[1]:=createe(image1.left+dnogi[1]+1,image1.top+11+dnovi[2],
  914. tooi(3,dnogi)-tooi(2,dnogi)-1,12,'020nx');
  915. dnoe[2]:=createe(image1.left+dnogi[1]+1,image1.top+1+tooi(4,dnovi),
  916. dnoe[1].Width,tooi(5,dnovi)-tooi(4,dnovi)-1,'030nx');
  917. dnoe[3]:=createe(image1.left+tooi(3,dnogi)+1,image1.top+11,
  918. tooi(4,dnogi)-tooi(3,dnogi)-1,12,'040nx');
  919. dnoe[4]:=createe(image1.left+tooi(4,dnogi)+1,image1.top+11,
  920. tooi(5,dnogi)-tooi(4,dnogi)-1,12,'050nx');
  921. dnoe[5]:=createe(image1.left+tooi(5,dnogi)+1,image1.top+11,
  922. tooi(6,dnogi)-tooi(5,dnogi)-1,12,'060nx');
  923. dnoe[6]:=createe(image1.left+tooi(3,dnogi)+1,dnoe[2].top,tooi(4,dnogi)-tooi(3,dnogi)-1,
  924. tooi(5,dnovi)-tooi(4,dnovi)-1,'070nx');
  925. dnoe[7]:=createe(image1.left+tooi(4,dnogi)+1,dnoe[2].top,
  926. tooi(5,dnogi)-tooi(4,dnogi)-1,tooi(5,dnovi)-tooi(4,dnovi)-1,'050nx');
  927. dnoe[8]:=createe(image1.left+tooi(5,dnogi)+1+2,dnoe[2].top,
  928. tooi(6,dnogi)-tooi(5,dnogi)-1-2,tooi(5,dnovi)-tooi(4,dnovi)-1-2,'050nx');
  929. dnoe[9]:=createe(image1.left+tooi(6,dnogi)+1+2,dnoe[2].top,
  930. 29-2,tooi(5,dnovi)-tooi(4,dnovi)-1-2,'050nx');
  931. dnoe[10]:=createe(image1.left+tooi(7,dnogi)+1,dnoe[2].top,
  932. tooi(8,dnogi)-tooi(7,dnogi)-1-2,tooi(5,dnovi)-tooi(4,dnovi)-1-2,'050nx');
  933.  
  934.  
  935.  
  936. dnol[0]:=createl(image1.left+1,image1.top+1,
  937. tooi(3,dnogi)-tooi(1,dnogi)-1,9,
  938. 'Средняя заработная плата');
  939. dnol[1]:=createl(image1.left+1+tooi(3,dnogi),image1.top+1,
  940. tooi(6,dnogi)-tooi(5,dnogi)-1,9,
  941. 'Инд. фонд времени');
  942. dnol[2]:=createl(image1.left+1+tooi(4,dnogi),image1.top+1,
  943. tooi(6,dnogi)-tooi(5,dnogi)-1,9,
  944. 'Начислено');
  945. dnol[3]:=createl(image1.left+1+tooi(5,dnogi),image1.top+1,
  946. tooi(6,dnogi)-tooi(5,dnogi)-1,9,
  947. 'Удержано');
  948. dnol[4]:=createl(image1.left+1+tooi(6,dnogi)+2,image1.top+1+2,
  949. tooi(8,dnogi)-tooi(6,dnogi)-1-4,tooi(3,dnovi)-tooi(1,dnovi)-1-2,'Перечислено'+#10#13+
  950. ' в банк');
  951. dnol[5]:=createl(image1.left+1,image1.top+1+tooi(2,dnovi),
  952. tooi(2,dnogi)-tooi(0,dnogi)-1,12,'За последние 2 календарных года для'+#10#13+
  953. 'оплаты больничных (дневная)');
  954. dnol[6]:=createl(image1.left+1,image1.top+1+tooi(3,dnovi),
  955. tooi(2,dnogi)-tooi(0,dnogi)-1,12,'За последние 12 месяцев '+#10#13+
  956. 'для оплаты по среднему (часовая)');
  957. dnol[7]:=createl(image1.left+1,image1.top+1+tooi(4,dnovi),
  958. tooi(2,dnogi)-tooi(0,dnogi)-1,tooi(5,dnovi)-tooi(4,dnovi)-1,'За последние 12 месяцев '+#10#13+
  959. 'для оплаты отпуска (дневная)');
  960. dnol[8]:=createl(dnol[1].left,dnol[6].top,tooi(6,dnogi)-tooi(5,dnogi)-1,12,
  961. 'Причитается');
  962. dnol[9]:=createl(dnol[2].left,dnol[6].top,tooi(6,dnogi)-tooi(5,dnogi)-1,12,
  963. 'Долг за работающим');
  964. dnol[10]:=createl(dnol[3].left+2,dnol[6].top+2,tooi(6,dnogi)-tooi(5,dnogi)-1-2,12-2,
  965. 'Сумма к выплате');
  966. dnol[11]:=createl(dnol[4].left,dnol[6].top+2,29-2,12-2,
  967. 'Код');
  968. dnol[12]:=createl(image1.left+1+tooi(7,dnogi),
  969. dnol[6].top+2,
  970. tooi(8,dnogi)-tooi(7,dnogi)-1-2,12-2,
  971. 'Сумма');
  972. end;
  973. end;
  974.  
  975.  
  976. procedure TForm1.FormCreate(Sender: TObject);
  977. const c100: array[boolean]of tcolor=(clwhite,cllime);
  978. var i,j,k,i1,i2,i3,i4: integer;
  979. begin
  980. //////// удержания лейблы
  981. uderj;
  982. ////////////// начисления-2 лейблы
  983. nachis2;
  984. /////////начислено-1 лэйбл
  985. nachis1;
  986. ///// шапка лейблы
  987. hatto;
  988. with image1.Canvas do
  989. begin
  990. brush.color:=clblue;//clyellow;
  991. fillrect(rect(0,0,521,tooi(5,dnovi)+1));//
  992. end;
  993. with image2.Canvas do
  994. begin
  995. brush.color:=clblue;
  996. fillrect(rect(0,0,521,2+tooi(6,udvi))); //
  997. end;
  998. with image3.Canvas do
  999. begin
  1000. brush.color:=clblue; //clred;//clyellow; //
  1001. fillrect(rect(0,0,521,2+tooi(6,na2v))); //
  1002. end;
  1003. with image4.Canvas do
  1004. begin
  1005. brush.color:=clblue; //clgreen;//
  1006. fillrect(rect(0,0,521,1+tooi(6,na1v))); //
  1007. end;
  1008. with image5.Canvas do
  1009. begin
  1010. brush.color:=clblue; //clred;//clgreen;//
  1011. fillrect(rect(0,0,521,1+tooi(3,hatv))); //
  1012. end;
  1013. dno; // дно
  1014. for i:=1 to 12 do //
  1015. begin
  1016. pn[i]:=tpanel.create(form1);
  1017. with pn[i] do
  1018. begin
  1019. top:=12;
  1020. left:=20+(i-1)*49;
  1021. width:=40;
  1022. height:=20;
  1023. font.Color:=clblue;
  1024. color:=c100[i=1];
  1025. caption:=sa[i];
  1026. tag:=i;
  1027. onmousedown:=ck;
  1028. parent:=panel2;
  1029. end;
  1030. end;
  1031. for i:=1969 to 2069 do
  1032. combobox1.items.Add(inttostr(i));
  1033. button6.OnClick(self); // загрузить из файлов
  1034. bio:=boob[cury]; // первый год
  1035. vw;
  1036. vw2;
  1037. application.ProcessMessages;
  1038. end;
  1039.  
  1040.  
  1041. procedure TForm1.ck(Sender: TObject; Button: TMouseButton;
  1042. Shift: TShiftState; X, Y: Integer);
  1043. const cc: array[boolean]of tcolor=(clwhite,cllime);
  1044. var i: integer;
  1045. begin
  1046. cur:=(sender as tpanel).tag;
  1047. mont.text:=sa[cur];
  1048. label2.caption:=(sender as tpanel).caption;
  1049. for i:=1 to 12 do
  1050. pn[i].color:=cc[i=(sender as tpanel).tag];
  1051. vw;
  1052. end;
  1053.  
  1054.  
  1055. function NameNoExt(x: string): string;
  1056. begin // имя файла без расширения
  1057. result:=Copy(x,1,length(x)-length(ExtractFileExt(x)));
  1058. end;
  1059.  
  1060.  
  1061. function str2curr(x: string): currency;
  1062. begin
  1063. x:=trim(x);
  1064. x:=stringreplace(x,'.',',',[rfReplaceAll]);
  1065. result:=0;
  1066. if x='' then exit;
  1067. result:=strtocurr(x);
  1068. end;
  1069.  
  1070.  
  1071. procedure TForm1.ComboBox1Change(Sender: TObject);
  1072. begin
  1073. bio:=boob[ComboBox1.ItemIndex];
  1074. cury:=ComboBox1.ItemIndex;
  1075. year.text:=inttostr(1969+ComboBox1.ItemIndex);
  1076. vw;
  1077. vw2;
  1078. end;
  1079.  
  1080. procedure TForm1.Button6Click(Sender: TObject);
  1081. var i: integer; s: string;
  1082. c: boolean;
  1083. begin
  1084. c:=true;
  1085. for i:=1969 to 2069 do
  1086. begin
  1087. s:=format('%d.vaz',[i]);
  1088. if not fileexists(s) then continue;
  1089. if c then
  1090. begin
  1091. c:=false;
  1092. cury:=i-1969;
  1093. ComboBox1.ItemIndex:=i-1969;
  1094. year.Text:=inttostr(i);
  1095. mont.Text:='Январь';
  1096. end;
  1097. assignfile(f,s);
  1098. reset(f);
  1099. read(f,boob[i-1969]);
  1100. closefile(f);
  1101. end;
  1102. end;
  1103.  
  1104.  
  1105. procedure TForm1.Save1Click(Sender: TObject);
  1106. var i,j: integer; s: string;
  1107. f: file of bob;
  1108. begin
  1109. with bio[cur] do
  1110. begin
  1111. a6:=str2curr(dnoe[0].text);
  1112. a7:=str2curr(dnoe[1].text);
  1113. a8:=str2curr(dnoe[2].text);
  1114. a9:=str2curr(dnoe[3].text);
  1115. z1:=str2curr(dnoe[4].text);
  1116. z4:=str2curr(dnoe[5].text);
  1117. z2:=str2curr(dnoe[6].text);
  1118. z3:=str2curr(dnoe[7].text);
  1119. z5:=str2curr(dnoe[8].text);
  1120. z6:=str2word(dnoe[9].text);
  1121. z7:=str2curr(dnoe[10].text);
  1122. a1:=str2curr(ude[0].text);//Аванс
  1123. a2:=str2curr(ude[1].text);///Подоход. налог
  1124. a3:=str2curr(ude[2].text);//Профсоюзн. взносы
  1125. a4:=str2curr(ude[3].text);//Долг прошлого месяца
  1126. for i:=0 to 11 do //Удержания Код Сумма (16)
  1127. with a5[i] do
  1128. begin
  1129. a5[i].kod:=str2word(ude[4+i*2].text);//
  1130. a5[i].sum:=str2curr(ude[5+i*2].text);//
  1131. end;
  1132. for i:=0 to 15 do //Начисления Код Часы Сумма (16)
  1133. begin
  1134. n1[i].kod:=str2word(na2e[i*3+0].text);
  1135. n1[i].chas:=str2curr(na2e[i*3+1].text);
  1136. n1[i].sum:=str2curr(na2e[i*3+2].text);
  1137. end;
  1138. u1.chas:=str2curr(na1e[0].text);
  1139. u1.sum:=str2curr(na1e[1].text);
  1140. u2.chas:=str2curr(na1e[2].text);
  1141. u2.sum:=str2curr(na1e[3].text);
  1142. u3.chas:=str2curr(na1e[4].text);
  1143. u3.sum:=str2curr(na1e[5].text);
  1144. u4.chas:=str2curr(na1e[6].text);
  1145. u4.sum:=str2curr(na1e[7].text);
  1146. u6.chas:=str2curr(na1e[8].text);
  1147. u6.sum:=str2curr(na1e[9].text);
  1148. u7.chas:=str2curr(na1e[10].text);
  1149. u7.sum:=str2curr(na1e[11].text);
  1150. u8.chas:=str2curr(na1e[12].text);
  1151. u8.sum:=str2curr(na1e[13].text);
  1152. u9.chas:=str2curr(na1e[14].text);
  1153. u9.sum:=str2curr(na1e[15].text);
  1154. u5:=str2curr(na1e[16].text);
  1155. u10:=str2curr(na1e[18].text);
  1156. t2:=str2curr(na1e[17].text);
  1157. t3:=str2curr(na1e[19].text);
  1158. r6:=str2word(hate[0].text);
  1159. r7:=str2word(hate[1].text);
  1160. r8:=str2word(hate[2].text);
  1161. r9:=str2curr(hate[3].text);
  1162. end;
  1163. vw;
  1164. vw2;
  1165. s:=inttostr(ComboBox1.ItemIndex+1969)+'.vaz';
  1166. assignfile(f,s);
  1167. rewrite(f);
  1168. write(f,bio);
  1169. closefile(f);
  1170. end;
  1171.  
  1172. initialization
  1173. dnovi:=butt([0,10,13,13,17]); // таблицы
  1174. dnogi:=butt([0,160,50,70,70,70,30,70]);
  1175. udvi:=butt([0,10,17,17,17]);
  1176. udgi:=butt([0,70,70,30,65,30,65,30,65,30,65]);
  1177. na2v:=butt([0,10,13,13,13,13]);
  1178. na2g:=butt([0,30,30,70,30,30,70,30,30,70,30,30,70]);
  1179. na1v:=butt([0,13,13,13,13,13]);
  1180. na1g:=butt([0,30,65,30,65,30,65,30,65,65,75]);
  1181. hatv:=butt([0,16,13]);
  1182. hatg:=butt([0,40,25,17,65,75]);
  1183. end.

Ссылка на данный код:

На главную страницу сервиса обмена кодом »