Форма реализация газа с разбивкой по контрагентам
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Option Compare Database

Private Sub Кнопка10_Click()

' сделать активным поле, в которое нужно ввести дату

Поле1.SetFocus

' открыть форму ввода даты

DoCmd.OpenForm "Календарь"

End Sub

Private Sub Кнопка13_Click()

' сделать активным поле, в которое нужно ввести дату

Поле2.SetFocus

' открыть форму ввода даты

DoCmd.OpenForm "Календарь"

End Sub

Private Sub Кнопка7_Click()

On Error GoTo Err_Кнопка7_Click

Dim stDocName As String

stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(67) & ChrW(1056) & ChrW(1072) & ChrW(1079) & ChrW(1073) & ChrW(1080) & ChrW(1074) & ChrW(1082) & ChrW(1086) & ChrW(1081) & ChrW(1055) & ChrW(1086) & ChrW(1050) & ChrW(1083) & ChrW(1080) & ChrW(1077) & ChrW(1085) & ChrW(1090) & ChrW(1072) & ChrW(1084)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка7_Click:

Exit Sub

Err_Кнопка7_Click:

MsgBox Err.Description

Resume Exit_Кнопка7_Click

End Sub

 

Форма сменный отчет

Option Compare Database

Private Sub Кнопка2_Click()

On Error GoTo Err_Кнопка2_Click

Dim stDocName As String

stDocName = ChrW(1047) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1057) & ChrW(1084) & ChrW(1077) & ChrW(1085) & ChrW(1085) & ChrW(1099) & ChrW(1081) & ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(50)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка2_Click:

Exit Sub

Err_Кнопка2_Click:

MsgBox Err.Description

Resume Exit_Кнопка2_Click

End Sub



Состояние склада

Option Compare Database

Private Sub Кнопка7_Click()

On Error GoTo Err_Кнопка7_Click

Dim stDocName As String

DoCmd.OpenReport [ОтчетСостояниеСклада], acPreview

Exit_Кнопка7_Click:

Exit Sub

Err_Кнопка7_Click:

MsgBox Err.Description

Resume Exit_Кнопка7_Click

End Sub

Private Sub Кнопка10_Click()

' сделать активным поле, в которое нужно ввести дату

Поле1.SetFocus

' открыть форму ввода даты

DoCmd.OpenForm "Календарь"

End Sub

Private Sub Кнопка8_Click()

On Error GoTo Err_Кнопка8_Click

Dim stDocName As String

stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1057) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1086) & ChrW(1103) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(1057) & ChrW(1082) & ChrW(1083) & ChrW(1072) & ChrW(1076) & ChrW(1072)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка8_Click:

Exit Sub

Err_Кнопка8_Click:

MsgBox Err.Description

Resume Exit_Кнопка8_Click

End Sub

Серверное приложение главного офиса:

Главная форма :

Option Compare Database

Private Sub Кнопка0_Click()

On Error GoTo Err_Кнопка0_Click

DoCmd.RunSQL "insert"

Exit_Кнопка0_Click:

Exit Sub

Err_Кнопка0_Click:

MsgBox Err.Description

Resume Exit_Кнопка0_Click

End Sub

Private Sub Кнопка13_Click()

On Error GoTo Err_Кнопка13_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка13_Click:

Exit Sub

Err_Кнопка13_Click:

MsgBox Err.Description

Resume Exit_Кнопка13_Click

End Sub

Private Sub Кнопка14_Click()

On Error GoTo Err_Кнопка14_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1044) & ChrW(1086) & ChrW(1083) & ChrW(1078) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка14_Click:

Exit Sub

Err_Кнопка14_Click:

MsgBox Err.Description

Resume Exit_Кнопка14_Click

End Sub

Private Sub Кнопка15_Click()

On Error GoTo Err_Кнопка15_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1054) & ChrW(1057) & ChrW(1042)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка15_Click:

Exit Sub

Err_Кнопка15_Click:

MsgBox Err.Description

