1
private static void WriteXml(string strFileName,string code, DateTime from,DateTime to)
2
{
3
if(from>to)
4
{
5
return;
6
}
7
//将locationid读到数组中
8
string select="";
9
select="select LocationID from Master_GoodsByLocation where GoodsCode='"+code+"'order by LocationID";
10
OleDbDataAdapter m_dal=new OleDbDataAdapter(select,m_dc);
11
DataSet m_dsl=new DataSet();
12
m_dal.Fill(m_dsl,"Master_GoodsByLocation");
13
DataTable tl=m_dsl.Tables["Master_GoodsByLocation"];
14
string[] LocationID1=new string[tl.Rows.Count];
15
int i=0;
16
foreach(DataRow rl in tl.Rows)
17
{
18
LocationID1[i]=Convert.ToString(rl[0]);
19
i++;
20
}
21
m_dsl.Reset();
22
System.Xml.XmlTextWriter w=new XmlTextWriter(strFileName, System.Text.Encoding.UTF8);
23
w.Formatting=Formatting.Indented;
24
25
w.WriteStartDocument(true);
26
//start rood element
27
28
w.WriteStartElement("Data");
29
w.WriteAttributeString("Type", "CheckData");
30
w.WriteAttributeString("GoodsCode",code);
31
w.WriteAttributeString("StartDate", from.ToString("yyyy-MM-dd"));
32
w.WriteAttributeString("EndDate", to.ToString("yyyy-MM-dd"));
33
34
//start location
35
foreach(string location in LocationID1)
36
{
37
// node "Location"
38
w.WriteStartElement("Location");
39
w.WriteAttributeString("ID", location);
40
41
//node "ForecastDemand"
42
w.WriteStartElement("ForecastDemand");
43
OleDbCommand oc=new OleDbCommand("select Date,ForecastDemand from Temp_ForecastDemand where GoodsCode='"+code+"'and LocationID='"+location+"'and Date<=#"+to+"#and Date>=#"+from+"# order by Date",m_dc);
44
OleDbDataReader reader=oc.ExecuteReader();
45
while(reader.Read())
46
{
47
w.WriteStartElement("Record");
48
w.WriteAttributeString("Date",Convert.ToDateTime(reader["Date"]).ToShortDateString());
49
w.WriteAttributeString("Value",reader["ForecastDemand"].ToString());
50
w.WriteWhitespace(" ");
51
w.WriteEndElement();
52
}
53
reader.Close();
54
w.WriteWhitespace(" ");
55
w.WriteEndElement();
56
57
//node "RealSale"
58
w.WriteStartElement("RealSale");
59
oc=new OleDbCommand("select Date,RealSale from Temp_RealSale where GoodsCode='"+code+"'and LocationID='"+location+"'and Date<=#"+to+"#and Date>=#"+from+"#order by Date",m_dc);
60
reader=oc.ExecuteReader();
61
while(reader.Read())
62
{
63
w.WriteStartElement("Record");
64
w.WriteAttributeString("Date",Convert.ToDateTime(reader["Date"]).ToShortDateString());
65
w.WriteAttributeString("Value",reader["RealSale"].ToString());
66
w.WriteWhitespace(" ");
67
w.WriteEndElement();
68
}
69
reader.Close();
70
w.WriteWhitespace(" ");
71
w.WriteEndElement();
72
73
//node "Abnormity"
74
w.WriteStartElement("Abnormity");
75
oc=new OleDbCommand("select Date,Abnormity from Temp_Abnormity where GoodsCode='"+code+"'and LocationID='"+location+"'and Date<=#"+to+"#and Date>=#"+from+"#order by Date",m_dc);
76
reader=oc.ExecuteReader();
77
while(reader.Read())
78
{
79
w.WriteStartElement("Record");
80
w.WriteAttributeString("Date",Convert.ToDateTime(reader["Date"]).ToShortDateString());
81
w.WriteAttributeString("Value",reader["Abnormity"].ToString());
82
w.WriteWhitespace(" ");
83
w.WriteEndElement();
84
}
85
reader.Close();
86
w.WriteWhitespace(" ");
87
w.WriteEndElement();
88
89
//node "StatByMonth"
90
w.WriteStartElement("StatByMonth");
91
oc=new OleDbCommand("select StartDate,RealStock,StockoutTimes,SafetyStock,SafetyStockTime from Temp_StatByMonth where GoodsCode='"+code+"'and LocationID='"+location+"'and StartDate<=#"+to+"#and StartDate>#"+from.AddMonths(-1)+"#order by StartDate",m_dc);
92
reader=oc.ExecuteReader();
93
while(reader.Read())
94
{
95
w.WriteStartElement("Record");
96
w.WriteAttributeString("Date",Convert.ToDateTime(reader["StartDate"]).ToShortDateString());
97
w.WriteAttributeString("RealStock",reader["RealStock"].ToString());
98
w.WriteAttributeString("StockoutTimes",reader["StockoutTimes"].ToString());
99
w.WriteAttributeString("SafetyStock",reader["SafetyStock"].ToString());
100
w.WriteAttributeString("SafetyStockTime",reader["SafetyStockTime"].ToString());
101
w.WriteWhitespace(" ");
102
w.WriteEndElement();
103
}
104
reader.Close();
105
w.WriteWhitespace(" ");
106
w.WriteEndElement();
107
108
//end location
109
w.WriteWhitespace(" ");
110
w.WriteEndElement();
111
}
112
//end root element
113
w.WriteWhitespace("\r\n");
114
w.WriteEndElement();
115
116
//w.WriteEndElement();
117
w.Flush();
118
w.Close();
119
//return true;
120
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120
