* СЛЕДУЮЩИЙ КОД ПОКАЗЫВАЕТ КАК ИЗ ТАБЛИЦЫ ПРОВОДОК БУХ,СЧЕТОВ ПОЛУЧИТЬ ШАХМАТКУ БУХ,СЧЕТОВ
SELE 0
CREATE CURSOR PRW (DEB C(8),KRD C(8),SUMA N(18,2))
INSERT INTO PRW VALUES ('08/1 ','60 ',-8337.55)
INSERT INTO PRW VALUES ('10/1 ','10/1 ',97163.83)
INSERT INTO PRW VALUES ('10/1 ','60 ',89227.96)
INSERT INTO PRW VALUES ('10/1 ','71 ',159.62)
INSERT INTO PRW VALUES ('10/10 ','10/10 ',275.24)
INSERT INTO PRW VALUES ('10/10 ','60 ',405.60)
INSERT INTO PRW VALUES ('10/10 ','71 ',35.32)
INSERT INTO PRW VALUES ('10/11/1 ','23/2/2 ',274.57)
INSERT INTO PRW VALUES ('10/11/1 ','23/2/4 ',2950.73)
INSERT INTO PRW VALUES ('10/11/2 ','10/10 ',126.92)
INSERT INTO PRW VALUES ('10/13 ','10/11/1 ',1409.91)
INSERT INTO PRW VALUES ('10/13 ','10/9/1 ',890.61)
INSERT INTO PRW VALUES ('10/13/1 ','10/11/2 ',69.37)
INSERT INTO PRW VALUES ('10/14 ','10/14 ',265.27)
INSERT INTO PRW VALUES ('10/14 ','43 ',12461.72)
INSERT INTO PRW VALUES ('10/2 ','10/2 ',41753.82)
INSERT INTO PRW VALUES ('10/2 ','23/3/1 ',846.32)
INSERT INTO PRW VALUES ('10/2 ','60 ',37184.85)
INSERT INTO PRW VALUES ('10/3 ','10/3 ',3881.71)
INSERT INTO PRW VALUES ('10/3 ','60 ',3636.98)
INSERT INTO PRW VALUES ('10/3 ','71 ',209.91)
INSERT INTO PRW VALUES ('10/5 ','10/2 ',646.17)
INSERT INTO PRW VALUES ('10/5 ','10/5 ',3470.85)
INSERT INTO PRW VALUES ('10/5 ','60 ',1232.01)
INSERT INTO PRW VALUES ('10/5 ','71 ',186.11)
INSERT INTO PRW VALUES ('10/6 ','10/1 ',67.79)
INSERT INTO PRW VALUES ('10/6 ','10/11/1 ',30.47)
INSERT INTO PRW VALUES ('10/6 ','10/14 ',179.16)
INSERT INTO PRW VALUES ('10/6 ','10/2 ',46.59)
INSERT INTO PRW VALUES ('10/6 ','10/5 ',2.97)
INSERT INTO PRW VALUES ('10/6 ','10/9/1 ',45.25)
INSERT INTO PRW VALUES ('10/6 ','20 ',97.92)
INSERT INTO PRW VALUES ('10/6 ','23/2/2 ',0.33)
INSERT INTO PRW VALUES ('10/6 ','23/2/4 ',1.82)
INSERT INTO PRW VALUES ('10/6 ','23/3/1 ',9.08)
INSERT INTO PRW VALUES ('10/7 ','10/4 ',969.77)
INSERT INTO PRW VALUES ('10/9 ','10/9 ',171.57)
INSERT INTO PRW VALUES ('10/9 ','60 ',4997.87)
INSERT INTO PRW VALUES ('10/9 ','71 ',136.46)
INSERT INTO PRW VALUES ('10/9/1 ','10/9 ',5475.25)
INSERT INTO PRW VALUES ('10/9/1 ','10/9/1 ',7.74)
INSERT INTO PRW VALUES ('16 ','60 ',272.61)
* ФОРМИРУЕМ ИТОГОВУЮ СТРОКУ И ИТОГОВЫЙ СТОЛБЕЦ
INSERT INTO PRW SELECT 'Итого ',KRD, SUM(SUMA) FROM PRW GROUP BY 1,2
INSERT INTO PRW SELECT DEB,'Итого ', SUM(SUMA) FROM PRW GROUP BY 1,2
*СТОЛБЦЫ БУДУЩЕЙ ШАХМАТКИ ПОЛУЧИМ ОТСЮДА
SELECT DISTINCT krd FROM prw ORDER BY KRD INTO CURSOR CKRD
* НАЧИНАЕМ ФОРМИРОВАТЬ ТЕКСТ ЗАПРОСА ДЛЯ ШАХМАТКИ
TEXT TO lcSQLSelectString TEXTMERGE NOSHOW
SELECT deb
ENDTEXT
*ФОРМИРУЕМ ТЕКСТ ЗАПРОСА ДЛЯ ПОСТРОЕНИЯ СТОЛБЦОВ ШАХМАТКИ
SELECT CKRD
SCAN
TEXT TO lcSQLSelectString ADDITIVE TEXTMERGE NOSHOW
,SUM(IIF(KRD = [<<CKRD.KRD>>],SUMA*1,SUMA*0)) K_<<CHRTRAN(CKRD.KRD,"/","_")>>
ENDTEXT
ENDSCAN
TEXT TO lcSQLSelectString ADDITIVE TEXTMERGE NOSHOW
FROM PRW GROUP BY 1 INTO CURSOR SAXM
ENDTEXT
=EXECSCRIPT(lcSQLSelectString )
BROW
* СЛЕДУЮЩИЙ КОД ПОКАЗЫВАЕТ КАК ИЗ ТАБЛИЦЫ РАСХОДА МАТЕРИАЛОВ НА ИЗДЕЛИЯ ПОЛУЧИТЬ СООТВ. ШАХМАТКУ
SELE 0
CREATE CURSOR CRAS (ID_TOV I(4),NMAT C(30),ED_IZM C(4),CENA N(18,2),ID_RAS I(4),NAMR C(30),KOL N(18,2),SUMA N(18,2))
INSERT INTO CRAS VALUES (1343,'Болт м10*30.58.019/7798 ','КГ ',2.41,14953,'Сеялка спу-6д-01 ',0.19,0.45)
INSERT INTO CRAS VALUES (1343,'Болт м10*30.58.019/7798 ','КГ ',2.41,14954,'Сеялка спу-6л-01 ',0.06,0.15)
INSERT INTO CRAS VALUES (1352,'Болт м6*16.58.019/7798 ','КГ ',2.37,14936,'Сеялка ств-12 ',0.90,2.13)
INSERT INTO CRAS VALUES (494,'Велопропилен ','КГ ',6.42,14937,'Сеялка спу-4д ',0.18,1.12)
INSERT INTO CRAS VALUES (494,'Велопропилен ','КГ ',6.42,14953,'Сеялка спу-6д-01 ',0.15,0.96)
INSERT INTO CRAS VALUES (494,'Велопропилен ','КГ ',6.42,14954,'Сеялка спу-6л-01 ',0.05,0.32)
INSERT INTO CRAS VALUES (1153,'Гайка м12.8.016 гост 5915 ','КГ ',2.90,14937,'Сеялка спу-4д ',0.67,1.95)
INSERT INTO CRAS VALUES (1417,'Гайка м12.8.016 гост 5915 ','КГ ',3.51,14953,'Сеялка спу-6д-01 ',0.48,1.68)
INSERT INTO CRAS VALUES (1417,'Гайка м12.8.016 гост 5915 ','КГ ',3.51,14954,'Сеялка спу-6л-01 ',0.18,0.62)
INSERT INTO CRAS VALUES (1153,'Гайка м12.8.016 гост 5915 ','КГ ',2.90,14936,'Сеялка ств-12 ',0.70,2.04)
INSERT INTO CRAS VALUES (1417,'Гайка м12.8.016 гост 5915 ','КГ ',3.51,14936,'Сеялка ств-12 ',0.90,3.15)
INSERT INTO CRAS VALUES (993,'Гайка м4.5.016 гост 5915 ','КГ ',0.53,14937,'Сеялка спу-4д ',0.01,0.00)
INSERT INTO CRAS VALUES (993,'Гайка м4.5.016 гост 5915 ','КГ ',0.53,14953,'Сеялка спу-6д-01 ',0.01,0.00)
INSERT INTO CRAS VALUES (993,'Гайка м4.5.016 гост 5915 ','КГ ',0.53,14954,'Сеялка спу-6л-01 ',0.00,0.00)
INSERT INTO CRAS VALUES (1134,'Гайка м6.5.016 гост 5915 ','КГ ',2.20,14937,'Сеялка спу-4д ',0.14,0.31)
INSERT INTO CRAS VALUES (1134,'Гайка м6.5.016 гост 5915 ','КГ ',2.20,14953,'Сеялка спу-6д-01 ',0.09,0.20)
INSERT INTO CRAS VALUES (1134,'Гайка м6.5.016 гост 5915 ','КГ ',2.20,14954,'Сеялка спу-6л-01 ',0.03,0.07)
INSERT INTO CRAS VALUES (1134,'Гайка м6.5.016 гост 5915 ','КГ ',2.20,14936,'Сеялка ств-12 ',0.15,0.33)
INSERT INTO CRAS VALUES (1134,'Гайка м6.8.016 гост 5915 ','КГ ',2.20,14936,'Сеялка ств-12 ',0.14,0.32)
INSERT INTO CRAS VALUES (1364,'Гайка м8.5.016 гост 5915 ','КГ ',2.90,14937,'Сеялка спу-4д ',0.04,0.12)
INSERT INTO CRAS VALUES (1364,'Гайка м8.5.016 гост 5915 ','КГ ',2.90,14953,'Сеялка спу-6д-01 ',0.04,0.10)
INSERT INTO CRAS VALUES (1364,'Гайка м8.5.016 гост 5915 ','КГ ',2.90,14954,'Сеялка спу-6л-01 ',0.01,0.03)
INSERT INTO CRAS VALUES (1364,'Гайка м8.5.016 гост 5915 ','КГ ',2.90,14936,'Сеялка ств-12 ',0.03,0.09)
INSERT INTO CRAS VALUES (36630,'Гродномид па6-л-св30 ','КГ ',3.28,14937,'Сеялка спу-4д ',5.29,17.33)
INSERT INTO CRAS VALUES (36630,'Гродномид па6-л-св30 ','КГ ',3.28,14953,'Сеялка спу-6д-01 ',2.88,9.45)
INSERT INTO CRAS VALUES (36630,'Гродномид па6-л-св30 ','КГ ',3.28,14954,'Сеялка спу-6л-01 ',0.96,3.15)
INSERT INTO CRAS VALUES (36630,'Гродномид па6-л-св30 ','КГ ',3.28,14936,'Сеялка ств-12 ',47.75,156.62)
INSERT INTO CRAS VALUES (36630,'Гродномид па6-лта-св5 ','КГ ',3.28,14937,'Сеялка спу-4д ',2.69,8.82)
INSERT INTO CRAS VALUES (36630,'Гродномид па6-лта-св5 ','КГ ',3.28,14954,'Сеялка спу-6л-01 ',0.21,0.69)
INSERT INTO CRAS VALUES (36630,'Гродномид па6-лта-св5 ','КГ ',3.28,14936,'Сеялка ств-12 ',0.06,0.20)
INSERT INTO CRAS VALUES (36750,'Леска 0.4мм ','М ',19.50,14937,'Сеялка спу-4д ',0.02,0.44)
INSERT INTO CRAS VALUES (36750,'Леска 0.4мм ','М ',19.50,14953,'Сеялка спу-6д-01 ',0.02,0.37)
INSERT INTO CRAS VALUES (36750,'Леска 0.4мм ','М ',19.50,14954,'Сеялка спу-6л-01 ',0.01,0.12)
INSERT INTO CRAS VALUES (31851,'Пластикат "BAYBLEND" ','КГ ',7.09,14936,'Сеялка ств-12 ',5.04,35.73)
INSERT INTO CRAS VALUES (31851,'Пластикат авс-2020-30 (черный)','КГ ',7.09,14937,'Сеялка спу-4д ',0.84,5.96)
INSERT INTO CRAS VALUES (31851,'Пластикат авс-2020-30 (черный)','КГ ',7.09,14953,'Сеялка спу-6д-01 ',0.36,2.55)
INSERT INTO CRAS VALUES (31851,'Пластикат авс-2020-30 (черный)','КГ ',7.09,14954,'Сеялка спу-6л-01 ',0.12,0.85)
INSERT INTO CRAS VALUES (951,'Пластикат пвх ш-62 ','КГ ',2.71,14937,'Сеялка спу-4д ',105.67,286.78)
INSERT INTO CRAS VALUES (951,'Пластикат пвх ш-62 ','КГ ',2.71,14953,'Сеялка спу-6д-01 ',70.20,190.52)
INSERT INTO CRAS VALUES (951,'Пластикат пвх ш-62 ','КГ ',2.71,14954,'Сеялка спу-6л-01 ',23.40,63.51)
INSERT INTO CRAS VALUES (951,'Пластикат пвх ш-62 ','КГ ',2.71,14936,'Сеялка ств-12 ',29.20,79.24)
INSERT INTO CRAS VALUES (952,'Пластикат пвх ув-11/3 ','КГ ',2.71,14937,'Сеялка спу-4д ',68.46,185.79)
INSERT INTO CRAS VALUES (952,'Пластикат пвх ув-11/3 ','КГ ',2.71,14953,'Сеялка спу-6д-01 ',46.13,125.18)
INSERT INTO CRAS VALUES (952,'Пластикат пвх ув-11/3 ','КГ ',2.71,14954,'Сеялка спу-6л-01 ',15.38,41.73)
INSERT INTO CRAS VALUES (952,'Пластикат пвх ув-11/3 ','КГ ',2.71,14936,'Сеялка ств-12 ',22.55,61.20)
INSERT INTO CRAS VALUES (31851,'Пластикат700-314абс/серый ','КГ ',7.09,14937,'Сеялка спу-4д ',50.15,355.56)
INSERT INTO CRAS VALUES (31851,'Пластикат700-314абс/серый ','КГ ',7.09,14953,'Сеялка спу-6д-01 ',33.48,237.35)
INSERT INTO CRAS VALUES (31851,'Пластикат700-314абс/серый ','КГ ',7.09,14954,'Сеялка спу-6л-01 ',11.16,79.12)
INSERT INTO CRAS VALUES (36630,'Полиамид па6-210/310 ','КГ ',3.28,14937,'Сеялка спу-4д ',24.96,81.87)
INSERT INTO CRAS VALUES (36630,'Полиамид па6-210/310 ','КГ ',3.28,14953,'Сеялка спу-6д-01 ',19.13,62.74)
INSERT INTO CRAS VALUES (36630,'Полиамид па6-210/310 ','КГ ',3.28,14954,'Сеялка спу-6л-01 ',6.43,21.08)
INSERT INTO CRAS VALUES (36630,'Полиамид па6-210/310 ','КГ ',3.28,14936,'Сеялка ств-12 ',23.96,78.59)
INSERT INTO CRAS VALUES (295,'Полистирол псм-115 ','КГ ',0.40,14936,'Сеялка ств-12 ',2.70,1.08)
INSERT INTO CRAS VALUES (36708,'Полиэт. пэвд 15803-20 ','КГ ',2.08,14937,'Сеялка спу-4д ',0.50,1.04)
INSERT INTO CRAS VALUES (36708,'Полиэт. пэвд 15803-20 ','КГ ',2.08,14953,'Сеялка спу-6д-01 ',0.33,0.69)
INSERT INTO CRAS VALUES (36708,'Полиэт. пэвд 15803-20 ','КГ ',2.08,14954,'Сеялка спу-6л-01 ',0.11,0.23)
INSERT INTO CRAS VALUES (36708,'Полиэт. пэвд 15803-20 ','КГ ',2.08,14936,'Сеялка ств-12 ',0.74,1.55)
INSERT INTO CRAS VALUES (931,'Полиэт.желт.пэвд 15803-20 ','КГ ',4.33,14936,'Сеялка ств-12 ',0.01,0.04)
INSERT INTO CRAS VALUES (36708,'Полиэт.желт.пэвд 15803-20 ','КГ ',2.08,14936,'Сеялка ств-12 ',0.84,1.75)
INSERT INTO CRAS VALUES (36707,'Полиэтилен 277-73 ','КГ ',2.79,14937,'Сеялка спу-4д ',0.71,1.99)
INSERT INTO CRAS VALUES (36707,'Полиэтилен 277-73 ','КГ ',2.79,14953,'Сеялка спу-6д-01 ',0.32,0.90)
INSERT INTO CRAS VALUES (36707,'Полиэтилен 277-73 ','КГ ',2.79,14954,'Сеялка спу-6л-01 ',0.11,0.30)
INSERT INTO CRAS VALUES (36707,'Полиэтилен 277-73 ','КГ ',2.79,14936,'Сеялка ств-12 ',0.57,1.59)
INSERT INTO CRAS VALUES (30477,'Резина 7-ирп-1347 ','КГ ',5.59,14937,'Сеялка спу-4д ',3.36,18.78)
INSERT INTO CRAS VALUES (30477,'Резина 7-ирп-1347 ','КГ ',5.59,14953,'Сеялка спу-6д-01 ',0.30,1.68)
INSERT INTO CRAS VALUES (30477,'Резина 7-ирп-1347 ','КГ ',5.59,14954,'Сеялка спу-6л-01 ',0.10,0.56)
INSERT INTO CRAS VALUES (36742,'Резиновая смесь 7-B-14 ','КГ ',4.96,14937,'Сеялка спу-4д ',0.09,0.45)
INSERT INTO CRAS VALUES (36742,'Резиновая смесь 7-B-14 ','КГ ',4.96,14953,'Сеялка спу-6д-01 ',0.04,0.19)
INSERT INTO CRAS VALUES (36742,'Резиновая смесь 7-B-14 ','КГ ',4.96,14954,'Сеялка спу-6л-01 ',0.01,0.06)
INSERT INTO CRAS VALUES (36742,'Резиновая смесь 7-B-14 ','КГ ',4.96,14936,'Сеялка ств-12 ',2.24,11.11)
INSERT INTO CRAS VALUES (30477,'Смесь резин. Vб-22-14-781 ','КГ ',5.59,14937,'Сеялка спу-4д ',8.15,45.58)
INSERT INTO CRAS VALUES (30477,'Смесь резин. Vб-22-14-781 ','КГ ',5.59,14953,'Сеялка спу-6д-01 ',5.24,29.30)
INSERT INTO CRAS VALUES (30477,'Смесь резин. Vб-22-14-781 ','КГ ',5.59,14954,'Сеялка спу-6л-01 ',1.75,9.77)
INSERT INTO CRAS VALUES (30225,'Смесь резиновая я-7317(ф)-VII-','КГ ',5.45,14937,'Сеялка спу-4д ',2.78,15.15)
INSERT INTO CRAS VALUES (30225,'Смесь резиновая я-7317(ф)-VII-','КГ ',5.45,14953,'Сеялка спу-6д-01 ',6.18,33.69)
INSERT INTO CRAS VALUES (30225,'Смесь резиновая я-7317(ф)-VII-','КГ ',5.45,14954,'Сеялка спу-6л-01 ',2.06,11.23)
INSERT INTO CRAS VALUES (30225,'Смесь резиновая я-7317(ф)-VII-','КГ ',5.45,14936,'Сеялка ств-12 ',15.83,86.27)
INSERT INTO CRAS VALUES (931,'Супер концент.2600 желтый ','КГ ',4.33,14936,'Сеялка ств-12 ',0.01,0.04)
INSERT INTO CRAS VALUES (655,'Суперконцентрат скгп-501 синий','КГ ',11.88,14937,'Сеялка спу-4д ',0.79,9.40)
INSERT INTO CRAS VALUES (655,'Суперконцентрат скгп-501 синий','КГ ',11.88,14953,'Сеялка спу-6д-01 ',0.77,9.11)
INSERT INTO CRAS VALUES (655,'Суперконцентрат скгп-501 синий','КГ ',11.88,14954,'Сеялка спу-6л-01 ',0.26,3.04)
INSERT INTO CRAS VALUES (655,'Суперконцентрат скгп-501 синий','КГ ',11.88,14936,'Сеялка ств-12 ',0.26,3.09)
INSERT INTO CRAS VALUES (930,'Суперконц.черный MAXITEN ','КГ ',1.92,14936,'Сеялка ств-12 ',0.30,0.58)
* ФОРМИРУЕМ ЗАПИСИ ДЛЯ ИТОГОВОЙ СТРОКИ И ИТОГОВОГО СТОЛБЦА
INSERT INTO CRAS SELECT 999999,PADR('Итого по изделию',30)," ",CAST(0 as N(18,2)),ID_RAS,NAMR,SUM(KOL),SUM(SUMA) FROM CRAS GROUP BY 1,2,3,4,5,6
INSERT INTO CRAS SELECT ID_TOV,NMAT,ED_IZM,CENA,999999,PADR('Итого материала',30),SUM(KOL),SUM(SUMA) FROM CRAS GROUP BY 1,2,3,4,5,6
*СТОЛБЦЫ БУДУЩЕЙ ШАХМАТКИ ПОЛУЧИМ ОТСЮДА
SELECT DISTINCT ID_RAS,NAMR FROM cras INTO CURSOR CID
* НАЧИНАЕМ ФОРМИРОВАТЬ ТЕКСТ ЗАПРОСА ДЛЯ ШАХМАТКИ
TEXT TO lcSQLSelectString TEXTMERGE NOSHOW
SELECT ID_TOV,NMAT,ED_IZM,CENA
ENDTEXT
*ФОРМИРУЕМ ТЕКСТ ЗАПРОСА ДЛЯ ПОСТРОЕНИЯ СТОЛБЦОВ ШАХМАТКИ
SELECT CID
SCAN
TEXT TO lcSQLSelectString ADDITIVE TEXTMERGE NOSHOW
,SUM(IIF(ID_RAS = <<CID.ID_RAS>>,KOL*1,KOL*0)) K<<CID.ID_RAS>>,SUM(IIF(ID_RAS = <<CID.ID_RAS>>,SUMA*1,SUMA*0)) <<CHRTRAN(RTRIM(CID.NAMR)," -","__")>>
ENDTEXT
ENDSCAN
TEXT TO lcSQLSelectString ADDITIVE TEXTMERGE NOSHOW
FROM CRAS GROUP BY 1,2,3,4 INTO CURSOR SAXM
ENDTEXT
=EXECSCRIPT(lcSQLSelectString )
BROW