Resume Exit_Кнопка15_Click

End Sub

Private Sub Кнопка20_Click()

On Error GoTo Err_Кнопка20_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка20_Click:

Exit Sub

Err_Кнопка20_Click:

MsgBox Err.Description

Resume Exit_Кнопка20_Click

End Sub

Private Sub Кнопка21_Click()

On Error GoTo Err_Кнопка21_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1044) & ChrW(1086) & ChrW(1083) & ChrW(1078) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка21_Click:

Exit Sub

Err_Кнопка21_Click:

MsgBox Err.Description

Resume Exit_Кнопка21_Click

End Sub

Private Sub Кнопка22_Click()

On Error GoTo Err_Кнопка22_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1054) & ChrW(1057) & ChrW(1042)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка22_Click:

Exit Sub

Err_Кнопка22_Click:

MsgBox Err.Description

Resume Exit_Кнопка22_Click

End Sub

Private Sub Кнопка28_Click()

On Error GoTo Err_Кнопка28_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка28_Click:

Exit Sub

Err_Кнопка28_Click:

MsgBox Err.Description

Resume Exit_Кнопка28_Click

End Sub

Private Sub Кнопка29_Click()

On Error GoTo Err_Кнопка29_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1054) & ChrW(1087) & ChrW(1083) & ChrW(1072) & ChrW(1090) & ChrW(1099) & ChrW(32) & ChrW(1082) & ChrW(1086) & ChrW(1085) & ChrW(1090) & ChrW(1088) & ChrW(1072) & ChrW(1075) & ChrW(1077) & ChrW(1085) & ChrW(1090) & ChrW(1086) & ChrW(1074)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка29_Click:

Exit Sub

Err_Кнопка29_Click:

MsgBox Err.Description

Resume Exit_Кнопка29_Click

End Sub

Private Sub Кнопка34_Click()

On Error GoTo Err_Кнопка34_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1044) & ChrW(1086) & ChrW(1083) & ChrW(1078) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка34_Click:

Exit Sub

Err_Кнопка34_Click:

MsgBox Err.Description

Resume Exit_Кнопка34_Click

End Sub

Private Sub Кнопка35_Click()

On Error GoTo Err_Кнопка35_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = ChrW(1054) & ChrW(1057) & ChrW(1042)

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка35_Click:

Exit Sub

Err_Кнопка35_Click:

MsgBox Err.Description

Resume Exit_Кнопка35_Click

End Sub

 

Форма должники :

Option Compare Database

Private Sub Кнопка7_Click()

On Error GoTo Err_Кнопка7_Click

Dim stDocName As String

DoCmd.OpenReport [ОтчетСостояниеСклада], acPreview

Exit_Кнопка7_Click:

Exit Sub

Err_Кнопка7_Click:

MsgBox Err.Description

Resume Exit_Кнопка7_Click

End Sub

Private Sub Кнопка8_Click()

On Error GoTo Err_Кнопка8_Click

Dim stDocName As String

stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1057) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1086) & ChrW(1103) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(1057) & ChrW(1082) & ChrW(1083) & ChrW(1072) & ChrW(1076) & ChrW(1072)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка8_Click:

Exit Sub

Err_Кнопка8_Click:

MsgBox Err.Description

Resume Exit_Кнопка8_Click

End Sub

Private Sub Кнопка5_Click()

' сделать активным поле, в которое нужно ввести дату

Поле1.SetFocus

' открыть форму ввода даты

DoCmd.OpenForm "Календарь"

End Sub

Private Sub Кнопка9_Click()

On Error GoTo Err_Кнопка9_Click

Dim stDocName As String

stDocName = ChrW(1047) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1044) & ChrW(1086) & ChrW(1083) & ChrW(1078) & ChrW(1085) & ChrW(1080) & ChrW(1082) & ChrW(1080)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка9_Click:

Exit Sub

Err_Кнопка9_Click:

MsgBox Err.Description

Resume Exit_Кнопка9_Click

End Sub

 

