1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543 |
- Imports System.Data.SqlClient
- Imports System.Reflection
- Imports Microsoft.Office.Interop.Excel.XlPaperSize
- Imports Microsoft.Office.Interop.Excel.XlPageOrientation
- Imports Microsoft.Office.Interop.Excel.XlOrder
- Imports Microsoft.Office.Interop.Excel.XlPrintErrors
- Imports Microsoft.Office.Core.XlHAlign
-
- Public Class frmMeasure
- Dim cmd As New SqlCommand
- Dim da As New SqlDataAdapter
- Dim sql As String
- Dim colorArray(10) As Color
- Dim conn As New SqlConnection
- Private Sub FrmMeasure_Load(sender As Object, e As EventArgs) Handles MyBase.Load
-
-
-
-
-
- If gUserName = "matchy" Then
-
-
- Button1.Visible = True
- Button2.Visible = True
- Button3.Visible = True
- dgv_su2.Visible = True
- dgv_TOTAL.Visible = True
- DGV_WB.Visible = True
-
- End If
-
-
- ' Me.MdiParent = FrmMDI
-
-
- Dim type As Type = dgv_measure.GetType()
- Dim pi As PropertyInfo = type.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
- pi.SetValue(dgv_measure, True, Nothing)
-
-
- Dim DT1 As New DataTable
- Dim DT2 As New DataTable
- Dim DT3 As New DataTable
-
- conn.ConnectionString = connstring
- conn.Open()
-
- cmd.Connection = conn
-
- Dim dr As SqlDataReader
-
- dgv_measure.RowTemplate.Height = 30
- dgv_measure.AllowUserToAddRows = False
-
- sql = "SELECT year(date) as 年, month(date) as 月 from rt_measure_daily group by year(date),month(date) order by year(date) desc,month(date) desc"
- cmd.CommandText = sql
- dr = cmd.ExecuteReader
-
- While dr.Read
-
- ListBox1.Items.Add(dr("年") & "/" & dr("月"))
-
- End While
- dr.Close()
-
-
-
- End Sub
-
- Private Sub dgv1_CellMouseUp(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgv1.CellMouseUp
-
-
- End Sub
-
- Private Sub dgv_measure_CellMouseUp(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgv_measure.CellMouseUp
-
-
-
- Dim dt1 As New DataTable
-
- sql = "SELECT class2 AS 类别, CAST(SUM(percents) * 100 AS numeric(10, 1)) AS 比例, CAST(SUM(price) / AVG(wb_weight) " &
- " AS numeric(10, 1)) AS 单位成本 " &
- " FROM (SELECT NO, CARD, P, AVG(ORDER_A) AS wb_weight, SUM(WEIGHT * price) AS price, SUM(WEIGHT) " &
- " / AVG(ORDER_A) AS percents, " &
- " CASE WHEN class1 LIKE N'%油脂%' THEN '油脂' WHEN (class1 = N'染料' OR " &
- " class1 LIKE N'%钛%') " &
- " THEN '染料' WHEN class1 = N'基础化工' THEN N'基础化工' ELSE '其他' END AS class2 " &
- " FROM (SELECT RT_SYS_CHEM_OUT.DATE, RT_SYS_CHEM_OUT.CHECKED, RT_SYS_CHEM_OUT.DEP, " &
- " RT_SYS_CHEM_OUT.NO, RT_SYS_CHEM_OUT.WH, RT_SYS_CHEM_OUT.CODE, " &
- " RT_SYS_CHEM_OUT.NAME, RT_SYS_CHEM_OUT.TYPE, RT_SYS_CHEM_OUT.UNIT, " &
- " RT_SYS_CHEM_OUT.LOT, RT_SYS_CHEM_OUT.WEIGHT, RT_SYS_CHEM_OUT.WEIGHT1, " &
- " RT_SYS_CHEM_OUT.P, RT_SYS_CHEM_OUT.CARD, RT_SYS_CHEM_OUT.DRUM, " &
- " RT_SYS_CHEM_OUT.ORDER_A, RT_SYS_CHEM_OUT.ID, RT_SYS_CHEM_MAIN.price, " &
- " RT_SYS_CHEM_MAIN.CLASS1 " &
- " FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN " &
- " RT_SYS_CHEM_MAIN ON " &
- " RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name " &
- " WHERE (RT_SYS_CHEM_OUT.CARD = '" & dgv_measure.Rows(dgv_measure.CurrentRow.Index).Cells("卡号").Value & "')) " &
- " AS derivedtbl_1 GROUP BY NO, CARD, P, CLASS1) AS derivedtbl_2 " &
- " GROUP BY CARD, P, class2 " &
- " ORDER BY 类别 DESC "
-
-
-
-
-
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt1)
-
- dgv1.DataSource = dt1
- End Sub
-
- Private Sub ListBox1_Click(sender As Object, e As EventArgs) Handles ListBox1.Click
-
- Dim dt1 As New DataTable
- Dim dt_MEASURE As New DataTable
- Dim p() As String
-
- ListBox2.Items.Clear()
-
-
- p = Split(ListBox1.Items(ListBox1.SelectedIndex).ToString, "/")
-
-
-
- Dim dr As SqlDataReader
-
-
-
- sql = "SELECT day(date) as day from rt_measure_daily where year(date)='" & p(0) & "' and month(date)='" & p(1) & "'group by day(date) order by day(date)"
- cmd.CommandText = sql
- dr = cmd.ExecuteReader
-
- While dr.Read
-
- ListBox2.Items.Add(dr("day"))
-
- End While
- dr.Close()
-
-
-
-
- End Sub
-
- Private Sub ListBox2_Click(sender As Object, e As EventArgs) Handles ListBox2.Click
-
-
-
- Dim dt_measure As New DataTable
-
-
- Dim p() As String
-
-
- p = Split(ListBox1.Items(ListBox1.SelectedIndex).ToString, "/")
-
-
-
- sql = "SELECT RT_MEASURE_DAILY.DATE AS 日期, RT_MEASURE_DAILY.CARD AS 卡号, RT_RETAN_RECORD.CUST AS 客户, " &
- " RT_RETAN_RECORD.TECH AS 技术员, RT_MEASURE_DAILY.COLOR AS 颜色, " &
- " RT_RETAN_RECORD.THICKNESS AS 厚度, RT_MEASURE_DAILY.SF AS 尺数, " &
- " RT_MEASURE_DAILY.WEIGHT AS 蓝皮重, RT_MEASURE_DAILY.SOURCE AS 皮源, " &
- " RT_MEASURE_DAILY.COMMENT1 AS 备注, cast(RT_RETAN_RECORD.PRICE/RT_MEASURE_DAILY.WEIGHT as numeric(10,1)) AS 蓝皮单价 " &
- " FROM RT_MEASURE_DAILY LEFT OUTER JOIN " &
- " RT_RETAN_RECORD ON RIGHT(RT_MEASURE_DAILY.CARD,10) = RIGHT(RT_RETAN_RECORD.CARD,10) where year(rt_measure_daily.date)='" & p(0) & "' And month(rt_measure_daily.date)='" & p(1) & "'" &
- " and day(RT_MEASURE_DAILY.date)='" & ListBox2.Items(ListBox2.SelectedIndex).ToString & "' ORDER BY 日期 DESC"
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt_measure)
-
-
- dt_measure.Columns.Add("基础")
- dt_measure.Columns.Add("染料")
- dt_measure.Columns.Add("油脂")
- dt_measure.Columns.Add("其他")
- dt_measure.Columns.Add("合计")
-
- dt_measure.Columns.Add("得革率")
- dt_measure.Columns.Add("量完尺数")
- dt_measure.Columns.Add("累加尺数")
- dt_measure.Columns.Add("每尺皮料")
- dt_measure.Columns.Add("每尺化料")
- dt_measure.Columns.Add("每尺染料")
- dt_measure.Columns.Add("每尺油脂")
- dt_measure.Columns.Add("每尺基础")
- dt_measure.Columns.Add("每尺其他")
-
-
-
-
-
-
- dgv_measure.DataSource = dt_measure '------打尺
- dgv_measure.Columns(0).Width = 80
- dgv_measure.Columns(1).Width = 130
- dgv_measure.Columns(2).Width = 80
- dgv_measure.Columns(3).Width = 70
- dgv_measure.Columns(4).Width = 120
- dgv_measure.Columns(5).Width = 60
- dgv_measure.Columns(6).Width = 80
- dgv_measure.Columns(7).Width = 80
- dgv_measure.Columns(8).Width = 80
- dgv_measure.Columns(9).Width = 60
-
- dgv_measure.Columns(10).Width = 80
- dgv_measure.Columns(11).Width = 65
- dgv_measure.Columns(12).Width = 65
- dgv_measure.Columns(13).Width = 65
-
-
- dgv_measure.Columns("每尺皮料").Width = 60
- dgv_measure.Columns("每尺化料").Width = 60
- dgv_measure.Columns("每尺染料").Width = 60
- dgv_measure.Columns("每尺基础").Width = 60
- dgv_measure.Columns("每尺其他").Width = 60
- dgv_measure.Columns("每尺油脂").Width = 60
-
-
-
- dgv_measure.Columns("基础").Visible = False
- dgv_measure.Columns("染料").Visible = False
- dgv_measure.Columns("油脂").Visible = False
- dgv_measure.Columns("其他").Visible = False
- dgv_measure.Columns("合计").Visible = False
- dgv_measure.Columns("累加尺数").Visible = False
- ' dgv_measure.Columns("备注").Visible = False
-
- ' dgv_measure.Columns("累加尺数").Visible = False
-
-
-
-
- Dim dr As SqlDataReader
-
- For x As Integer = 0 To dt_measure.Rows.Count - 1
- Dim dt1 As New DataTable
-
-
-
-
- 'If Microsoft.VisualBasic.Right(dt_measure.Rows(x).Item("卡号"), 10) = "1911133408" Then
-
- ' MsgBox("")
-
-
- 'End If
-
-
-
- 'sql = "select no from rt_sys_chem_out where card like '%" & Microsoft.VisualBasic.Right(dt_measure.Rows(x).Item("卡号"), 10) & "%'"
- 'cmd.CommandText = sql
- 'dr = cmd.ExecuteReader
-
- 'If dr.Read Then
-
- ' ' cal_chem
-
-
- 'End If
- 'dr.Close()
-
-
-
- sql = "SELECT 类别, SUM(比例) AS 比例, SUM(单位成本) AS 单位成本 from (SELECT class AS 类别, CAST(SUM(percents) * 100 AS numeric(10, 1)) AS 比例, CAST(SUM(price) / AVG(wb_weight) " &
- " AS numeric(10, 2)) AS 单位成本 " &
- " FROM (SELECT NO, P, AVG(ORDER_A) AS wb_weight, SUM(WEIGHT * price) AS price, SUM(WEIGHT) / AVG(ORDER_A) " &
- " AS percents, CASE WHEN class1 LIKE N'%油脂%' THEN '油脂' WHEN (class1 = N'染料' OR " &
- " class Like N'%钛%') THEN '染料' WHEN class1 = N'基础化工' THEN N'基础' ELSE '其他' END AS class " &
- " FROM (SELECT RT_SYS_CHEM_OUT.DATE, RT_SYS_CHEM_OUT.CHECKED, RT_SYS_CHEM_OUT.DEP, " &
- " RT_SYS_CHEM_OUT.NO, RT_SYS_CHEM_OUT.WH, RT_SYS_CHEM_OUT.CODE, " &
- " RIGHT(RT_SYS_CHEM_OUT.CARD, 10) AS CARD1, RT_SYS_CHEM_OUT.NAME, " &
- " RT_SYS_CHEM_OUT.TYPE, RT_SYS_CHEM_OUT.UNIT, RT_SYS_CHEM_OUT.LOT, " &
- " RT_SYS_CHEM_OUT.WEIGHT, RT_SYS_CHEM_OUT.WEIGHT1, RT_SYS_CHEM_OUT.P, " &
- " RT_SYS_CHEM_OUT.DRUM, RT_SYS_CHEM_OUT.ORDER_A, RT_SYS_CHEM_OUT.ID, " &
- " CASE WHEN new_price Is NULL THEN CAST(RT_SYS_CHEM_MAIN.price AS numeric(10, " &
- " 2)) ELSE CAST(new_price AS numeric(10, 2)) END AS price, " &
- " RT_SYS_CHEM_MAIN.CLASS1 " &
- " FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN " &
- " RT_SYS_CHEM_MAIN ON " &
- " RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name " &
- " WHERE (RIGHT(RT_SYS_CHEM_OUT.CARD,10) = '" & Microsoft.VisualBasic.Right(dt_measure.Rows(x).Item("卡号"), 10) & "')) AS derivedtbl_1 " &
- " GROUP BY CARD1, NO, P, CLASS1) AS derivedtbl_2 GROUP BY P, class ) as qq group by 类别"
-
-
-
-
- sql = "SELECT 类别, SUM(比例) AS 比例, SUM(单位成本) AS 单位成本
- FROM (SELECT class AS 类别, CAST(SUM(percents) * 100 AS numeric(10, 1)) AS 比例, CAST(SUM(price) / AVG(wb_weight) AS numeric(10, 2)) AS 单位成本
- FROM (SELECT NO, P, AVG(ORDER_A) AS wb_weight, SUM(WEIGHT * price) AS price, SUM(WEIGHT) / AVG(ORDER_A) AS percents,
- CASE WHEN class1 LIKE N'%油脂%' THEN '油脂' WHEN (class1 = N'染料' OR
- class1 LIKE N'%钛%') THEN '染料' WHEN class1 = N'基础化工' THEN N'基础' ELSE '其他' END AS class
- FROM (SELECT RT_SYS_CHEM_OUT.DATE, RT_SYS_CHEM_OUT.CHECKED, RT_SYS_CHEM_OUT.DEP, RT_SYS_CHEM_OUT.NO, RT_SYS_CHEM_OUT.WH, RT_SYS_CHEM_OUT.CODE,
- RIGHT(RT_SYS_CHEM_OUT.CARD, 10) AS CARD1, RT_SYS_CHEM_OUT.NAME, RT_SYS_CHEM_OUT.TYPE, RT_SYS_CHEM_OUT.UNIT, RT_SYS_CHEM_OUT.LOT,
- RT_SYS_CHEM_OUT.WEIGHT, RT_SYS_CHEM_OUT.WEIGHT1, RT_SYS_CHEM_OUT.P, RT_SYS_CHEM_OUT.DRUM, RT_SYS_CHEM_OUT.ORDER_A,
- RT_SYS_CHEM_OUT.ID, CASE WHEN new_price IS NULL THEN CAST(RT_SYS_CHEM_MAIN.price AS numeric(10, 2)) ELSE CAST(new_price AS numeric(10, 2))
- END AS price, RT_SYS_CHEM_MAIN.CLASS1
- FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN
- RT_SYS_CHEM_MAIN ON RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name
- WHERE (RIGHT(RT_SYS_CHEM_OUT.CARD, 10) = '" & Microsoft.VisualBasic.Right(dt_measure.Rows(x).Item("卡号"), 10) & "')) AS derivedtbl_1
- GROUP BY CARD1, NO, P, CLASS1) AS derivedtbl_2
- GROUP BY P, class) AS qq
- GROUP BY 类别"
-
-
-
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt1)
-
-
- For y As Integer = 0 To dt1.Rows.Count - 1
-
- Select Case dt1.Rows(y).Item("类别")
- Case "基础"
- dt_measure.Rows(x).Item("基础") = dt1.Rows(y).Item("单位成本")
- Case "染料"
- dt_measure.Rows(x).Item("染料") = dt1.Rows(y).Item("单位成本")
- Case "油脂"
- dt_measure.Rows(x).Item("油脂") = dt1.Rows(y).Item("单位成本")
- Case "其他"
- dt_measure.Rows(x).Item("其他") = dt1.Rows(y).Item("单位成本")
- End Select
- Next
-
-
-
- If IsDBNull(dt_measure.Rows(x).Item("基础")) Then
- dt_measure.Rows(x).Item("基础") = 0
- End If
-
- If IsDBNull(dt_measure.Rows(x).Item("染料")) Then
- dt_measure.Rows(x).Item("染料") = 0
- End If
-
- If IsDBNull(dt_measure.Rows(x).Item("油脂")) Then
- dt_measure.Rows(x).Item("油脂") = 0
- End If
-
- If IsDBNull(dt_measure.Rows(x).Item("其他")) Then
- dt_measure.Rows(x).Item("其他") = 0
- End If
-
-
- sql = "select sum(sf) as sf from rt_measure_daily where card='" & dt_measure.Rows(x).Item("卡号") & "' and comment1 like N'%完%'"
- cmd.CommandText = sql
-
- If IsDBNull(cmd.ExecuteScalar) Then
-
- sql = "select cast(sum(sf) as numeric(10,1)) as sf from rt_measure_daily where card='" & dt_measure.Rows(x).Item("卡号") & "'"
- cmd.CommandText = sql
- dt_measure.Rows(x).Item("累加尺数") = cmd.ExecuteScalar
- Else
-
- sql = "select cast(sum(sf) as numeric(10,1)) as sf from rt_measure_daily where RIGHT(card,10)='" & Microsoft.VisualBasic.Right(dt_measure.Rows(x).Item("卡号"), 10) & "'"
- cmd.CommandText = sql
- dt_measure.Rows(x).Item("量完尺数") = cmd.ExecuteScalar
-
-
-
- dt_measure.Rows(x).Item("每尺化料") = Math.Round((Val(dt_measure.Rows(x).Item("基础").ToString) + Val(dt_measure.Rows(x).Item("油脂").ToString) + Val(dt_measure.Rows(x).Item("染料").ToString) + Val(dt_measure.Rows(x).Item("其他").ToString)) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / Val(dt_measure.Rows(x).Item("量完尺数").ToString), 1)
- dt_measure.Rows(x).Item("每尺皮料") = Math.Round((Val(dt_measure.Rows(x).Item("蓝皮单价").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / dt_measure.Rows(x).Item("量完尺数").ToString), 1)
- dt_measure.Rows(x).Item("得革率") = Math.Round((Val(dt_measure.Rows(x).Item("量完尺数").ToString) / dt_measure.Rows(x).Item("蓝皮重").ToString), 2)
- dt_measure.Rows(x).Item("每尺染料") = Math.Round((Val(dt_measure.Rows(x).Item("染料").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / dt_measure.Rows(x).Item("量完尺数").ToString), 1)
- dt_measure.Rows(x).Item("每尺基础") = Math.Round((Val(dt_measure.Rows(x).Item("基础").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / dt_measure.Rows(x).Item("量完尺数").ToString), 1)
- dt_measure.Rows(x).Item("每尺油脂") = Math.Round((Val(dt_measure.Rows(x).Item("油脂").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / dt_measure.Rows(x).Item("量完尺数").ToString), 1)
- dt_measure.Rows(x).Item("每尺其他") = Math.Round((Val(dt_measure.Rows(x).Item("其他").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / dt_measure.Rows(x).Item("量完尺数").ToString), 1)
-
- End If
-
- dt_measure.Rows(x).Item("合计") = Val(dt_measure.Rows(x).Item("基础").ToString) + Val(dt_measure.Rows(x).Item("油脂").ToString) + Val(dt_measure.Rows(x).Item("染料").ToString) + Val(dt_measure.Rows(x).Item("其他").ToString)
-
-
- Next
-
-
-
-
-
-
- For y As Integer = 0 To dgv_measure.Rows.Count - 1
-
-
- If IsDBNull(dgv_measure.Rows(y).Cells("量完尺数").Value) Then
-
-
- If y <> 0 Then
- dgv_measure.CurrentCell = dgv_measure.Rows(0).Cells(0)
- dgv_measure.Rows(y).Visible = False
- End If
-
-
-
-
- End If
-
-
-
- Next
-
-
-
-
-
- End Sub
-
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
-
-
-
- Dim dt_measure As New DataTable
-
-
- Dim p() As String
-
-
- p = Split(ListBox1.Items(ListBox1.SelectedIndex).ToString, "/")
-
-
-
- sql = "SELECT RT_MEASURE_DAILY.DATE AS 日期, right(RT_MEASURE_DAILY.CARD,10) AS 卡号, RT_RETAN_RECORD.CUST AS 客户, " &
- " RT_RETAN_RECORD.TECH AS 技术员, RT_MEASURE_DAILY.COLOR AS 颜色, " &
- " RT_RETAN_RECORD.THICKNESS AS 厚度, RT_MEASURE_DAILY.SF AS 尺数, " &
- " case when (RT_MEASURE_DAILY.SOURCE like N'%改%' or RT_MEASURE_DAILY.SOURCE like N'%干%') then RT_MEASURE_DAILY.WEIGHT*1.6 else RT_MEASURE_DAILY.WEIGHT end AS 蓝皮重, RT_MEASURE_DAILY.SOURCE AS 皮源, " &
- " RT_MEASURE_DAILY.COMMENT1 AS 备注, cast(RT_RETAN_RECORD.PRICE/RT_MEASURE_DAILY.WEIGHT as numeric(10,1)) AS 蓝皮单价 " &
- " FROM RT_MEASURE_DAILY LEFT OUTER JOIN " &
- " RT_RETAN_RECORD ON right(RT_MEASURE_DAILY.CARD,10) = right(RT_RETAN_RECORD.CARD,10) where year(rt_measure_daily.date)='" & p(0) & "' And month(rt_measure_daily.date)='" & p(1) & "' ORDER BY 日期 DESC"
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt_measure)
-
-
- dt_measure.Columns.Add("基础")
- dt_measure.Columns.Add("染料")
- dt_measure.Columns.Add("油脂")
- dt_measure.Columns.Add("其他")
- dt_measure.Columns.Add("合计")
-
- dt_measure.Columns.Add("得革率")
- dt_measure.Columns.Add("量完尺数")
- dt_measure.Columns.Add("累加尺数")
- dt_measure.Columns.Add("每尺皮料")
- dt_measure.Columns.Add("每尺化料")
- dt_measure.Columns.Add("每尺染料")
- dt_measure.Columns.Add("每尺油脂")
- dt_measure.Columns.Add("每尺基础")
- dt_measure.Columns.Add("每尺其他")
- dt_measure.Columns.Add("除染料")
-
-
-
-
-
-
-
-
- dgv_measure.DataSource = dt_measure '------打尺
- dgv_measure.Columns(0).Width = 100
- dgv_measure.Columns(1).Width = 130
- dgv_measure.Columns(2).Width = 100
- dgv_measure.Columns(3).Width = 70
- dgv_measure.Columns(4).Width = 120
- dgv_measure.Columns(5).Width = 60
- dgv_measure.Columns(6).Width = 80
- dgv_measure.Columns(7).Width = 80
- dgv_measure.Columns(8).Width = 80
- dgv_measure.Columns(10).Width = 80
- dgv_measure.Columns(11).Width = 65
- dgv_measure.Columns(12).Width = 65
- dgv_measure.Columns(13).Width = 65
- dgv_measure.Columns(14).Width = 65
-
- dgv_measure.Columns(15).Width = 75
- dgv_measure.Columns(16).Width = 75
- dgv_measure.Columns(17).Width = 75
- dgv_measure.Columns(18).Width = 75
- dgv_measure.Columns(19).Width = 75
-
- Dim dr As SqlDataReader
-
- For x As Integer = 0 To dt_measure.Rows.Count - 1
- Dim dt1 As New DataTable
-
-
-
- 'If dt_measure.Rows(x).Item("卡号") = "1909152600" Then
-
- ' MsgBox("")
-
-
- 'End If
-
-
-
- sql = "SELECT class2 AS 类别, CAST(SUM(percents) * 100 AS numeric(10, 1)) AS 比例, CAST(SUM(price) / AVG(wb_weight) " &
- " AS numeric(10, 2)) AS 单位成本 " &
- " FROM (SELECT NO, CARD, P, AVG(ORDER_A) AS wb_weight, SUM(WEIGHT * price) AS price, SUM(WEIGHT) " &
- " / AVG(ORDER_A) AS percents, " &
- " CASE WHEN class1 LIKE N'%油脂%' THEN '油脂' WHEN (class1 = N'染料' OR " &
- " class1 LIKE N'%钛%') " &
- " THEN '染料' WHEN class1 = N'基础化工' THEN N'基础' ELSE '其他' END AS class2 " &
- " FROM (SELECT RT_SYS_CHEM_OUT.DATE, RT_SYS_CHEM_OUT.CHECKED, RT_SYS_CHEM_OUT.DEP, " &
- " RT_SYS_CHEM_OUT.NO, RT_SYS_CHEM_OUT.WH, RT_SYS_CHEM_OUT.CODE, " &
- " RT_SYS_CHEM_OUT.NAME, RT_SYS_CHEM_OUT.TYPE, RT_SYS_CHEM_OUT.UNIT, " &
- " RT_SYS_CHEM_OUT.LOT, RT_SYS_CHEM_OUT.WEIGHT, RT_SYS_CHEM_OUT.WEIGHT1, " &
- " RT_SYS_CHEM_OUT.P, RT_SYS_CHEM_OUT.CARD, RT_SYS_CHEM_OUT.DRUM, " &
- " RT_SYS_CHEM_OUT.ORDER_A, RT_SYS_CHEM_OUT.ID, CASE WHEN new_price Is NULL THEN CAST(RT_SYS_CHEM_MAIN.price AS numeric(10, 2)) ELSE CAST(new_price AS numeric(10, 2)) END AS price, " &
- " RT_SYS_CHEM_MAIN.CLASS1 " &
- " FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN " &
- " RT_SYS_CHEM_MAIN ON " &
- " RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name " &
- " WHERE (right(RT_SYS_CHEM_OUT.CARD,10) = '" & dt_measure.Rows(x).Item("卡号") & "')) " &
- " AS derivedtbl_1 GROUP BY NO, CARD, P, CLASS1) AS derivedtbl_2 " &
- " GROUP BY CARD, P, class2 " &
- " ORDER BY 类别 DESC "
-
- sql = "SELECT 类别, SUM(比例) AS 比例, SUM(单位成本) AS 单位成本 " &
- " FROM (SELECT TOP (100) PERCENT class2 AS 类别, CAST(SUM(percents) * 100 AS numeric(10, 1)) AS 比例, " &
- " CAST(SUM(price) / AVG(wb_weight) AS numeric(10, 2)) AS 单位成本 " &
- " FROM (SELECT NO, CARD, P, AVG(ORDER_A) AS wb_weight, SUM(WEIGHT * price) AS price, SUM(WEIGHT) " &
- " / AVG(ORDER_A) AS percents, " &
- " CASE WHEN class1 Like N'%油脂%' THEN '油脂' WHEN (class1 = N'染料' OR " &
- " class1 LIKE N'%钛%') " &
- " THEN '染料' WHEN class1 = N'基础化工' THEN N'基础' ELSE '其他' END AS class2 " &
- " FROM (SELECT RT_SYS_CHEM_OUT.DATE, RT_SYS_CHEM_OUT.CHECKED, " &
- " RT_SYS_CHEM_OUT.DEP, RT_SYS_CHEM_OUT.NO, " &
- " RT_SYS_CHEM_OUT.WH, RT_SYS_CHEM_OUT.CODE, " &
- " RT_SYS_CHEM_OUT.NAME, RT_SYS_CHEM_OUT.TYPE, " &
- " RT_SYS_CHEM_OUT.UNIT, RT_SYS_CHEM_OUT.LOT, " &
- " RT_SYS_CHEM_OUT.WEIGHT, RT_SYS_CHEM_OUT.WEIGHT1, " &
- " RT_SYS_CHEM_OUT.P, RT_SYS_CHEM_OUT.CARD, " &
- " RT_SYS_CHEM_OUT.DRUM, RT_SYS_CHEM_OUT.ORDER_A, " &
- " RT_SYS_CHEM_OUT.ID, CASE WHEN new_price IS NULL " &
- " THEN CAST(RT_SYS_CHEM_MAIN.price AS numeric(10, 2)) " &
- " ELSE CAST(new_price AS numeric(10, 2)) END AS price, " &
- " RT_SYS_CHEM_MAIN.CLASS1 " &
- " FROM RT_SYS_CHEM_OUT LEFT OUTER JOIN " &
- " RT_SYS_CHEM_MAIN ON " &
- " RT_SYS_CHEM_OUT.NAME = RT_SYS_CHEM_MAIN.name " &
- " WHERE (RIGHT(RT_SYS_CHEM_OUT.CARD, 10) = '" & dt_measure.Rows(x).Item("卡号") & "')) " &
- " AS derivedtbl_1 " &
- " GROUP BY NO, CARD, P, CLASS1) AS derivedtbl_2 " &
- " GROUP BY CARD, P, class2 ORDER BY 类别 DESC) AS qq GROUP BY 类别"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt1)
-
-
- For y As Integer = 0 To dt1.Rows.Count - 1
-
- Select Case dt1.Rows(y).Item("类别")
- Case "基础"
- dt_measure.Rows(x).Item("基础") = dt1.Rows(y).Item("单位成本")
- Case "染料"
- dt_measure.Rows(x).Item("染料") = dt1.Rows(y).Item("单位成本")
- Case "油脂"
- dt_measure.Rows(x).Item("油脂") = dt1.Rows(y).Item("单位成本")
- Case "其他"
- dt_measure.Rows(x).Item("其他") = dt1.Rows(y).Item("单位成本")
- End Select
- Next
-
-
-
- If IsDBNull(dt_measure.Rows(x).Item("基础")) Then
- dt_measure.Rows(x).Item("基础") = 0
- End If
-
- If IsDBNull(dt_measure.Rows(x).Item("染料")) Then
- dt_measure.Rows(x).Item("染料") = 0
- End If
-
- If IsDBNull(dt_measure.Rows(x).Item("油脂")) Then
- dt_measure.Rows(x).Item("油脂") = 0
- End If
-
- If IsDBNull(dt_measure.Rows(x).Item("其他")) Then
- dt_measure.Rows(x).Item("其他") = 0
- End If
-
-
-
-
- sql = "select sum(sf) as sf from rt_measure_daily where right(card,10)='" & dt_measure.Rows(x).Item("卡号") & "' and comment1 like N'%完%'"
- cmd.CommandText = sql
-
- If IsDBNull(cmd.ExecuteScalar) Then
-
- sql = "select cast(sum(sf) as numeric(10,1)) as sf from rt_measure_daily where right(card,10)='" & dt_measure.Rows(x).Item("卡号") & "'"
- cmd.CommandText = sql
- dt_measure.Rows(x).Item("累加尺数") = cmd.ExecuteScalar
- Else
-
- sql = "select cast(sum(sf) as numeric(10,1)) as sf from rt_measure_daily where right(card,10)='" & dt_measure.Rows(x).Item("卡号") & "'"
- cmd.CommandText = sql
- dt_measure.Rows(x).Item("量完尺数") = cmd.ExecuteScalar
-
-
-
- dt_measure.Rows(x).Item("每尺化料") = Math.Round((Val(dt_measure.Rows(x).Item("基础").ToString) + Val(dt_measure.Rows(x).Item("油脂").ToString) + Val(dt_measure.Rows(x).Item("染料").ToString) + Val(dt_measure.Rows(x).Item("其他").ToString)) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / Val(dt_measure.Rows(x).Item("量完尺数").ToString), 3)
- dt_measure.Rows(x).Item("每尺皮料") = Math.Round((Val(dt_measure.Rows(x).Item("蓝皮单价").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / dt_measure.Rows(x).Item("量完尺数").ToString), 3)
- dt_measure.Rows(x).Item("得革率") = Math.Round((Val(dt_measure.Rows(x).Item("量完尺数").ToString) / dt_measure.Rows(x).Item("蓝皮重").ToString), 3)
- dt_measure.Rows(x).Item("每尺染料") = Math.Round((Val(dt_measure.Rows(x).Item("染料").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / dt_measure.Rows(x).Item("量完尺数").ToString), 3)
- dt_measure.Rows(x).Item("每尺基础") = Math.Round((Val(dt_measure.Rows(x).Item("基础").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / dt_measure.Rows(x).Item("量完尺数").ToString), 3)
- dt_measure.Rows(x).Item("每尺油脂") = Math.Round((Val(dt_measure.Rows(x).Item("油脂").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / dt_measure.Rows(x).Item("量完尺数").ToString), 3)
- dt_measure.Rows(x).Item("每尺其他") = Math.Round((Val(dt_measure.Rows(x).Item("其他").ToString) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / dt_measure.Rows(x).Item("量完尺数").ToString), 3)
- dt_measure.Rows(x).Item("除染料") = Math.Round(((Val(dt_measure.Rows(x).Item("基础").ToString) + Val(dt_measure.Rows(x).Item("油脂").ToString) + Val(dt_measure.Rows(x).Item("其他").ToString)) * Val(dt_measure.Rows(x).Item("蓝皮重").ToString) / 2 / dt_measure.Rows(x).Item("量完尺数").ToString), 3)
-
-
- End If
-
- dt_measure.Rows(x).Item("合计") = Val(dt_measure.Rows(x).Item("基础").ToString) + Val(dt_measure.Rows(x).Item("油脂").ToString) + Val(dt_measure.Rows(x).Item("染料").ToString) + Val(dt_measure.Rows(x).Item("其他").ToString)
-
- Next
-
-
- sql = "delete from rt_cost" '-------染色
- cmd.CommandText = sql
- cmd.ExecuteNonQuery()
-
- Dim my_sqlbulk As New SqlBulkCopy(conn)
-
- my_sqlbulk.DestinationTableName = "dbo.rt_cost"
- my_sqlbulk.WriteToServer(dt_measure)
-
-
- MsgBox("")
-
-
-
- End Sub
- Private Sub CAL_TOTAL()
-
- Dim DT_TOTAL As New DataTable
-
-
- DT_TOTAL.Columns.Add("技术员")
- DT_TOTAL.Columns.Add("颜色")
-
- DT_TOTAL.Columns.Add("蓝皮均重")
- DT_TOTAL.Columns.Add("蓝皮均价")
- DT_TOTAL.Columns.Add("蓝皮产出率")
- DT_TOTAL.Columns.Add("蓝皮每尺成本")
- DT_TOTAL.Columns.Add("每尺化工")
- DT_TOTAL.Columns.Add("每尺染料")
- DT_TOTAL.Columns.Add("每尺其他")
- DT_TOTAL.Columns.Add("量尺尺数", GetType(System.Double))
- DT_TOTAL.Columns.Add("每尺化工加权", GetType(System.Double))
- DT_TOTAL.Columns.Add("每尺染料加权", GetType(System.Double))
-
-
-
-
-
-
- sql = "SELECT 技术员, 颜色, CAST(AVG(蓝皮重) AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, CAST(SUM(每尺染料 * 量尺尺数) " &
- " / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, " &
- " 2)) AS 每尺其他, SUM(量尺尺数) AS 量尺尺数 " &
- " FROM (SELECT 技术员, CASE WHEN 颜色 Like '%黑%' THEN '黑色' ELSE '彩色' END AS 颜色, CAST(AVG(蓝皮重) " &
- " AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, " &
- " CAST(SUM(每尺染料 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, " &
- " CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺其他, SUM(量尺尺数)" &
- " AS 量尺尺数 " &
- " FROM (SELECT tech AS 技术员, COUNT(*) AS counts, card AS 卡号, cust AS 客户, left(color,1) AS 颜色, " &
- " thick AS 厚度, CAST(SUM(sf) AS numeric(10, 1)) AS 量尺尺数, CAST(AVG(wb_weight) " &
- " AS numeric(10, 0)) AS 蓝皮重, source AS 皮源, CAST(AVG(wb_price) AS numeric(10, 1)) " &
- " AS 蓝皮单价, CAST(AVG(yield) AS numeric(10, 1)) AS 蓝皮产出率, CAST(AVG(cost_per_sf) " &
- " AS numeric(10, 1)) AS 蓝皮每尺成本, CAST(AVG(chem_per_sf) AS numeric(10, 1)) " &
- " AS 每尺化工, CAST(AVG(dye_per_sf) AS numeric(10, 1)) AS 每尺染料, CAST(AVG(oil_per_sf) " &
- " + AVG(com_per_sf) + AVG(other_per_sf) AS numeric(10, 1)) AS 每尺其他 " &
- " FROM rt_cost " &
- " WHERE (sf_finish IS NOT NULL) AND (chem_per_sf >0.5) AND (tech = N'罗') " &
- " GROUP BY tech, card, cust, left(color,1), thick, source) AS p " &
- " GROUP BY 技术员, 颜色) AS q " &
- " GROUP BY 技术员, 颜色 "
-
- Dim dt_luo As New DataTable
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt_luo)
- dgv_luo.DataSource = dt_luo
-
-
-
-
-
- sql = "SELECT 技术员, 颜色, CAST(AVG(蓝皮重) AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, CAST(SUM(每尺染料 * 量尺尺数) " &
- " / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, " &
- " 2)) AS 每尺其他, SUM(量尺尺数) AS 量尺尺数 " &
- " FROM (SELECT 技术员, CASE WHEN 颜色 Like '%黑%' THEN '黑色' ELSE '彩色' END AS 颜色, CAST(AVG(蓝皮重) " &
- " AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, " &
- " CAST(SUM(每尺染料 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, " &
- " CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺其他, SUM(量尺尺数) " &
- " AS 量尺尺数 " &
- " FROM (SELECT tech AS 技术员, COUNT(*) AS counts, card AS 卡号, cust AS 客户, left(color,1) AS 颜色, " &
- " thick AS 厚度, CAST(SUM(sf) AS numeric(10, 1)) AS 量尺尺数, CAST(AVG(wb_weight) " &
- " AS numeric(10, 0)) AS 蓝皮重, source AS 皮源, CAST(AVG(wb_price) AS numeric(10, 1)) " &
- " AS 蓝皮单价, CAST(AVG(yield) AS numeric(10, 1)) AS 蓝皮产出率, CAST(AVG(cost_per_sf) " &
- " AS numeric(10, 1)) AS 蓝皮每尺成本, CAST(AVG(chem_per_sf) AS numeric(10, 1)) " &
- " AS 每尺化工, CAST(AVG(dye_per_sf) AS numeric(10, 1)) AS 每尺染料, CAST(AVG(oil_per_sf) " &
- " + AVG(com_per_sf) + AVG(other_per_sf) AS numeric(10, 1)) AS 每尺其他 " &
- " FROM rt_cost " &
- " WHERE (sf_finish IS NOT NULL) AND (chem_per_sf >0.5) AND (tech = N'苏') AND " &
- " (source NOT LIKE N'%库存%') AND (source NOT LIKE N'%杂%') AND (source NOT LIKE N'%套%') AND (tech = N'苏')
- AND (source NOT LIKE N'%回%') AND (card NOT LIKE '%r18-%') " &
- " GROUP BY tech, card, cust, left(color,1), thick, source) AS p " &
- " GROUP BY 技术员, 颜色) AS q " &
- " GROUP BY 技术员, 颜色 "
-
-
- Dim dt_su1 As New DataTable
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt_su1)
- dgv_su1.DataSource = dt_su1 '-----苏正常黑色
-
-
- sql = "SELECT 技术员, 颜色, CAST(AVG(蓝皮重) AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, CAST(SUM(每尺染料 * 量尺尺数) " &
- " / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, " &
- " 2)) AS 每尺其他, SUM(量尺尺数) AS 量尺尺数 " &
- " FROM (SELECT 技术员, CASE WHEN 颜色 Like '%黑%' THEN '套黑' ELSE '彩色' END AS 颜色, CAST(AVG(蓝皮重) " &
- " AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, " &
- " CAST(SUM(每尺染料 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, " &
- " CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺其他, SUM(量尺尺数) " &
- " AS 量尺尺数 " &
- " FROM (SELECT tech AS 技术员, COUNT(*) AS counts, card AS 卡号, cust AS 客户, left(color,1) AS 颜色, " &
- " thick AS 厚度, CAST(SUM(sf) AS numeric(10, 1)) AS 量尺尺数, CAST(AVG(wb_weight) " &
- " AS numeric(10, 0)) AS 蓝皮重, source AS 皮源, CAST(AVG(wb_price) AS numeric(10, 1)) " &
- " AS 蓝皮单价, CAST(AVG(yield) AS numeric(10, 1)) AS 蓝皮产出率, CAST(AVG(cost_per_sf) " &
- " AS numeric(10, 1)) AS 蓝皮每尺成本, CAST(AVG(chem_per_sf) AS numeric(10, 1)) " &
- " AS 每尺化工, CAST(AVG(dye_per_sf) AS numeric(10, 1)) AS 每尺染料, CAST(AVG(oil_per_sf) " &
- " + AVG(com_per_sf) + AVG(other_per_sf) AS numeric(10, 1)) AS 每尺其他 " &
- " FROM rt_cost " &
- " WHERE (sf_finish IS NOT NULL) AND (chem_per_sf > 0.5) AND (tech = N'苏') AND " &
- " (card like'%r18-%' or source like N'%库存%' or source like N'%杂%' or source like N'%套%' or source LIKE N'%回%' ) " &
- " GROUP BY tech, card, cust, left(color,1), thick, source) AS p " &
- " GROUP BY 技术员, 颜色) AS q " &
- " GROUP BY 技术员, 颜色 "
-
-
- Dim dt_su2 As New DataTable
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt_su2)
- dgv_su2.DataSource = dt_su2 '----苏改色
-
-
-
-
-
- sql = "SELECT 技术员, 颜色, CAST(AVG(蓝皮重) AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, CAST(SUM(每尺染料 * 量尺尺数) " &
- " / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, " &
- " 2)) AS 每尺其他, SUM(量尺尺数) AS 量尺尺数 " &
- " FROM (SELECT 技术员, CASE WHEN 颜色 Like '%黑%' THEN '黑色' ELSE '彩色' END AS 颜色, CAST(AVG(蓝皮重) " &
- " AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, " &
- " CAST(SUM(每尺染料 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, " &
- " CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺其他, SUM(量尺尺数) " &
- " AS 量尺尺数 " &
- " FROM (SELECT tech AS 技术员, COUNT(*) AS counts, card AS 卡号, cust AS 客户, left(color,1) AS 颜色, " &
- " thick AS 厚度, CAST(SUM(sf) AS numeric(10, 1)) AS 量尺尺数, CAST(AVG(wb_weight) " &
- " AS numeric(10, 0)) AS 蓝皮重, source AS 皮源, CAST(AVG(wb_price) AS numeric(10, 1)) " &
- " AS 蓝皮单价, CAST(AVG(yield) AS numeric(10, 1)) AS 蓝皮产出率, CAST(AVG(cost_per_sf) " &
- " AS numeric(10, 1)) AS 蓝皮每尺成本, CAST(AVG(chem_per_sf) AS numeric(10, 1)) " &
- " AS 每尺化工, CAST(AVG(dye_per_sf) AS numeric(10, 1)) AS 每尺染料, CAST(AVG(oil_per_sf) " &
- " + AVG(com_per_sf) + AVG(other_per_sf) AS numeric(10, 1)) AS 每尺其他 " &
- " FROM rt_cost " &
- " WHERE (sf_finish IS NOT NULL) AND (chem_per_sf > 0.5) AND (tech = N'宁') " &
- " GROUP BY tech, card, cust, left(color,1), thick, source) AS p " &
- " GROUP BY 技术员, 颜色) AS q " &
- " GROUP BY 技术员, 颜色 "
-
- Dim dt_nin As New DataTable
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt_nin)
- dgv_nin.DataSource = dt_nin
-
-
- sql = "SELECT 技术员, 颜色, CAST(AVG(蓝皮重) AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, CAST(SUM(每尺染料 * 量尺尺数) " &
- " / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, " &
- " 2)) AS 每尺其他, SUM(量尺尺数) AS 量尺尺数 " &
- " FROM (SELECT 技术员, CASE WHEN 颜色 Like '%黑%' THEN '黑色' ELSE '彩色' END AS 颜色, CAST(AVG(蓝皮重) " &
- " AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, " &
- " CAST(SUM(每尺染料 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, " &
- " CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺其他, SUM(量尺尺数) " &
- " AS 量尺尺数 " &
- " FROM (SELECT tech AS 技术员, COUNT(*) AS counts, card AS 卡号, cust AS 客户, left(color,1) AS 颜色, " &
- " thick AS 厚度, CAST(SUM(sf) AS numeric(10, 1)) AS 量尺尺数, CAST(AVG(wb_weight) " &
- " AS numeric(10, 0)) AS 蓝皮重, source AS 皮源, CAST(AVG(wb_price) AS numeric(10, 1)) " &
- " AS 蓝皮单价, CAST(AVG(yield) AS numeric(10, 1)) AS 蓝皮产出率, CAST(AVG(cost_per_sf) " &
- " AS numeric(10, 1)) AS 蓝皮每尺成本, CAST(AVG(chem_per_sf) AS numeric(10, 1)) " &
- " AS 每尺化工, CAST(AVG(dye_per_sf) AS numeric(10, 1)) AS 每尺染料, CAST(AVG(oil_per_sf) " &
- " + AVG(com_per_sf) + AVG(other_per_sf) AS numeric(10, 1)) AS 每尺其他 " &
- " FROM rt_cost " &
- " WHERE (sf_finish IS NOT NULL) AND (chem_per_sf > 0.5) AND (tech = N'郑') " &
- " GROUP BY tech, card, cust, left(color,1), thick, source) AS p " &
- " GROUP BY 技术员, 颜色) AS q " &
- " GROUP BY 技术员, 颜色 "
-
- Dim dt_zhen As New DataTable
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt_zhen)
- dgv_zhen.DataSource = dt_zhen
-
-
- sql = "SELECT 技术员, 颜色, CAST(AVG(蓝皮重) AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, CAST(SUM(每尺染料 * 量尺尺数) " &
- " / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, " &
- " 2)) AS 每尺其他, SUM(量尺尺数) AS 量尺尺数 " &
- " FROM (SELECT 技术员, CASE WHEN 颜色 Like '%黑%' THEN '黑色' ELSE '彩色' END AS 颜色, CAST(AVG(蓝皮重) " &
- " AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, " &
- " CAST(SUM(每尺染料 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, " &
- " CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺其他, SUM(量尺尺数) " &
- " AS 量尺尺数 " &
- " FROM (SELECT tech AS 技术员, COUNT(*) AS counts, card AS 卡号, cust AS 客户, left(color,1) AS 颜色, " &
- " thick AS 厚度, CAST(SUM(sf) AS numeric(10, 1)) AS 量尺尺数, CAST(AVG(wb_weight) " &
- " AS numeric(10, 0)) AS 蓝皮重, source AS 皮源, CAST(AVG(wb_price) AS numeric(10, 1)) " &
- " AS 蓝皮单价, CAST(AVG(yield) AS numeric(10, 1)) AS 蓝皮产出率, CAST(AVG(cost_per_sf) " &
- " AS numeric(10, 1)) AS 蓝皮每尺成本, CAST(AVG(chem_per_sf) AS numeric(10, 1)) " &
- " AS 每尺化工, CAST(AVG(dye_per_sf) AS numeric(10, 1)) AS 每尺染料, CAST(AVG(oil_per_sf) " &
- " + AVG(com_per_sf) + AVG(other_per_sf) AS numeric(10, 1)) AS 每尺其他 " &
- " FROM rt_cost " &
- " WHERE (sf_finish IS NOT NULL) AND (chem_per_sf > 0.5) AND (tech = N'刘') " &
- " GROUP BY tech, card, cust, left(color,1), thick, source) AS p " &
- " GROUP BY 技术员, 颜色) AS q " &
- " GROUP BY 技术员, 颜色 "
-
- Dim dt_liu As New DataTable
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt_liu)
- dgv_liu.DataSource = dt_liu
-
-
-
-
-
-
-
-
-
-
-
-
- sql = "SELECT 技术员, CAST(AVG(蓝皮重) AS numeric(10, 0)) AS 蓝皮重, CAST(AVG(蓝皮单价) AS numeric(10, 1)) AS 蓝皮单价, " &
- " CAST(SUM(蓝皮产出率 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 1)) AS 蓝皮每尺成本, " &
- " CAST(SUM(每尺化工 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺化工, CAST(SUM(每尺染料 * 量尺尺数) " &
- " / SUM(量尺尺数) AS numeric(10, 2)) AS 每尺染料, CAST(SUM(每尺其他 * 量尺尺数) / SUM(量尺尺数) AS numeric(10, " &
- " 2)) AS 每尺其他, SUM(量尺尺数) AS 量尺尺数,sum(量尺尺数*每尺化工) as 每尺化工加权,sum(量尺尺数*每尺染料) as 每尺染料加权 " &
- " FROM (SELECT tech AS 技术员, COUNT(*) AS counts, card AS 卡号, cust AS 客户, color AS 颜色, thick AS 厚度, " &
- " CAST(SUM(sf) AS numeric(10, 1)) AS 量尺尺数, CAST(AVG(wb_weight) AS numeric(10, 0)) AS 蓝皮重, " &
- " source AS 皮源, CAST(AVG(wb_price) AS numeric(10, 1)) AS 蓝皮单价, CAST(AVG(yield) AS numeric(10, 1)) " &
- " AS 蓝皮产出率, CAST(AVG(cost_per_sf) AS numeric(10, 1)) AS 蓝皮每尺成本, CAST(AVG(chem_per_sf) " &
- " AS numeric(10, 1)) AS 每尺化工, CAST(AVG(dye_per_sf) AS numeric(10, 1)) AS 每尺染料, " &
- " CAST(AVG(oil_per_sf) + AVG(com_per_sf) + AVG(other_per_sf) AS numeric(10, 1)) AS 每尺其他 " &
- " FROM rt_cost " &
- " WHERE (sf_finish Is Not NULL) And (chem_per_sf <> 0) " &
- " GROUP BY tech, card, cust, color, thick, source) AS p " &
- " GROUP BY 技术员 HAVING (技术员 <> '林')"
-
-
-
-
- Dim dt_tech As New DataTable
-
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(dt_tech)
-
-
-
-
-
-
-
-
-
-
- Dim newDataTable1 As DataTable = dt_su1.Copy()
-
- For Each dr1 As DataRow In dt_luo.Rows
-
- newDataTable1.ImportRow(dr1)
-
- Next
-
-
-
- dgv_luo.Update()
-
-
-
-
- 'dgv_luo.Columns(0).Width = 80
- 'dgv_luo.Columns(1).Width = 80
- 'dgv_luo.Columns(2).Width = 80
- 'dgv_luo.Columns(3).Width = 80
- 'dgv_luo.Columns(4).Width = 80
- 'dgv_luo.Columns(5).Width = 80
- 'dgv_luo.Columns(6).Width = 80
- 'dgv_luo.Columns(7).Width = 80
- 'dgv_luo.Columns(8).Width = 80
-
-
- 'dgv_su1.Columns(0).Width = 80
- 'dgv_su1.Columns(1).Width = 80
- 'dgv_su1.Columns(2).Width = 80
- 'dgv_su1.Columns(3).Width = 80
- 'dgv_su1.Columns(4).Width = 80
- 'dgv_su1.Columns(5).Width = 80
- 'dgv_su1.Columns(6).Width = 80
- 'dgv_su1.Columns(7).Width = 80
- 'dgv_su1.Columns(8).Width = 80
-
- 'dgv_su2.Columns(0).Width = 80
- 'dgv_su2.Columns(1).Width = 80
- 'dgv_su2.Columns(2).Width = 80
- 'dgv_su2.Columns(3).Width = 80
- 'dgv_su2.Columns(4).Width = 80
- 'dgv_su2.Columns(5).Width = 80
- 'dgv_su2.Columns(6).Width = 80
- 'dgv_su2.Columns(7).Width = 80
- 'dgv_su2.Columns(8).Width = 80
-
-
- 'dgv_liu.Columns(0).Width = 80
- 'dgv_liu.Columns(1).Width = 80
- 'dgv_liu.Columns(2).Width = 80
- 'dgv_liu.Columns(3).Width = 80
- 'dgv_liu.Columns(4).Width = 80
- 'dgv_liu.Columns(5).Width = 80
- 'dgv_liu.Columns(6).Width = 80
- 'dgv_liu.Columns(7).Width = 80
- 'dgv_liu.Columns(8).Width = 80
-
-
- 'dgv_zhen.Columns(0).Width = 80
- 'dgv_zhen.Columns(1).Width = 80
- 'dgv_zhen.Columns(2).Width = 80
- 'dgv_zhen.Columns(3).Width = 80
- 'dgv_zhen.Columns(4).Width = 80
- 'dgv_zhen.Columns(5).Width = 80
- 'dgv_zhen.Columns(6).Width = 80
- 'dgv_zhen.Columns(7).Width = 80
- 'dgv_zhen.Columns(8).Width = 80
-
- 'dgv_nin.Columns(0).Width = 80
- 'dgv_nin.Columns(1).Width = 80
- 'dgv_nin.Columns(2).Width = 80
- 'dgv_nin.Columns(3).Width = 80
- 'dgv_nin.Columns(4).Width = 80
- 'dgv_nin.Columns(5).Width = 80
- 'dgv_nin.Columns(6).Width = 80
- 'dgv_nin.Columns(7).Width = 80
- 'dgv_nin.Columns(8).Width = 80
-
-
-
-
-
-
- For X As Integer = 0 To dt_su1.Rows.Count - 1
-
-
-
-
-
- Next
-
-
- Dim WORKROW As DataRow
-
- WORKROW = DT_TOTAL.NewRow
-
- For I As Integer = 0 To 9
- WORKROW(I) = dt_su1.Rows(0).Item(I)
- Next I
-
- DT_TOTAL.Rows.Add(WORKROW)
-
-
- WORKROW = DT_TOTAL.NewRow
-
- For I As Integer = 0 To 9
- WORKROW(I) = dt_luo.Rows(1).Item(I)
- Next I
-
- DT_TOTAL.Rows.Add(WORKROW)
-
-
-
-
-
- 'WORKROW = DT_TOTAL.NewRow '----老苏改色
-
- 'For I As Integer = 0 To 9
- ' WORKROW(I) = dt_su2.Rows(0).Item(I)
- 'Next I
-
- 'DT_TOTAL.Rows.Add(WORKROW)
-
- WORKROW = DT_TOTAL.NewRow
-
- For I As Integer = 0 To 9
- WORKROW(I) = dt_luo.Rows(0).Item(I)
- Next I
-
- DT_TOTAL.Rows.Add(WORKROW)
-
- WORKROW = DT_TOTAL.NewRow
-
- For I As Integer = 0 To 9
- WORKROW(I) = dt_nin.Rows(0).Item(I)
- Next I
-
- DT_TOTAL.Rows.Add(WORKROW)
-
- WORKROW = DT_TOTAL.NewRow
-
- For I As Integer = 0 To 9
- 'WORKROW(I) = dt_liu.Rows(0).Item(I)
- Next I
-
- DT_TOTAL.Rows.Add(WORKROW)
-
- WORKROW = DT_TOTAL.NewRow
-
- For I As Integer = 0 To 9
- WORKROW(I) = dt_zhen.Rows(0).Item(I)
- Next I
-
- DT_TOTAL.Rows.Add(WORKROW)
-
-
-
-
- dgv_TOTAL.DataSource = DT_TOTAL '---------技术员加权平均
-
-
-
- dgv_TOTAL.Columns(0).Width = 80
- dgv_TOTAL.Columns(1).Width = 80
- dgv_TOTAL.Columns(2).Width = 80
- dgv_TOTAL.Columns(3).Width = 80
- dgv_TOTAL.Columns(4).Width = 80
- dgv_TOTAL.Columns(5).Width = 80
- dgv_TOTAL.Columns(6).Width = 80
- dgv_TOTAL.Columns(7).Width = 80
- dgv_TOTAL.Columns(8).Width = 80
-
-
-
-
-
- For x As Integer = 0 To DT_TOTAL.Rows.Count - 1
-
-
- If IsDBNull(DT_TOTAL.Rows(x).Item("每尺化工")) Then
-
-
-
-
- Else
- DT_TOTAL.Rows(x).Item("每尺化工加权") = DT_TOTAL.Rows(x).Item("每尺化工") * DT_TOTAL.Rows(x).Item("量尺尺数")
- DT_TOTAL.Rows(x).Item("每尺染料加权") = DT_TOTAL.Rows(x).Item("每尺染料") * DT_TOTAL.Rows(x).Item("量尺尺数")
- End If
-
-
-
-
- Next
-
-
-
-
-
-
- Dim myDataRow As DataRow
- myDataRow = DT_TOTAL.NewRow
-
- myDataRow(0) = "平均"
- myDataRow(10) = DT_TOTAL.Compute("sum(每尺化工加权)", "")
- myDataRow(11) = DT_TOTAL.Compute("sum(每尺染料加权)", "")
-
-
- Dim XX As Double = DT_TOTAL.Compute("sum(量尺尺数)", "")
-
-
-
- myDataRow(6) = Math.Round(myDataRow(10) / XX, 2)
- myDataRow(7) = Math.Round(myDataRow(11) / XX, 2)
- myDataRow(8) = Math.Round(myDataRow(10) / XX - myDataRow(11) / XX, 2)
-
-
- myDataRow(9) = Math.Round(DT_TOTAL.Compute("sum(量尺尺数)", ""), 1)
-
-
- 'l_in.Text = myDataRow(1)
- 'l_out.Text = myDataRow(2)
- 'l_bal.Text = myDataRow(3)
-
-
- DT_TOTAL.Rows.InsertAt(myDataRow, DT_TOTAL.Rows.Count)
-
-
- 'dgv_TOTAL.DataSource = DT_TOTAL
-
-
-
- dgv_TOTAL.Rows(dgv_TOTAL.Rows.Count - 2).Cells(0).Style.ForeColor = Color.Red
- dgv_TOTAL.Rows(dgv_TOTAL.Rows.Count - 2).Cells(6).Style.ForeColor = Color.Red
- dgv_TOTAL.Rows(dgv_TOTAL.Rows.Count - 2).Cells(7).Style.ForeColor = Color.Red
- dgv_TOTAL.Rows(dgv_TOTAL.Rows.Count - 2).Cells(8).Style.ForeColor = Color.Red
- dgv_TOTAL.Rows(dgv_TOTAL.Rows.Count - 2).Cells(9).Style.ForeColor = Color.Red
-
- dgv_TOTAL.Columns(10).Visible = False
- dgv_TOTAL.Columns(11).Visible = False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- End Sub
- Private Sub ListBox2_MouseUp(sender As Object, e As MouseEventArgs) Handles ListBox2.MouseUp
-
- End Sub
-
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- CAL_TOTAL()
-
-
-
- sql = "SELECT 皮源,CAST(SUM(蓝皮单价*量尺尺数)/SUM(量尺尺数) AS NUMERIC(10,1)) AS 蓝皮每斤单价,CAST(SUM(蓝皮产出率*量尺尺数)/SUM(量尺尺数) AS numeric(10,1)) AS 蓝皮产出率, " &
- " CAST(SUM(蓝皮每尺成本*量尺尺数)/SUM(量尺尺数) AS numeric(10,1)) AS 蓝皮每尺成本,SUM(量尺尺数) AS 量尺尺数,SUM(蓝皮单价*量尺尺数) AS 蓝皮加权,SUM(蓝皮每尺成本*量尺尺数) AS 单价加权,SUM(蓝皮产出率*量尺尺数) AS 产出加权 " &
- " FROM (SELECT tech AS 技术员, COUNT(*) AS counts, card AS 卡号, left(color,1) as 颜色, " &
- " thick AS 厚度, CAST(SUM(sf) AS numeric(10, 1)) AS 量尺尺数, CAST(AVG(wb_weight) " &
- " AS numeric(10, 0)) AS 蓝皮重, source AS 皮源, CAST(AVG(wb_price) AS numeric(10, 2)) " &
- " AS 蓝皮单价, CAST(AVG(yield) AS numeric(10, 2)) AS 蓝皮产出率, CAST(AVG(cost_per_sf) " &
- " AS numeric(10, 2)) AS 蓝皮每尺成本, CAST(AVG(chem_per_sf) AS numeric(10, 2)) " &
- " AS 每尺化工, CAST(AVG(dye_per_sf) AS numeric(10, 2)) AS 每尺染料, CAST(AVG(oil_per_sf) " &
- " + AVG(com_per_sf) + AVG(other_per_sf) AS numeric(10, 2)) AS 每尺其他 " &
- " FROM rt_cost " &
- " WHERE (sf_finish Is Not NULL) And (chem_per_sf > 0.5) And ((wb_price) Is Not NULL) And WB_PRICE<>0 " &
- " GROUP BY tech, card, left(color,1), thick, source) AS P GROUP BY 皮源 ORDER BY 蓝皮每尺成本 "
-
- Dim DT_TOTAL As New DataTable
- cmd.CommandText = sql
- da.SelectCommand = cmd
- da.Fill(DT_TOTAL)
-
-
-
- Dim myDataRow As DataRow
- myDataRow = DT_TOTAL.NewRow
-
- myDataRow(0) = "平均"
- myDataRow(5) = DT_TOTAL.Compute("sum(蓝皮加权)", "")
- myDataRow(6) = DT_TOTAL.Compute("sum(单价加权)", "")
- myDataRow(7) = DT_TOTAL.Compute("sum(产出加权)", "")
-
- Dim XX As Double = DT_TOTAL.Compute("sum(量尺尺数)", "")
-
-
- If IsDBNull(myDataRow(1)) Then myDataRow(1) = 0
- If IsDBNull(myDataRow(2)) Then myDataRow(2) = 0
-
-
- myDataRow(1) = Math.Round(myDataRow(5) / XX, 1)
- myDataRow(3) = Math.Round(myDataRow(6) / XX, 1)
- myDataRow(2) = Math.Round(myDataRow(7) / XX, 1)
- myDataRow(4) = DT_TOTAL.Compute("sum(量尺尺数)", "")
-
-
- 'l_in.Text = myDataRow(1)
- 'l_out.Text = myDataRow(2)
- 'l_bal.Text = myDataRow(3)
-
-
- DT_TOTAL.Rows.InsertAt(myDataRow, DT_TOTAL.Rows.Count)
-
-
- 'dgv1.DataSource = dt
-
-
- 'dgv1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
-
- ''DGV3.AllowUserToAddRows = False
-
-
- DGV_WB.DataSource = DT_TOTAL '--------蓝皮加权平均
-
- DGV_WB.Columns(5).Visible = False
- DGV_WB.Columns(6).Visible = False
- DGV_WB.Columns(7).Visible = False
-
-
-
-
-
-
-
- DGV_WB.Rows(DGV_WB.Rows.Count - 2).Cells(0).Style.ForeColor = Color.Red
- DGV_WB.Rows(DGV_WB.Rows.Count - 2).Cells(1).Style.ForeColor = Color.Red
- DGV_WB.Rows(DGV_WB.Rows.Count - 2).Cells(2).Style.ForeColor = Color.Red
- DGV_WB.Rows(DGV_WB.Rows.Count - 2).Cells(3).Style.ForeColor = Color.Red
- DGV_WB.Rows(DGV_WB.Rows.Count - 2).Cells(4).Style.ForeColor = Color.Red
-
-
- DGV_WB.Columns(0).Width = 150
-
-
-
- End Sub
-
- Private Sub dgv_TOTAL_MouseDoubleClick(sender As Object, e As MouseEventArgs) Handles dgv_TOTAL.MouseDoubleClick
-
-
- Dim my_form As New Frm_RetanCost_Tech
-
- my_form.Show()
-
-
-
-
- 'Dim frm_tech As New Frm_RetanCost_Tech
-
- 'frm_tech.ShowDialog()
-
-
-
-
- End Sub
-
- Private Sub dgv_TOTAL_CellDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_TOTAL.CellDoubleClick
-
- 'Dim frm_tech As New Frm_RetanCost_Tech
-
- 'frm_tech.ShowDialog()
-
-
-
- End Sub
-
- Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
-
-
- Dim xlApp As Microsoft.Office.Interop.Excel.Application
- Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
- Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
- Dim xlrange As Microsoft.Office.Interop.Excel.Range
-
- xlApp = CreateObject("Excel.Application")
-
- xlBook = xlApp.Workbooks.Add
-
- 'xlApp.DisplayAlerts = False
- xlApp.Visible = True
- xlBook.Activate()
- xlBook.Parent.Windows(1).Visible = True
- xlSheet = xlBook.Worksheets(1)
- xlSheet.Activate()
-
-
- xlSheet.Cells(1, 1).select
-
-
-
- dgv_measure.SelectAll()
-
- 'Dim t As New System.Windows.Forms.DataObject
- 'Dim tt As New DataTable
- 'tt = dgv_measure.DataSource
-
- 't = dgv_measure.GetClipboardContent
- 'System.Windows.Forms.Clipboard.SetDataObject(t, False, 1000, 1000)
-
-
- 'xlSheet.Range("a10").Select()
- 'System.Threading.Thread.Sleep(12000)
- 'xlSheet.PasteSpecial(Format:="Unicode 文字", Link:=False, DisplayAsIcon:=False)
-
-
-
-
-
-
-
- Me.dgv_measure.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText
- Me.dgv_measure.RowHeadersVisible = False
-
- Clipboard.SetDataObject(dgv_measure.GetClipboardContent())
-
- ' xlSheet.PasteSpecial(Format:="文本", Link:=False, DisplayAsIcon:=False)
-
- ' xlSheet.PasteSpecial(Format:="unicode 文字", Link:=False, DisplayAsIcon:=False)
-
- xlSheet.Paste()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xlSheet.Range("B1:AA178").Select()
-
-
- xlSheet.Rows("2:179").Select
-
- xlApp.Selection.RowHeight = 26
- xlSheet.Range("D4").Select()
-
- With xlSheet.Columns("C:C")
- .EntireColumn.Hidden = False
- .ColumnWidth = 14.777778
- End With
- xlSheet.Columns("C:AA").HorizontalAlignment = xlHAlignCenter
- With xlSheet.Selection
- .HorizontalAlignment = xlHAlignGeneral
- .IndentLevel = 0
- End With
- xlSheet.Columns("K:K").EntireColumn.Hidden = True
- ' xlSheet.Range("B1:AA178").AutoFilter Field:=19, Criteria1:=Array(""), Operator:=xlFilterValues
- 'Range("B1:AA178").AutoFilter Field:=21, Criteria1:=Array("0.019", "0.256", "0.266", "0.307", "0.352", "0.357", "0.373", "0.474", "0.653", "0.809", "0.95", "1.074", "1.088", "1.183", "1.224", "1.238", "1.247", "1.248", "1.257", "1.261", "1.273", "1.278", "1.281", "1.289", "1.29", "1.293", "1.302", "1.307", "1.323", "1.327", "1.353", "1.36", "1.371", "1.372", "1.378", "1.38", "1.383", "1.384", "1.395", "1.407", "1.409", "1.411", "1.422", "1.428", "1.429", "1.432", "1.44", "1.45", "1.455", "1.467", "1.475", "1.476", "1.496", "1.502", "1.507", "1.529", "1.539", "1.568", "1.573", "1.575", "1.585", "1.595", "1.599", "1.642", "1.645", "1.647", "1.654", "1.694", "1.738", "1.783", "1.799", "1.807", "1.813", "1.822", "1.861", "1.877", "1.93", "2.01", "2.292", "2.3", "2.604", "5.058", "5.413"), Operator:=xlFilterValues
-
- With xlSheet.Columns("F:F")
- .EntireColumn.Hidden = False
- .ColumnWidth = 13.222222
- End With
- xlSheet.Columns("M:Q").EntireColumn.Hidden = True
- xlSheet.Columns("H:H").EntireColumn.Hidden = True
- xlSheet.Columns("T:T").EntireColumn.Hidden = True
- 'xlSheet.Columns("X:Z").Group Start:=1, End:=1, By:=1, Periods:=1
- xlSheet.Columns("U:AA").NumberFormatLocal = "0.00_);[紅色](0.00)"
-
-
- With xlSheet.PageSetup
- .LeftHeader = ""
- .CenterHeader = ""
- .RightHeader = ""
- .LeftFooter = ""
- .CenterFooter = ""
- .RightFooter = ""
- .Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlPortrait
- .Zoom = 100
- .FirstPageNumber = True
- .LeftMargin = 54.141732
- .RightMargin = 54.141732
- .TopMargin = 72
- .BottomMargin = 72
- .HeaderMargin = 36
- .FooterMargin = 36
- .CenterHorizontally = False
- .CenterVertically = False
- .PrintErrors = Microsoft.Office.Interop.Excel.XlPrintErrors.xlPrintErrorsDisplayed
- .Order = Microsoft.Office.Interop.Excel.XlOrder.xlDownThenOver
- .PrintGridlines = False
- .PrintHeadings = False
- .BlackAndWhite = False
- .PrintQuality = 600
- .PaperSize = Microsoft.Office.Interop.Excel.XlPaperSize.xlPaperA4
- .PrintComments = -4142
- .PrintArea = ""
- .PrintTitleRows = "$1:$1"
- .PrintTitleColumns = ""
- End With
- xlSheet.Columns("U:AA").Select
- With xlSheet.Selection
- .EntireColumn.Hidden = False
- .ColumnWidth = 3.888889
- End With
- With xlSheet.Selection
- .EntireColumn.Hidden = False
- .ColumnWidth = 4.333333
- End With
- xlSheet.Columns("R:R").NumberFormatLocal = "0.0_);[紅色](0.0)"
- With xlSheet.PageSetup
- .LeftHeader = ""
- .CenterHeader = ""
- .RightHeader = ""
- .LeftFooter = ""
- .CenterFooter = ""
- .RightFooter = ""
- .Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlPortrait
- .Zoom = 100
- .FirstPageNumber = True
- .LeftMargin = 14.173228
- .RightMargin = 14.173228
- .TopMargin = 42.519685
- .BottomMargin = 42.519685
- .HeaderMargin = 36
- .FooterMargin = 36
- .CenterHorizontally = False
- .CenterVertically = False
- .PrintErrors = Microsoft.Office.Interop.Excel.XlPrintErrors.xlPrintErrorsDisplayed
- .Order = Microsoft.Office.Interop.Excel.XlOrder.xlDownThenOver
- .Order = .xlDownThenOver
- .PrintGridlines = False
- .PrintHeadings = False
- .BlackAndWhite = False
- .PrintQuality = 600
- .PaperSize = Microsoft.Office.Interop.Excel.XlPaperSize.xlPaperA4
- .PrintComments = -4142
- .PrintArea = ""
- .PrintTitleRows = "$1:$1"
- .PrintTitleColumns = ""
- End With
- xlSheet.PageSetup.FitToPagesTall = 0
- xlSheet.PageSetup.FitToPagesWide = 1
- xlSheet.PageSetup.Orientation = xlLandscape
-
-
- xlSheet.Columns("A:A").EntireColumn.Hidden = True
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- End Sub
-
-
- End Class
|