Frage : Neues Perl-Verteilungsbogen Parseexcel Problem

Für den angebrachten Verteilungsbogen und den angebrachten Code sollte
it den Dateninhalt an der spezifizierten Position ausdrucken, die dem Dateinamen entspricht. Sobald es ein ENDE schlägt, ausdruckt es das content.


I morgens die folgende Störung erhalten ns,…, das sie nicht vorher. kam. Was kann getan werden, um sie zu entfernen?

------------------------------------------------------

ROW: 9
COLUMN: 17
Cell Wert ist P
The zuerst Feldelement ist 059L042M6|99*QNDNCA|USD|0302|8759|USD|95|9528.08|928.08|20090507|20091204|059L042M6|OTC4|L|S

Content von „/v/region/na/appl/phoenixfunding/etl/data/qa/SrcFiles/MFOtcTaxlotOpenDelta.txt_20100226“ ist:
059L042M6|99*QNDNCA|USD|0302|8759|USD|95|9528.08|928.08|20090507|20091204|059L042M6|OTC4|L|S
059L042M6|99*QNDNCA|USD|0302|8759|USD|85|8528.08|828.08|20090507|20091204|059L042M6|OTC4|S|S
059L042M6|99*QNDNCA|USD|0302|8759|USD|75|7528.08|728.08|20090507|20091204|059L042M6|OTC4|L|P
059L042M6|99*QNDNCA|USD|0302|8759|USD|65|6528.08|628.08|20090507|20091204|059L042M6|OTC4|S|P
059105130|99*QNDNCA|Eur|0302|3275|USD|5000|5190.36|590.36|20090501|20120512|'059105130|OTC4|L|S
059105130|99*QNDNCA|Eur|0302|3275|USD|4000|4190.36|490.36|20090501|20120512|'059105130|OTC4|S|S
059105130|99*QNDNCA|Eur|0302|3275|USD|3500|3190.36|390.36|20090501|20120512|'059105130|OTC4|L|P

Row vorher, wenn Aussage 10
Value der Reihe ist, bevor sie zunächst benennt, ist 12
Row vorher, wenn Aussage 12
Can nicht Anrufmethode „Wert“ auf einem unbestimmten Wert /ms/user/s/sayantag/Proces s_MF.pl an der Linie 35.

ist----------------------------------------------------------------
1:
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:
6:
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:
#! /usr/bin/perl5.10 - w


Warnungen verwenden;
Gebrauch Verteilungsbogen:: ParseExcel;
strenges verwenden;
Gebrauch IO:: Skalar;
Gebrauch Daten:: Kipper;

mein @etl_val = @ARGV;

Druck „@etl_val“. “ \ n ";

mein $parser = Verteilungsbogen:: ParseExcel->new ();
mein $workbook = $parser->parse („/ms/user/s/sayantag/Demo_MF5.xls“);
mein $worksheet;
mein %order_of_flat_file;
mein @data_arr;
mein $etl;
mein $path;