Форма ОСВ

Option Compare Database

Private Sub Calendar4_Updated(Code As Integer)

MsgBox Format(Calendar4.Object.Value, "dd/mm/yy")

ДатаОСВ = Format(Calendar4.Object.Value, "dd/mm/yy")

End Sub

' Изменяет формат отображения даты

Private Sub Form_Open(Cancel As Integer)

Form_ОСВ!ДатаОСВ.Format = "mmmm yyyy"

End Sub

Private Sub Кнопка3_Click()

On Error GoTo Err_Кнопка3_Click

Dim stDocName As String

stDocName = ChrW(1079) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1054) & ChrW(1057) & ChrW(1042) & ChrW(95) & ChrW(1087) & ChrW(1077) & ChrW(1088) & ChrW(1077) & ChrW(1082) & ChrW(1088) & ChrW(1077) & ChrW(1089) & ChrW(1090) & ChrW(1085) & ChrW(1099) & ChrW(1081)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка3_Click:

Exit Sub

Err_Кнопка3_Click:

MsgBox Err.Description

Resume Exit_Кнопка3_Click

End Sub

' кнопка вызова формы с календарём

Private Sub Кнопка5_Click()

' сделать активным поле, в которое нужно ввести дату

ДатаОСВ.SetFocus

' открыть форму ввода даты

DoCmd.OpenForm "Календарь"

End Sub

 

Форма остатки

Option Compare Database

Private Sub Кнопка7_Click()

On Error GoTo Err_Кнопка7_Click

Dim stDocName As String

DoCmd.OpenReport [ОтчетСостояниеСклада], acPreview

Exit_Кнопка7_Click:

Exit Sub

Err_Кнопка7_Click:

MsgBox Err.Description

Resume Exit_Кнопка7_Click

End Sub

Private Sub Кнопка8_Click()

On Error GoTo Err_Кнопка8_Click

Dim stDocName As String

stDocName = ChrW(1054) & ChrW(1090) & ChrW(1095) & ChrW(1077) & ChrW(1090) & ChrW(1057) & ChrW(1086) & ChrW(1089) & ChrW(1090) & ChrW(1086) & ChrW(1103) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(1057) & ChrW(1082) & ChrW(1083) & ChrW(1072) & ChrW(1076) & ChrW(1072)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка8_Click:

Exit Sub

Err_Кнопка8_Click:

MsgBox Err.Description

Resume Exit_Кнопка8_Click

End Sub

Private Sub Кнопка10_Click()

On Error GoTo Err_Кнопка10_Click

Dim stDocName As String

stDocName = [ЗапросОстатки]

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка10_Click:

Exit Sub

Err_Кнопка10_Click:

MsgBox Err.Description

Resume Exit_Кнопка10_Click

End Sub

Private Sub Кнопка11_Click()

On Error GoTo Err_Кнопка11_Click

Dim stDocName As String

stDocName = ChrW(1047) & ChrW(1072) & ChrW(1087) & ChrW(1088) & ChrW(1086) & ChrW(1089) & ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка11_Click:

Exit Sub

Err_Кнопка11_Click:

MsgBox Err.Description

Resume Exit_Кнопка11_Click

End Sub

Private Sub Кнопка12_Click()

On Error GoTo Err_Кнопка12_Click

Dim stDocName As String

stDocName = ChrW(1044) & ChrW(1080) & ChrW(1072) & ChrW(1075) & ChrW(1088) & ChrW(1072) & ChrW(1084) & ChrW(1084) & ChrW(1072) & ChrW(1054) & ChrW(1089) & ChrW(1090) & ChrW(1072) & ChrW(1090) & ChrW(1082) & ChrW(1080)

DoCmd.OpenReport stDocName, acPreview

Exit_Кнопка12_Click:

Exit Sub

Err_Кнопка12_Click:

MsgBox Err.Description

Resume Exit_Кнопка12_Click

End Sub

Private Sub Кнопка5_Click()

' сделать активным поле, в которое нужно ввести дату

