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