File: PROTOCOL\TProtocolDiffractometryManagePrintDlg.cpp
1 //******************************************************************************
2 //Datei : TProtocolDiffractometryManagePrintDlg.cpp
3 //Projekt : XCTL
4 //Subsystem : Protokollbuch
5 //Autor : Jens Klier <klier@informatik.hu-berlin.de>
6 // Institut fuer Informatik,
7 // Humboldt-Universitaet Berlin
8 //Inhalt : Implementation der Klasse TProtocolDiffractometryManagePrintDlg
9 //******************************************************************************
10 //!neu klier Protokollbuch
11 #include "internls\evrythng.h"
12 #include "winresrc\rc_prtow.h" // Ressourcen-IDs
13 #include <commdlg.h>
14 #include <commctrl.h>
15
16 #include "protocol\TProtocolLanguage.h"
17 #include "protocol\TProtocol.h"
18 #include "protocol\TProtocolDlg.h"
19 #include "protocol\TProtocolDiffractometry.h"
20 #include "protocol\TProtocolDiffractometryDlg.h"
21 #include "protocol\TProtocolManagePrintDlg.h"
22 #include "protocol\TProtocolDiffractometryManagePrintDlg.h"
23
24 //--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||--
25
26 extern TProtocolLanguage *ProtocolLanguage;
27 extern TProtocolDiffractometry *ProtocolDiffractometry;
28 extern HINSTANCE hModuleInstance;
29
30 TProtocolDiffractometryManagePrintDlg::TProtocolDiffractometryManagePrintDlg(LPSTR Dlg, TProtocolDiffractometryDlg *ProtocolDiffractometryDlg, int x, int y, TModelessDlg **aRef) :
31 TProtocolManagePrintDlg(Feldelemente, x, y), TModelessDlg(Dlg, aRef,hModuleInstance)
32 {
33 Protocol= ProtocolDiffractometry;
34 ProtocolCombobox.InitializeManageComboboxProtocolDlg(Protocol);
35 ProtocolDlg= ProtocolDiffractometryDlg;
36 };
37
38 BOOL TProtocolDiffractometryManagePrintDlg::Dlg_OnInit(HWND hwnd, HWND hwndCtl, LPARAM lParam)
39 {
40 int iCol=0;
41 char buf[MaxString];
42
43 TProtocolManagePrintDlg::Dlg_OnInit(hwnd, hwndCtl, lParam);
44 ProtocolCombobox.InitializeCombobox(hwnd, hMaterialList, id_PrnMaterial, Material, "Material");
45
46 if (!PListView_InsertColumn(hSuchList, iCol++, ProtocolDiffractometry->GetParameterNamen(LfdNr, buf)))
47 return FALSE;
48 if (!PListView_InsertColumn(hSuchList, iCol++, ProtocolDiffractometry->GetParameterNamen(Datum, buf)))
49 return FALSE;
50 if (!PListView_InsertColumn(hSuchList, iCol++, ProtocolDiffractometry->GetParameterNamen(ProbenNr, buf)))
51 return FALSE;
52 if (!PListView_InsertColumn(hSuchList, iCol++, ProtocolDiffractometry->GetParameterNamen(Material, buf)))
53 return FALSE;
54
55 ListView_SetExtendedListViewStyle(hSuchList, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );
56
57 ProtocolLanguage->SetDiffractometryManagePrintDlgLanguage(hwnd);
58
59 return TRUE;
60 };
61
62 void TProtocolDiffractometryManagePrintDlg::Dlg_OnNotify(HWND hwnd, int message, UINT id, UINT wParam)
63 {
64 TProtocolManagePrintDlg::Dlg_OnNotify(hwnd, message, id, wParam);
65 };
66
67 void TProtocolDiffractometryManagePrintDlg::Dlg_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
68 {
69 if (TProtocolManagePrintDlg::Dlg_OnCommand(hwnd, id, codeNotify))
70 return;
71
72 TModelessDlg::Dlg_OnCommand(hwnd, id, hwndCtl, codeNotify);
73 };
74
75 LPSTR TProtocolDiffractometryManagePrintDlg::GetDlgItemText_LfdNr( HWND hwnd, LPSTR lLfdNr)
76 {
77 GetDlgItemText(hwnd, id_PrnLfdNr, lLfdNr, MaxString);
78 return lLfdNr;
79 };
80
81 void TProtocolDiffractometryManagePrintDlg::GetDlgItemText_SearchParameter( HWND hwnd, TSearchParameter SearchParameter )
82 {
83 GetDlgItemText(hwnd, id_PrnProbenNr, SearchParameter[0], MaxString);
84 GetDlgItemText(hwnd, id_PrnMaterial, SearchParameter[1], MaxString);
85 strcpy(SearchParameter[2], "");
86 strcpy(SearchParameter[3], "");
87 };
88
89 BOOL TProtocolDiffractometryManagePrintDlg::SearchProtocolString( LPCSTR lLfdNr, const TSearchDate SearchDate, const TSearchParameter SearchParameter )
90 {
91 return ProtocolDiffractometry->SearchProtocolString(lLfdNr, SearchDate[0], SearchDate[1],
92 SearchParameter[0], SearchParameter[1]);
93 };
94
95 void TProtocolDiffractometryManagePrintDlg::MakeListString( int iIndex)
96 {
97 char buf[MaxString];
98 int iCol=1;
99
100 PListView_InsertItem(hSuchList, iIndex, ProtocolDiffractometry->GetProtocolValue(LfdNr, buf));
101
102 PListView_SetItemText(hSuchList, iIndex, iCol++, ProtocolDiffractometry->GetProtocolValue(Datum, buf));
103 PListView_SetItemText(hSuchList, iIndex, iCol++, ProtocolDiffractometry->GetProtocolValue(ProbenNr, buf));
104 PListView_SetItemText(hSuchList, iIndex, iCol++, ProtocolDiffractometry->GetProtocolValue(Material, buf));
105 };
106
107 int TProtocolDiffractometryManagePrintDlg::GetPages( int SelCount )
108 {
109 return SelCount;
110 };
111
112 int TProtocolDiffractometryManagePrintDlg::GetColumn( void )
113 {
114 return 2;
115 };
116
117 LPSTR TProtocolDiffractometryManagePrintDlg::GetSelLfdNr(LPSTR lLfdNr, int Index )
118 {
119 char buf[MaxString];
120
121 ListView_GetItemText(hSuchList,Index,0,buf,MaxString);
122 strcpy(lLfdNr, buf);
123 return lLfdNr;
124 };
125
126 BOOL TProtocolDiffractometryManagePrintDlg::PrintSkizze(int i)
127 {
128 if (i == Orientierung)
129 return TRUE;
130 return FALSE;
131 };
132
133 BOOL TProtocolDiffractometryManagePrintDlg::PrintLine(int i)
134 {
135 if ( (i == LfdNr) || (i == Nutzer) || (i == Material) || (i == FehlRichtung) ||
136 (i == Scanmethode) || (i == Messdatei) || (i == Scantyp) ||
137 ((i == Schrittweite1) && !Continuous) ||
138 ((i == Schrittweite2) && !Continuous) ||
139 ((i == Geschwindigkeit1) && Continuous) ||
140 ((i == Geschwindigkeit2) && Continuous) ||
141 (i == BPSvertikal) || (i == BDvertikal) || (i == AFaktor) ||
142 (i == Addiere) || (i == Monitor) )
143 return TRUE;
144 return FALSE;
145 };
146
147 void TProtocolDiffractometryManagePrintDlg::GetParameterName(int& i, LPSTR Parameter)
148 {
149 char *token, ParameterValue[MaxParameterString];
150
151 if ( (( i == Geschwindigkeit1) || (i == Geschwindigkeit2)) && !Continuous)
152 i++;
153 if ( (i == Scanachse2) && !Omega2Theta)
154 i += 6;
155 if ( (i == Kanalabstand) && !PSD)
156 i += 3;
157
158 ProtocolDiffractometry->GetParameterNamen(i, Parameter);
159
160 if ( ( !Continuous &&
161 ((i == Minimum1) || (i == Maximum1) || (i == Schrittweite1) ||
162 (i == Minimum2) || (i == Maximum2) || (i == Schrittweite2)) ) ||
163 ( !PSD && (i == Winkelbereich) ) )
164 {
165 strcpy(ParameterValue, Parameter);
166 token= strtok(ParameterValue, "/");
167 if (token != NULL)
168 strcpy(Parameter, token);
169 }
170 else
171 {
172 strcpy(ParameterValue, Parameter);
173 token= strtok(ParameterValue, "/");
174 token= strtok(NULL, "/");
175 if (token != NULL)
176 strcpy(Parameter, token);
177 }
178 strcat(Parameter, ":");
179 };
180
181 BOOL TProtocolDiffractometryManagePrintDlg::GetParameter(int& i, LPSTR Parameter, LPCSTR lLfdNr)
182 {
183 char ParameterValue[MaxParameterString];
184
185 if ( strcmp(ProtocolDiffractometry->GetLfdNr(ParameterValue), lLfdNr) != 0)
186 if ( ProtocolDiffractometry->LoadProtocolString(lLfdNr) != 0 )
187 return FALSE;
188
189 ProtocolDiffractometry->GetProtocolValue( i, Parameter);
190 if (strlen(Parameter) == 0)
191 strcpy(Parameter, "-");
192
193 if (i == Scanmethode)
194 {
195 if (strstr(Parameter, "Continuous") != NULL)
196 Continuous= TRUE;
197 else
198 Continuous= FALSE;
199 }
200 if (i == Scantyp)
201 {
202 if (strstr(Parameter, "Omega2Theta") != NULL)
203 Omega2Theta= TRUE;
204 else
205 Omega2Theta= FALSE;
206 }
207 if (i == Detektor)
208 {
209 if (strstr(Parameter, "PSD") != NULL)
210 PSD= TRUE;
211 else
212 PSD= FALSE;
213 }
214 return TRUE;
215 };
216
217
218 // LastLine
219
220
221