Поле1.SetFocus

' открыть форму ввода даты

DoCmd.OpenForm "Календарь"

End Sub

 



Приложение 2

Запросы:

Клиентское приложение:

 

Выручка за смену по товарам:

SELECT DateValue(Продажа.Дата) AS Выражение1, Продажа.КодНоменклатуры, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Константы.КодЗаправки

FROM Продажа, Константы

WHERE (((Продажа.Дата)>All (select Начало from Смены Order by Начало desc)))

GROUP BY DateValue(Продажа.Дата), Продажа.КодНоменклатуры, Константы.КодЗаправки;

Выручка по дням по товарам:

SELECT DateValue(Продажа.Дата) AS Выражение1, Номенклатура.Наименование, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость]

FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры

GROUP BY DateValue(Продажа.Дата), Номенклатура.Наименование;

 

Запрос с разбивкой поклиентам:

SELECT Контрагенты.Наименование, Sum(Продажа.Количество) AS Доза, Sum(Продажа.Стоимость) AS Сумма, Count(Продажа.КодКонтрагента) AS [Кол-во]

FROM Номенклатура INNER JOIN (Контрагенты INNER JOIN Продажа ON Контрагенты.КодКонтрагента = Продажа.КодКонтрагента) ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры

WHERE (((Продажа.Дата)>[Forms]![РеализацияГазаСРазбивкойПоКлиентам]![Поле1] And (Продажа.Дата)<[Forms]![РеализацияГазаСРазбивкойПоКлиентам]![Поле2]) AND ((Продажа.КодНоменклатуры)=1))

GROUP BY Контрагенты.Наименование;

 

МатОтчет:

SELECT ЗапросМатОтчетОстатокНач.Наименование, ЗапросМатОтчетОстатокНач.[Остаток(нач)], ЗапросМатОтчетПриход.ПриходОб, ЗапросМатОтчетПродажа.ПродажаОб, ЗапросМатОтчетКон.[Остаток(кон)]

FROM ((ЗапросМатОтчетПриход RIGHT JOIN ЗапросМатОтчетОстатокНач ON ЗапросМатОтчетПриход.Наименование = ЗапросМатОтчетОстатокНач.Наименование) LEFT JOIN ЗапросМатОтчетПродажа ON ЗапросМатОтчетОстатокНач.Наименование = ЗапросМатОтчетПродажа.Наименование) LEFT JOIN ЗапросМатОтчетКон ON ЗапросМатОтчетОстатокНач.Наименование = ЗапросМатОтчетКон.Наименование;

 

МатОтчет1:

SELECT Номенклатура.Наименование, Sum(Приход.Количество) AS нач

FROM Номенклатура LEFT JOIN Приход ON Номенклатура.КодНоменклатуры=Приход.КодНоменклатуры

WHERE (((Приход.ДатаПрихода)<Forms!МатериальныйОтчет!Поле1))

GROUP BY Номенклатура.Наименование;

 

МатОтчет2:

SELECT Номенклатура.Наименование, Sum(Продажа.Количество)*(-1) AS нач

FROM Номенклатура LEFT JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры

WHERE (((Продажа.Дата)<Forms!МатериальныйОтчет!Поле1))

GROUP BY Номенклатура.Наименование;

 

МатОтчет3:

SELECT Номенклатура.Наименование, Sum(Приход.Количество) AS [Приход(кон)]

FROM Номенклатура LEFT JOIN Приход ON Номенклатура.КодНоменклатуры = Приход.КодНоменклатуры

WHERE (((Приход.ДатаПрихода)<=[Forms]![МатериальныйОтчет]![Поле2]))

GROUP BY Номенклатура.Наименование;

 

МатОтчет4:

SELECT Номенклатура.Наименование, Sum(Продажа.Количество)*(-1) AS [Расход(кон)]

FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры

WHERE (((Продажа.Дата)<=[Forms]![МатериальныйОтчет]![Поле2]))