für $worksheet ($workbook->worksheets ()) {
   mein ($row_min, $row_max) = $worksheet->row_range ();
   mein ($col_min, $col_max) = $worksheet->col_range ();
 
   mein $row = $row_min + 2;
   während ($row <=$row_max) {
        Druck „Reihe vorher, wenn Aussage $row \ n ist“;    
     wenn ($worksheet->get_cell ($row, 2) - >value Ne „ENDE“) {
        Druck „Reihe nachher, wenn Aussage $row \ n ist“;
                
     mein $etl_cell = $worksheet->get_cell ($row, 2);
        wenn (definiert ($etl_cell)) {
        $etl = $etl_cell->value;}

     mein $path_cell = $worksheet->get_cell ($row, 1);
        wenn (definiert ($path_cell)) {
        $path = $path_cell->value;
        $path =~ s \ s$//;
        Druck „WEG: $path“. “ \ n ";}

     mein $path_cell0 = $worksheet->get_cell ($row, 0);
        wenn (definiert ($path_cell0)) {
        $path.= $path_cell0->value;
        Druck $path_cell0->value. „\ n“;
        Druck „WEG: $path“. “ \ n ";
        Druck „ETL: $etl“. “ \ n ";
        Druck „WEG: $path“. “ \ n ";
        
        }
     mein $data_row; 
     für mein $col ($col_min+3. $col_max) {
        Druck „REIHE: $row“. “ \ n ";
        Druck „SPALTE: $col“. “ \ n ";
                
        mein $cell = $worksheet->get_cell ($row, $col);
        wenn (definiert ($cell)) {
          mein $cell_val = $cell->value;
          Druck „Zellenwert ist $cell_val \ n“;
          $data_row. = $cell_val. „|“;
         drucken „erst Feldelement ist $data_arr [0] \ n“;
          „Inhalt von „drucken“, $path, „“ ist: \ n ", @data_arr, „\ n“;
         } sonst {$data_row. = „|“;
                 
                } 
         
         }
        $data_row =~ s {\|+$} {}; # schleppende Rohre entfernen.
        $data_row. = „\ n“; # Linie Ende Ende der Reihe hinzufügen. 
        @data_arr, $data_row drücken;  
        $row++;     
       }
        sonst {# Druck, „, welches die Reihe wie @data_arr \ n aussieht“;
              öffnen („FILEHANDLE“, „>“, $path) oder sterben „kann die Akte nicht öffnen“, $path, „: $! “;
              Druck FILEHANDLE @data_arr;
              Abschluss („FILEHANDLE“);
              @data_arr = ();
              $row = $row+2;
              Druck „Wert der Reihe, bevor er zunächst benennt, ist $row \ n“;
              zunächst;
      
            }
        $order_of_flat_file {$etl} = $path;
     }
   }

für mein $curr_etl_val (@etl_val) {
        $order_of_flat_file {$curr_etl_val}, „\ n“ drucken;
}

foreach meine $curr_etl (@etl_val) {
Druck„\ nNow, das Arbeitsfluß $curr_etl \ n“ durchführt;
`KSH Command_Line_Etl.ksh „PhoenixFundingAdmin“ „NjuX2mfP0k“ „PhoenixFunding“ $curr_etl „REPO_SVC_PhxR2Qa“ „Domain_NY_Qa“ `;
}
nach dem Betrieb der Arbeitsflüsse Druck „\ nAll Akten erzeugt. Diese Akten sowie die Grundlinienakten grafisch darstellen zu einem Verteilungsbogen, indem Sie den Excel-Einstellungsindex laufen lassen, bevor Daten durch Saturn \ n \ n \ n“ vergleichen;
Attachments:
Attached spreadsheet

Antwort : Neues Perl-Verteilungsbogen Parseexcel Problem

Normalerweise, wenn eine Anwendung arbeitet, wenn Sie an einen „vollen Schreibtisch“ using RDP anschließen, aber NICHT wenn als RemoteApp, ist die Ausgabe normalerweise die Tatsache, die das Oberteil jetzt die vollziehbare APP und NICHT Explorer.exe ist. Sehr allgemeine Ausgabe mit Delphi schriftlichen apps.
Die andere Ausgabe ist manchmal eine APP baut auf alle Parameter von einer Abkürzung, um richtig zu arbeiten (Anfang innen, Weg, usw.). RemoteApp verwendet nicht alle.
Was Sie in diesem Fall tun, ist, ein RemoteApp diese Punkte zu einer .LNK Akte (Abkürzung) anstatt, zur vollziehbaren APP zu gehen zu verursachen. Die Abkürzung so verursachen und sie anstelle vom .EXE für die APP dann wählen. Dieses repariert viele apps außerdem.

Cláudio Rodrigues
Citrix CTP
Weitere Lösungen  
 
programming4us programming4us