GROUP BY Номенклатура.Наименование;

МатОтчет контрагенты:

SELECT ЗапросМатОтчет3.Наименование, (ЗапросМатОтчет3.[Приход(кон)]+ЗапросМатОтчет4.[Расход(кон)]) AS [Остаток(кон)]

FROM ЗапросМатОтчет3 INNER JOIN ЗапросМатОтчет4 ON ЗапросМатОтчет3.Наименование=ЗапросМатОтчет4.Наименование;

 

МатОтчет остаток начальный:

SELECT ЗапросМатОтчет1.Наименование, Sum(ЗапросМатОтчет1.нач+ЗапросМатОтчет2.нач) AS [Остаток(нач)]

FROM ЗапросМатОтчет1 LEFT JOIN ЗапросМатОтчет2 ON ЗапросМатОтчет1.Наименование = ЗапросМатОтчет2.Наименование

GROUP BY ЗапросМатОтчет1.Наименование;

МатОтчет приход:

SELECT Номенклатура.Наименование, Sum(Приход.Количество) AS ПриходОб

FROM Номенклатура LEFT JOIN Приход ON Номенклатура.КодНоменклатуры=Приход.КодНоменклатуры

WHERE (((Приход.ДатаПрихода)>=Forms!МатериальныйОтчет!Поле1) And ((Приход.ДатаПрихода)<=Forms!МатериальныйОтчет!Поле2))

GROUP BY Номенклатура.Наименование;

 

МатОтчет продажа:

SELECT Номенклатура.Наименование, Sum(Продажа.Количество) AS ПродажаОб

FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры

WHERE (((Продажа.Дата)>=Forms!МатериальныйОтчет!Поле1) And ((Продажа.Дата)<=Forms!МатериальныйОтчет!Поле2))

GROUP BY Номенклатура.Наименование;

 

Остатки:

SELECT КодЗаправки AS K1, Alias.кодНоменклатуры AS N, now() AS D, Sum(K) AS S

FROM Константы, [SELECT приход.кодНоменклатуры , sum(количество) as K

from (приход INNER JOIN Номенклатура on приход.КодНоменклатуры=Номенклатура.КодНоменклатуры)

where Номенклатура.Товар=True

group by приход.кодНоменклатуры

union (SELECT продажа.кодНоменклатуры , sum(количество)*(-1) as K from (продажа INNER JOIN Номенклатура on продажа.КодНоменклатуры=Номенклатура.КодНоменклатуры)

where Номенклатура.Товар=True

group by продажа.кодНоменклатуры) ]. AS Alias

GROUP BY КодЗаправки, Alias.кодНоменклатуры;

Продажа операторами:

SELECT Сотрудники.Фамилия, DateValue(Продажа.Дата) AS Выражение1, Sum(Продажа.Количество) AS [Количество номен-ры], Count(Продажа.Количество) AS Количество

FROM Сотрудники INNER JOIN (Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры) ON Сотрудники.КодСотрудника=Продажа.КодСотрудника

WHERE (Forms!ПродажаОператорами!ПолеСоСписком10=Номенклатура.КодНоменклатуры) And (((Продажа.Дата)>Forms!ПродажаОператорами!Поле1 And (Продажа.Дата)<Forms!ПродажаОператорами!Поле2))

GROUP BY Сотрудники.Фамилия, DateValue(Продажа.Дата);

 

Реализация газа общий:

SELECT ЗапросРеализацияГазаПриход.Приход AS [Приход газа], ЗапросРеализацияГазаПродажа.Продажа AS [Продажа газа], РГКС.[Кон остаток], РГНС.[Нач остаток]

FROM ЗапросРеализацияГазаПриход, ЗапросРеализацияГазаПродажа, РГКС, РГНС;

 

Реализация газа приход:

SELECT iif((Sum(количество)>0),Sum(количество),0) AS Приход

FROM Номенклатура INNER JOIN приход ON Номенклатура.КодНоменклатуры=приход.КодНоменклатуры

WHERE (((приход.ДатаПрихода)>=(SELECT Смены.Начало FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) ) And (приход.ДатаПрихода)<=(SELECT Смены.Окончание FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) )) AND ((Номенклатура.Наименование)="Газ"));

 

Реализация газа продажа:

SELECT Iif((Sum(количество)>0),Sum(количество),0) AS Продажа

FROM Номенклатура INNER JOIN продажа ON Номенклатура.КодНоменклатуры=продажа.КодНоменклатуры

WHERE (((продажа.Дата)>=(SELECT Смены.Начало FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) ) And (продажа.Дата)<=(SELECT Смены.Окончание FROM Смены WHERE (((Смены.КодСмены)=[Forms]![РеализацияГаза]![ПолеСоСписком0])) )) AND ((Номенклатура.Наименование)="Газ"));

 

Реализация газа:

SELECT Switch(Продажа.Безнал=0,"НАЛИЧНЫЕ",Продажа.Безнал=-1,"БЕЗНАЛ") AS Оплата, Номенклатура.Цена, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость], Count(Продажа.Количество) AS [Count-Количество]

FROM Номенклатура LEFT JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры

WHERE (((Номенклатура.Наименование)="Газ") And ((Продажа.КодСмены)=Forms!РеализацияГаза!ПолеСоСписком0))

GROUP BY Номенклатура.Цена, Продажа.Безнал, Продажа.КодСмены;

Сменный отчет:

SELECT Номенклатура.Наименование, Sum(Продажа.Количество) AS [Сум-Количество], Sum(Продажа.Стоимость) AS [Сум-Стоимость]

FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры=Продажа.КодНоменклатуры

WHERE (((Продажа.Дата)>(select max(Начало)from Смены)))

GROUP BY Номенклатура.Наименование;

Сменный отчет1:

SELECT Смены.Начало, Смены.Окончание, Сотрудники.Фамилия, Номенклатура.Наименование, Контрагенты.Безнал, Контрагенты.Наименование, Sum(Продажа.Количество) AS [Sum-Количество], Sum(Продажа.Стоимость) AS [Sum-Стоимость]

FROM Сотрудники INNER JOIN ((Контрагенты INNER JOIN (Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры) ON Контрагенты.КодКонтрагента = Продажа.КодКонтрагента) INNER JOIN Смены ON Продажа.КодСмены = Смены.КодСмены) ON Сотрудники.КодСотрудника = Смены.КодСотрудника

WHERE (((Продажа.КодСмены)=[Forms]![СменныйОтчет]![ПолеСоСписком0]))

GROUP BY Смены.Начало, Смены.Окончание, Сотрудники.Фамилия, Номенклатура.Наименование, Контрагенты.Безнал, Контрагенты.Наименование;

 

Состояние склада:

SELECT Номенклатура.Наименование AS Наименование, Номенклатура.Цена AS Цена, Sum([Кол-во]) AS Склад, Номенклатура.Цена*Sum([Кол-во]) AS Сумма

FROM [SELECT Номенклатура.Наименование, Номенклатура.Цена, sum(Приход.Количество) as [Кол-во]

FROM (Номенклатура INNER JOIN Приход ON Номенклатура.КодНоменклатуры = Приход.КодНоменклатуры)

WHERE (((Номенклатура.Товар)=Yes)) and (Приход.ДатаПрихода<=[Forms]![СостояниеСклада]![Поле1])

group by Номенклатура.Наименование, Номенклатура.Цена

UNION SELECT Номенклатура.Наименование, Номенклатура.Цена, sum(Продажа.Количество)*(-1) as [Кол-во]

FROM (Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры)

WHERE (((Номенклатура.Товар)=Yes)) and (Продажа.Дата<=[Forms]![СостояниеСклада]![Поле1])

group by Номенклатура.Наименование, Номенклатура.Цена]. AS Alias

GROUP BY Номенклатура.Наименование, Номенклатура.Цена;

 

Последняя смена:

SELECT Max(Смены.Начало) AS [Max-Начало], Сотрудники.Фамилия

FROM Сотрудники INNER JOIN Смены ON Сотрудники.КодСотрудника = Смены.КодСотрудника

GROUP BY Сотрудники.Фамилия;

РГНС:

SELECT Sum([Нач смены]) AS [Нач остаток]

FROM [SELECT Sum(Приход.Количество) AS [Нач смены]

FROM Номенклатура INNER JOIN Приход ON Номенклатура.КодНоменклатуры = Приход.КодНоменклатуры

where (((Номенклатура.Наименование)="Газ") AND ((Приход.ДатаПрихода)<(select начало from смены where кодсмены=[Forms]![РеализацияГаза]![ПолеСоСписком0])))

union

SELECT Sum(Продажа.Количество)*(-1) AS [Нач смены]

FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры

where (((Номенклатура.Наименование)="Газ") AND ((Продажа.Дата)<(select начало from смены where кодсмены=[Forms]![РеализацияГаза]![ПолеСоСписком0])))

]. AS Aias1;

 

РГКС:

SELECT Sum([%$##@_Alias].[Нач смены]) AS [Кон остаток]

FROM [SELECT Sum(Приход.Количество) AS [Нач смены]

FROM Номенклатура INNER JOIN Приход ON Номенклатура.КодНоменклатуры = Приход.КодНоменклатуры

where (((Номенклатура.Наименование)="Газ") AND ((Приход.ДатаПрихода)<(select окончание from смены where кодсмены=[Forms]![РеализацияГаза]![ПолеСоСписком0])))

UNION SELECT Sum(Продажа.Количество)*(-1) AS [Нач смены]

FROM Номенклатура INNER JOIN Продажа ON Номенклатура.КодНоменклатуры = Продажа.КодНоменклатуры

where (((Номенклатура.Наименование)="Газ") AND ((Продажа.Дата)<(select окончание from смены where кодсмены=[Forms]![РеализацияГаза]![ПолеСоСписком0])))

]. AS [%$##@_Alias];

 


Цена номенклатуры:

SELECT Номенклатура.Цена

FROM Номенклатура

WHERE (((Номенклатура.КодНоменклатуры)=[Forms]![Продажа]![ПолеСоСписком12]));

 

Серверное приложение:

 

Должники:

SELECT Контрагенты.Наименование, Sum(РасчетыКонтрагенты.Сумма)*(-1) AS [Сумма долга]

FROM Контрагенты INNER JOIN РасчетыКонтрагенты ON Контрагенты.КодКонтрагента = РасчетыКонтрагенты.КодКонтрагента

WHERE (((РасчетыКонтрагенты.Дата)<=([Forms]![Должники]![Поле1])+1))

GROUP BY Контрагенты.Наименование

HAVING (((Sum(РасчетыКонтрагенты.Сумма))<0));

 

Должники текущие:

SELECT Контрагенты.Наименование, Sum(РасчетыКонтрагенты.Сумма)*(-1) AS [Сумма долга]

FROM Контрагенты INNER JOIN РасчетыКонтрагенты ON Контрагенты.КодКонтрагента = РасчетыКонтрагенты.КодКонтрагента

GROUP BY Контрагенты.Наименование

HAVING (((Sum(РасчетыКонтрагенты.Сумма))<0));

 

ОСВ :

PARAMETERS FORMS![ОСВ]![ДАТАОСВ] DateTime;

SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма), "3Обороты Дт"

FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента

where (Дата>=DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ]), 1)) and (Дата<DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ])+1,1 ))

group by Контрагенты.Наименование

having sum(РасчетыКонтрагенты.Сумма)>=0

union

SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма)*(-1),"4Обороты Кт"

FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента

where (Дата>=DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ]), 1)) and (Дата<DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ])+1,1 ))

group by Контрагенты.Наименование

having sum(РасчетыКонтрагенты.Сумма)<=0

union

SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма), "1Начало Дт"

FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента

where (Дата<DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ]), 1))

group by Контрагенты.Наименование

having sum(РасчетыКонтрагенты.Сумма)>=0

union

SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма)*(-1),"2Начало Кт"

FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента

where (Дата<DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ]), 1))

group by Контрагенты.Наименование

having sum(РасчетыКонтрагенты.Сумма)<=0

union

SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма), "5Конец Дт"

FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента

where (Дата<DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ])+1, 1))

group by Контрагенты.Наименование

having sum(РасчетыКонтрагенты.Сумма)>=0

UNION SELECT Контрагенты.Наименование,sum( РасчетыКонтрагенты.Сумма)*(-1),"6Конец Кт"

FROM РасчетыКонтрагенты inner join Контрагенты on РасчетыКонтрагенты.КодКонтрагента=Контрагенты.КодКонтрагента

where (Дата<DateSerial(year(FORMS![ОСВ]![ДАТАОСВ]), month(FORMS![ОСВ]![ДАТАОСВ])+1, 1))

group by Контрагенты.Наименование

having sum(РасчетыКонтрагенты.Сумма)<=0;

 

ОСВ перекрестный :

TRANSFORM Sum(запросОСВ.Expr1001) AS [Sum-Expr1001]

SELECT запросОСВ.Наименование AS Контрагенты

FROM запросОСВ

GROUP BY запросОСВ.НАименование

PIVOT запросОСВ.Expr1002;

 

Остатки:

SELECT Районы.Название, Номенклатура.Наименование, Остатки.Количество, Остатки.Дата

FROM Районы INNER JOIN (Номенклатура INNER JOIN (запрОстатки2 INNER JOIN Остатки ON (запрОстатки2.[Max-Дата] = Остатки.Дата) AND (запрОстатки2.КодЗаправки = Остатки.КодЗаправки) AND (запрОстатки2.КодНоменклатуры = Остатки.КодНоменклатуры)) ON Номенклатура.КодНоменклатуры = Остатки.КодНоменклатуры) ON Районы.КодРайона = Остатки.КодЗаправки;

 

Остатки1:

SELECT Районы.Название, Номенклатура.Наименование, Остатки.Количество, Остатки.Дата

FROM Районы INNER JOIN (Номенклатура INNER JOIN (запрОстатки3 INNER JOIN Остатки ON (запрОстатки3.[Max-Дата] = Остатки.Дата) AND (запрОстатки3.КодЗаправки = Остатки.КодЗаправки) AND (запрОстатки3.КодНоменклатуры = Остатки.КодНоменклатуры)) ON Номенклатура.КодНоменклатуры = Остатки.КодНоменклатуры) ON Районы.КодРайона = Остатки.КодЗаправки

WHERE (((Номенклатура.Наименование) Like "Г*"));

Остатки 2:

PARAMETERS [Forms]![Остатки]![Поле1] DateTime;

SELECT Остатки.КодНоменклатуры, Остатки.КодЗаправки, Max(Остатки.Дата) AS [Max-Дата]

FROM Остатки

WHERE (((Остатки.Дата)<=[Forms]![Остатки]![Поле1]))

GROUP BY Остатки.КодНоменклатуры, Остатки.КодЗаправки;


Остатки3:

SELECT Остатки.КодНоменклатуры, Остатки.КодЗаправки, Max(Остатки.Дата) AS [Max-Дата]

FROM Остатки

WHERE (((Остатки.Дата)<=now()))

GROUP BY Остатки.КодНоменклатуры, Остатки.КодЗаправки;

 

Расчеты контрагенты:

TRANSFORM Sum(РасчетыКонтрагенты.Сумма) AS [Sum-Сумма]

SELECT РасчетыКонтрагенты.КодКонтрагента, Sum(РасчетыКонтрагенты.Сумма) AS [Итоговое значение Сумма]

FROM РасчетыКонтрагенты

GROUP BY РасчетыКонтрагенты.КодКонтрагента

PIVOT Format([Дата],"mmm");



Дата: 2019-07-30, просмотров: 187.