*** empty log message ***
[thera-pi.git] / Reha / src / urlaubBeteiligung / Beteiligung.java
blob7849c6bdeb99a2eb8a50849996a9237aa074013c
1 package urlaubBeteiligung;
3 import hauptFenster.Reha;
5 import java.awt.BorderLayout;
6 import java.awt.Color;
7 import java.awt.event.ActionEvent;
8 import java.awt.event.ActionListener;
9 import java.awt.event.KeyEvent;
10 import java.awt.event.KeyListener;
11 import java.text.DecimalFormat;
12 import java.util.Collections;
13 import java.util.Comparator;
14 import java.util.Vector;
16 import javax.swing.JButton;
17 import javax.swing.JLabel;
18 import javax.swing.JOptionPane;
19 import javax.swing.JProgressBar;
20 import javax.swing.SwingUtilities;
22 import oOorgTools.OOTools;
24 import org.jdesktop.swingworker.SwingWorker;
25 import org.jdesktop.swingx.JXPanel;
27 import rehaInternalFrame.JBeteiligungInternal;
28 import sqlTools.SqlInfo;
29 import stammDatenTools.RezTools;
30 import systemTools.ButtonTools;
31 import systemTools.JRtaCheckBox;
32 import systemTools.JRtaComboBox;
33 import systemTools.JRtaTextField;
34 import terminKalender.DatFunk;
35 import terminKalender.ParameterLaden;
36 import ag.ion.bion.officelayer.application.OfficeApplicationException;
37 import ag.ion.bion.officelayer.document.DocumentDescriptor;
38 import ag.ion.bion.officelayer.document.IDocument;
39 import ag.ion.bion.officelayer.document.IDocumentDescriptor;
40 import ag.ion.bion.officelayer.document.IDocumentService;
41 import ag.ion.bion.officelayer.spreadsheet.ISpreadsheetDocument;
42 import ag.ion.noa.NOAException;
44 import com.jgoodies.forms.layout.CellConstraints;
45 import com.jgoodies.forms.layout.FormLayout;
46 import com.sun.star.beans.PropertyVetoException;
47 import com.sun.star.beans.UnknownPropertyException;
48 import com.sun.star.container.NoSuchElementException;
49 import com.sun.star.lang.IllegalArgumentException;
50 import com.sun.star.lang.IndexOutOfBoundsException;
51 import com.sun.star.lang.WrappedTargetException;
52 import com.sun.star.sheet.XSheetCellCursor;
53 import com.sun.star.sheet.XSpreadsheet;
54 import com.sun.star.sheet.XSpreadsheets;
55 import com.sun.star.uno.UnoRuntime;
57 public class Beteiligung extends JXPanel{
59 /**
62 private static final long serialVersionUID = -5302438379722827660L;
64 JBeteiligungInternal internal=null;
65 JRtaComboBox jcmb = null;
66 JLabel lab = null;
67 JRtaTextField[] tfs = {null,null};
68 JRtaTextField[] tfbeteil = {null,null,null};
69 JRtaCheckBox chbbeteil = null;
70 JXPanel content = null;
71 JButton[] buts = {null};
72 ActionListener al = null;
73 KeyListener kl = null;
74 boolean initok = false;
75 String aktBehandlerNummer = "";
76 JLabel progresstext1 = null;
77 JProgressBar progressbar1 = null;
78 final String copyright = "\u00AE" ;
80 int prozBehandl=0;
81 int prozHb=0;
82 int prozWeg=0;
84 Vector<Vector<String>> veckolls = new Vector<Vector<String>>();
86 Vector<Vector<Vector<String>>> tagesvec = new Vector<Vector<Vector<String>>>();
88 Vector<Integer[]> summenPos = new Vector<Integer[]>();
89 DecimalFormat dcf = new DecimalFormat("##########0.00");
91 int anzahlTagesBehandlungen = 0;
92 int calcrow = 0;
93 ISpreadsheetDocument spreadsheetDocument = null;;
94 IDocument document = null;
95 XSheetCellCursor cellCursor = null;
96 XSpreadsheet spreadsheet = null;
97 String sheetName;
99 String[] kopfzeile = {"Patient","PG","Pos1","Pos2","Pos3","Pos4","HB","WG",
100 "Preis1","Preis2","Preis3","Preis4","HB-Pr.","WG-Pr.","Summe","A","FK"};
101 String[] cols = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q"};
105 public Beteiligung(JBeteiligungInternal bti){
106 super();
107 this.internal = bti;
108 makeListeners();
109 add(getContent(),BorderLayout.CENTER);
110 initok = true;
113 private JXPanel getContent(){ // 1 2 3 4 5 6 7 8 9
114 FormLayout lay = new FormLayout("fill:0:grow(0.5),5dlu,70dlu,3dlu,60dlu,3dlu,70dlu,3dlu,60dlu,"+
115 //10 11 12 13
116 "3dlu,70dlu,3dlu, 60dlu,25dlu,fill:0:grow(0.5)",
117 // 1 2 3 4 5 6 7 8 9 10 11
118 "10dlu,p,5dlu,p,5dlu,p,5dlu,p,2dlu,p,10dlu");
119 CellConstraints cc = new CellConstraints();
120 content = new JXPanel();
121 content.setLayout(lay);
122 lab = new JLabel("Mitarbeiter");
123 content.add(lab,cc.xy(3,2,CellConstraints.RIGHT,CellConstraints.DEFAULT));
124 jcmb = new JRtaComboBox();
125 jcmb.setDataVectorVector(doKollegen(), 0, 1);
126 jcmb.setActionCommand("kollegen");
127 jcmb.addActionListener(al);
128 content.add(jcmb,cc.xy(5,2));
129 lab = new JLabel("Bet.an Behandl.(%)");
130 content.add(lab,cc.xy(7,2,CellConstraints.RIGHT,CellConstraints.DEFAULT));
131 tfbeteil[0]= new JRtaTextField("ZAHLEN",true);
132 tfbeteil[0].setText("0");
133 content.add(tfbeteil[0],cc.xy(9,2));
134 lab = new JLabel("Bet.an HB(%)");
135 content.add(lab,cc.xy(11,2,CellConstraints.RIGHT,CellConstraints.DEFAULT));
136 tfbeteil[1]= new JRtaTextField("ZAHLEN",true);
137 tfbeteil[1].setText("0");
138 content.add(tfbeteil[1],cc.xy(13,2));
140 lab = new JLabel("Bet.an Weggeb(%)");
141 content.add(lab,cc.xy(11,4,CellConstraints.RIGHT,CellConstraints.DEFAULT));
142 tfbeteil[2]= new JRtaTextField("ZAHLEN",true);
143 tfbeteil[2].setText("0");
144 content.add(tfbeteil[2],cc.xy(13,4));
147 lab = new JLabel("von...");
148 content.add(lab,cc.xy(3,6,CellConstraints.RIGHT,CellConstraints.DEFAULT));
149 tfs[0]= new JRtaTextField("DATUM",true);
150 tfs[0].setText(DatFunk.sHeute());
151 content.add(tfs[0],cc.xy(5,6));
153 lab = new JLabel("bis...");
154 content.add(lab,cc.xy(7,6,CellConstraints.RIGHT,CellConstraints.DEFAULT));
155 tfs[1]= new JRtaTextField("DATUM",true);
156 tfs[1].setText(DatFunk.sHeute());
157 content.add(tfs[1],cc.xy(9,6));
159 content.add((buts[0]=ButtonTools.macheButton("ermitteln", "ermitteln", al)),cc.xy(13,6));
160 buts[0].addKeyListener(kl);
162 progresstext1 = new JLabel(" ");
163 content.add(progresstext1,cc.xyw(5,8,9,CellConstraints.CENTER,CellConstraints.DEFAULT));
165 progressbar1 = new JProgressBar();
166 progressbar1.setStringPainted(true);
167 content.add(progressbar1,cc.xyw(5,10,9,CellConstraints.FILL,CellConstraints.DEFAULT));
169 content.validate();
170 return content;
172 @SuppressWarnings("unchecked")
173 private Vector<Vector<String>> doKollegen(){
174 int lang = ParameterLaden.vKollegen.size();
175 veckolls.clear();
176 Vector<String> vecdummy = new Vector<String>();
177 for(int i = 0;i<lang;i++){
178 vecdummy.clear();
179 //System.outprintln(ParameterLaden.vKollegen.get(i));
180 vecdummy.add((String)ParameterLaden.vKollegen.get(i).get(0));
181 vecdummy.add((String)ParameterLaden.vKollegen.get(i).get(3));
182 veckolls.add((Vector<String>)vecdummy.clone());
184 Comparator<Vector<String>> comparator = new Comparator<Vector<String>>() {
185 @Override
186 public int compare(Vector<String> o1, Vector<String> o2) {
187 String s1 = (String)o1.get(0);
188 String s2 = (String)o2.get(0);
189 return s1.compareTo(s2);
192 Collections.sort(veckolls,comparator);
193 return veckolls;
196 private void doTagAnalysieren(Vector<String> tag,int anzahltermine){
197 String reznum;
198 Vector<Vector<String>> vec;
199 boolean inhistory = false;
200 boolean ohnezuordnung = false;
201 int pos;
202 progressbar1.setMinimum(0);
203 progressbar1.setMaximum(anzahltermine);
204 Vector<String> rezvec = new Vector<String>();
205 for(int i = 0;i < anzahltermine;i++){
206 progressbar1.setValue(i);
207 progresstext1.setText("Auswerten Tag: "+DatFunk.sDatInDeutsch(tag.get(304))+
208 " Termin "+Integer.toString(i+1) +" von "+tag.get(300));
209 inhistory = false;
210 ohnezuordnung = false;
211 reznum = tag.get((i*5)+1).trim();
212 if( (reznum.indexOf("\\")) >= 0){
213 pos = reznum.indexOf("\\");
214 reznum = reznum.substring(0,pos);
216 if( (!reznum.contains("@FREI")) && (!reznum.contains("@INTERN")) ){
217 if( (reznum.trim().equals("")) && (!tag.get((i*5)).trim().equals("")) ){
218 doKeineZuordnung("ohne Zuordnung: "+tag.get((i*5)),false);
219 anzahlTagesBehandlungen++;
220 }else{
221 if((reznum.length()>2)){
222 if( ("KGMAERLORHPO".contains(reznum.substring(0,2))) ){
223 vec = SqlInfo.holeFelder("select * from verordn where rez_nr ='"+reznum+"' LIMIT 1");
224 if(vec.size()<=0){
225 vec = SqlInfo.holeFelder("select * from lza where rez_nr ='"+reznum+"' LIMIT 1");
226 if(vec.size()<=0){
227 ohnezuordnung = true;
228 }else{
229 inhistory = true;
232 //In beiden Tabellen Rezept nicht gefunden gefunden
233 if(ohnezuordnung){
234 doKeineZuordnung("ohne Zuordnung: "+tag.get((i*5)),false);
235 anzahlTagesBehandlungen++;
236 }else{
237 if(rezvec.contains(vec.get(0).get(1))){
238 doKeineZuordnung("an diesem Tag bereits erfaßt: "+tag.get((i*5))+"-"+vec.get(0).get(1).toString(),false);
239 anzahlTagesBehandlungen++;
240 }else{
241 try {
242 doAnteilBerechnen(vec,inhistory,DatFunk.sDatInDeutsch(tag.get(304)),tag.get((i*5)));
243 } catch (UnknownPropertyException e) {
244 e.printStackTrace();
245 } catch (PropertyVetoException e) {
246 e.printStackTrace();
247 } catch (IllegalArgumentException e) {
248 e.printStackTrace();
249 } catch (WrappedTargetException e) {
250 e.printStackTrace();
252 rezvec.add(vec.get(0).get(1).toString());
253 anzahlTagesBehandlungen++;
255 ////System.out.println("Tag "+DatFunk.sDatInDeutsch(tag.get(304))+" TerminNr "+(i+1)+" = Rezeptnummer "+reznum);
257 }else{
258 doKeineZuordnung("ohne Zuordnung: "+tag.get((i*5)),false);
259 anzahlTagesBehandlungen++;
261 }else{
262 if(!tag.get((i*5)).trim().equals("")){
263 doKeineZuordnung("ohne Zuordnung: "+tag.get((i*5)),false);
264 anzahlTagesBehandlungen++;
271 private void doAuswerten(int tage){
272 progressbar1.setForeground(Color.RED);
273 progressbar1.setMinimum(0);
274 progressbar1.setMaximum(tage+1);
275 int lang = tagesvec.size();
276 //Durch die einzelnen Tage
277 for(int i = 0; i < lang;i++){
278 //progressbar1.setValue(i);
279 //progresstext1.setText("Auswerten Tag: "+DatFunk.sDatInDeutsch(tagesvec.get(i).get(0).get(304))+
280 //" Termin "+Integer.toString(i+1) +" von "+tagesvec.get(i).get(0).get(300));
281 try {
282 anzahlTagesBehandlungen = 0;
283 doTagesKopf(DatFunk.sDatInDeutsch(tagesvec.get(i).get(0).get(304)));
284 Integer[] summenStart = {calcrow+1,0};
285 summenPos.add(summenStart);
286 doTagAnalysieren(tagesvec.get(i).get(0),Integer.parseInt(tagesvec.get(i).get(0).get(300)));
287 if(anzahlTagesBehandlungen==0){
288 doKeineZuordnung("Keine Behandlungen an diesem Tag (Urlaub/Krankheit)",false);
290 summenPos.get(summenPos.size()-1)[1] = calcrow;
291 doTagesSumme(i);
293 } catch (IndexOutOfBoundsException e) {
294 e.printStackTrace();
295 } catch (UnknownPropertyException e) {
296 e.printStackTrace();
297 } catch (PropertyVetoException e) {
298 e.printStackTrace();
299 } catch (IllegalArgumentException e) {
300 e.printStackTrace();
301 } catch (WrappedTargetException e) {
302 e.printStackTrace();
306 doEndsumme();
307 progresstext1.setText("feddisch....");
308 progressbar1.setForeground(Color.GREEN);
309 progressbar1.setValue(progressbar1.getMaximum());
313 /*******************************/
314 private void doEinlesen(String start,String end,int differenz){
315 String akttag;
316 String cmd;
317 tagesvec.clear();
318 tagesvec.trimToSize();
319 progressbar1.setForeground(Color.RED);
320 progressbar1.setMinimum(0);
321 progressbar1.setMaximum(differenz+1);
322 for(int i = 0; i <= differenz;i++){
323 progressbar1.setValue(i);
324 akttag = DatFunk.sDatInSQL( DatFunk.sDatPlusTage(DatFunk.sDatInDeutsch(start), i) );
325 progresstext1.setText("Termindaten abholen: "+DatFunk.sDatInDeutsch(akttag));
327 cmd = "select * from flexkc where datum ='"+akttag+"'"+
328 " AND behandler ='"+aktBehandlerNummer+"BEHANDLER'";
329 tagesvec.add( SqlInfo.holeFelder(cmd) );
331 progressbar1.setForeground(Color.GREEN);
332 progressbar1.setValue(differenz+1);
333 doAuswerten(differenz);
336 * @throws NOAException
337 * @throws OfficeApplicationException
338 * @throws IllegalArgumentException
339 * @throws PropertyVetoException
340 * @throws UnknownPropertyException
341 * @throws IndexOutOfBoundsException
342 * @throws WrappedTargetException
343 * @throws NoSuchElementException *****************************/
344 private boolean doErmitteln() throws NoSuchElementException, WrappedTargetException, IndexOutOfBoundsException, UnknownPropertyException, PropertyVetoException, IllegalArgumentException, OfficeApplicationException, NOAException{
345 if(jcmb.getValue().toString().trim().equals("00")){
346 JOptionPane.showMessageDialog(null, "Bitte wählen Sie einen Behandler aus");
347 jcmb.requestFocus();
348 return false;
350 if(tfbeteil[0].getText().trim().equals("0") && tfbeteil[1].getText().trim().equals("0")){
351 JOptionPane.showMessageDialog(null, "Bei jeweils 0% Beteiligung gibt's eigentlich nichts was zu ermitteln wäre\nDeppen gibt's.....");
352 tfbeteil[0].requestFocus();
353 return false;
355 try{
356 prozBehandl = Integer.parseInt(tfbeteil[0].getText().trim());
357 prozHb = Integer.parseInt(tfbeteil[1].getText().trim());
358 prozWeg = Integer.parseInt(tfbeteil[2].getText().trim());
359 }catch(Exception ex){
360 JOptionPane.showMessageDialog(null, "Ein oder mehrere Prozent-Werte sind unzulässig");
361 tfbeteil[0].requestFocus();
362 return false;
364 String dat1=null,dat2=null;
365 try{
366 dat1 = DatFunk.sDatInSQL(tfs[0].getText().trim());
367 dat2 = DatFunk.sDatInSQL(tfs[1].getText().trim());
368 }catch(Exception ex){
369 JOptionPane.showMessageDialog(null, "Die eingegebenen Datumswerte sind unzulässig");
370 tfs[0].requestFocus();
371 return false;
373 long differenz = DatFunk.TageDifferenz(tfs[0].getText().trim(), tfs[1].getText().trim());
374 if(differenz < 0){
375 JOptionPane.showMessageDialog(null, "Das eingegebene Enddatum liegt vor dem Startdatum");
376 tfbeteil[0].requestFocus();
377 return false;
379 starteCalc();
380 doEinlesen(dat1,dat2,Integer.parseInt(Long.toString(differenz)));
381 zeigeCalc();
382 return true;
384 /*******************************/
385 private void makeListeners(){
386 al = new ActionListener(){
387 @Override
388 public void actionPerformed(ActionEvent arg0) {
389 String cmd = arg0.getActionCommand();
390 if(cmd.equals("ermitteln")){
391 new SwingWorker<Void,Void>(){
392 @Override
393 protected Void doInBackground() throws Exception {
394 try{
395 tagesvec.clear();
396 tagesvec.trimToSize();
397 summenPos.clear();
398 summenPos.trimToSize();
399 anzahlTagesBehandlungen = 0;
400 calcrow = 0;
401 if(!doErmitteln()){
402 return null;
404 }catch(Exception ex){
405 ex.printStackTrace();
407 return null;
409 }.execute();
411 if(cmd.equals("kollegen") && initok){
412 aktBehandlerNummer = jcmb.getValue().toString();
413 //System.outprintln("Aktueller Behandler = "+aktBehandlerNummer);
417 kl = new KeyListener(){
418 @Override
419 public void keyPressed(KeyEvent arg0) {
421 @Override
422 public void keyReleased(KeyEvent arg0) {
424 @Override
425 public void keyTyped(KeyEvent arg0) {
430 * @throws WrappedTargetException
431 * @throws NoSuchElementException
432 * @throws IllegalArgumentException
433 * @throws PropertyVetoException
434 * @throws UnknownPropertyException
435 * @throws IndexOutOfBoundsException *****************************/
436 private void starteCalc() throws OfficeApplicationException, NOAException, NoSuchElementException, WrappedTargetException, IndexOutOfBoundsException, UnknownPropertyException, PropertyVetoException, IllegalArgumentException{
437 if(!Reha.officeapplication.isActive()){
438 Reha.starteOfficeApplication();
440 IDocumentService documentService = Reha.officeapplication.getDocumentService();
441 IDocumentDescriptor docdescript = new DocumentDescriptor();
442 docdescript.setHidden(true);
443 docdescript.setAsTemplate(true);
444 document = documentService.constructNewDocument(IDocument.CALC, docdescript);
445 spreadsheetDocument = (ISpreadsheetDocument) document;
446 OOTools.setzePapierFormatCalc((ISpreadsheetDocument) spreadsheetDocument, 21000, 29700);
447 OOTools.setzeRaenderCalc((ISpreadsheetDocument) spreadsheetDocument, 1000,1000, 1000, 1000);
448 XSpreadsheets spreadsheets = spreadsheetDocument.getSpreadsheetDocument().getSheets();
450 sheetName= "Tabelle1";
451 spreadsheet = (XSpreadsheet)UnoRuntime.queryInterface(XSpreadsheet.class,spreadsheets.getByName(sheetName));
452 cellCursor = spreadsheet.createCursor();
453 doTabellenKopf();
454 doSpaltenJustieren();
457 * @throws IndexOutOfBoundsException
458 * @throws WrappedTargetException
459 * @throws IllegalArgumentException
460 * @throws PropertyVetoException
461 * @throws UnknownPropertyException *****************************/
462 private void doTabellenKopf() throws IndexOutOfBoundsException, UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException{
463 OOTools.doCellFontBold(cellCursor, 0, 0);
464 OOTools.doCellValue(cellCursor, 0, 0, "Gesamtumsätze vom "+tfs[0].getText()+" bis einschließlich "+tfs[1].getText());
465 OOTools.doCellColor(cellCursor, 11, 0, 0xffffff);
466 OOTools.doCellColor(cellCursor, 12, 0, 0xffffff);
467 OOTools.doCellColor(cellCursor, 13, 0, 0xffffff);
468 OOTools.doCellValue(cellCursor, 11, 0, Double.parseDouble(tfbeteil[0].getText()));
469 OOTools.doCellValue(cellCursor, 12, 0, Double.parseDouble(tfbeteil[1].getText()));
470 OOTools.doCellValue(cellCursor, 13, 0, Double.parseDouble(tfbeteil[2].getText()));
471 calcrow++;
472 OOTools.doCellFontBold(cellCursor, 0, calcrow);
473 OOTools.doCellValue(cellCursor, 0, calcrow, jcmb.getSelectedItem().toString());
474 calcrow+=2;
476 private void doSpaltenJustieren() throws NoSuchElementException, WrappedTargetException, IndexOutOfBoundsException, UnknownPropertyException, PropertyVetoException, IllegalArgumentException{
477 OOTools.doColWidth(spreadsheetDocument,sheetName,0,0,4000);
478 OOTools.doColTextAlign(spreadsheetDocument,sheetName,0,0,0);
480 OOTools.doColWidth(spreadsheetDocument,sheetName,1,1,1200);
481 OOTools.doColTextAlign(spreadsheetDocument,sheetName,1,1,2);
483 OOTools.doColWidth(spreadsheetDocument,sheetName,2,7,1500);
484 OOTools.doColTextAlign(spreadsheetDocument,sheetName,2,7,0);
486 OOTools.doColWidth(spreadsheetDocument,sheetName,8,14,1500);
487 OOTools.doColTextAlign(spreadsheetDocument,sheetName,8,14,3);
489 OOTools.doColWidth(spreadsheetDocument,sheetName,15,16,1200);
490 OOTools.doColTextAlign(spreadsheetDocument,sheetName,15,16,2);
492 OOTools.doColNumberFormat(spreadsheetDocument,sheetName,8,14,2);
495 private void doTagesKopf(String tag) throws IndexOutOfBoundsException, UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException{
496 OOTools.doCellFontBold(cellCursor, 0, calcrow);
497 OOTools.doCellValue(cellCursor, 0, calcrow,tag);
498 calcrow++;
499 for(int i = 0; i < kopfzeile.length;i++){
500 OOTools.doCellFontItalic(cellCursor, i, calcrow);
501 OOTools.doCellValue(cellCursor, i, calcrow,kopfzeile[i]);
503 calcrow++;
506 private void doKeineZuordnung(String name,boolean history){
507 try {
508 OOTools.doCellColor(cellCursor, 0, calcrow, 0xff0000);
509 OOTools.doCellValue(cellCursor, 0, calcrow,name.replace(copyright, ""));
510 if(name.contains("erfaßt")){
511 OOTools.doCellFontBold(cellCursor, 0, calcrow);
513 for(int i = 8;i < 13; i++){
514 OOTools.doCellValue(cellCursor, i, calcrow,Double.parseDouble("0.00"));
516 OOTools.doCellFormula(cellCursor, 14,calcrow, "=sum(I"+Integer.toString(calcrow+1)+":N"+Integer.toString(calcrow+1)+")");
517 calcrow++;
518 } catch (IndexOutOfBoundsException e) {
519 e.printStackTrace();
520 } catch (UnknownPropertyException e) {
521 e.printStackTrace();
522 } catch (PropertyVetoException e) {
523 e.printStackTrace();
524 } catch (IllegalArgumentException e) {
525 e.printStackTrace();
526 } catch (WrappedTargetException e) {
527 e.printStackTrace();
530 private void doAnteilBerechnen(Vector<Vector<String>> rezvec,boolean history,String datum,String name) throws UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException{
531 Vector<String> calczeile = RezTools.macheUmsatzZeile(rezvec,datum,jcmb.getSelectedItem().toString());
532 //System.outprintln(calczeile);
533 try {
534 OOTools.doCellValue(cellCursor, 0, calcrow,name.replace(copyright, ""));
535 OOTools.doCellValue(cellCursor, 1,calcrow, rezvec.get(0).get(41) );
536 String formula;
537 for(int i = 0 ; i < 6;i++){
539 OOTools.doCellValue(cellCursor, i+2,calcrow, calczeile.get(i) );
540 if(i==4){
541 formula = "="+calczeile.get(i+6)+"/100*$M$1";
542 }else if(i==5){
543 formula = "="+calczeile.get(i+6)+"/100*$N$1";
544 }else{
545 formula = "="+calczeile.get(i+6)+"/100*$L$1";
548 OOTools.doCellFormula(cellCursor, i+8,calcrow, formula );
550 OOTools.doCellFormula(cellCursor, 14,calcrow, "=sum(I"+Integer.toString(calcrow+1)+":N"+Integer.toString(calcrow+1)+")");
551 if(history){
552 OOTools.doCellValue(cellCursor, 15,calcrow, "X");
554 if(!calczeile.get(12).equals("0")){
555 OOTools.doCellColor(cellCursor,16,calcrow,0xff0000);
556 OOTools.doCellValue(cellCursor,16,calcrow,calczeile.get(12));
559 } catch (IndexOutOfBoundsException e) {
560 e.printStackTrace();
562 calcrow++;
564 private void doTagesSumme(int tag){
565 try {
566 OOTools.doCellColor(cellCursor, 0, calcrow, 0xff0000);
567 OOTools.doCellValue(cellCursor, 0, calcrow, "Tagessumme");
568 String formel = "=sum(O"+Integer.toString(summenPos.get(tag)[0])+":O"+Integer.toString(summenPos.get(tag)[1])+")";
569 OOTools.doCellColor(cellCursor, 14, calcrow, 0xff0000);
570 OOTools.doCellFormula(cellCursor, 14, calcrow, formel);
571 } catch (IndexOutOfBoundsException e) {
572 e.printStackTrace();
573 } catch (UnknownPropertyException e) {
574 e.printStackTrace();
575 } catch (PropertyVetoException e) {
576 e.printStackTrace();
577 } catch (IllegalArgumentException e) {
578 e.printStackTrace();
579 } catch (WrappedTargetException e) {
580 e.printStackTrace();
582 calcrow+= 2;
584 private void doEndsumme(){
585 try {
586 OOTools.doCellColor(cellCursor, 0, calcrow, 0xff0000);
587 OOTools.doCellFontBold(cellCursor, 0, calcrow);
588 OOTools.doCellValue(cellCursor, 0, calcrow, "Gesamtsumme");
589 OOTools.doCellColor(cellCursor, 14, calcrow, 0xff0000);
590 OOTools.doCellFontBold(cellCursor, 14, calcrow);
591 String formula = "=";
593 for(int i = 0;i < summenPos.size();i++){
594 formula = formula+"O"+Integer.toString(summenPos.get(i)[1]+1)+(i < (summenPos.size()-1) ? "+" : "");
596 OOTools.doCellFormula(cellCursor, 14, calcrow, formula);
598 calcrow += 2;
599 OOTools.doCellColor(cellCursor,0,calcrow,0xff0000);
600 OOTools.doCellValue(cellCursor,0,calcrow,"FK 1 = Tag im Terminblatt nicht erfaßt");
601 OOTools.doCellColor(cellCursor,0,calcrow+1,0xff0000);
602 OOTools.doCellValue(cellCursor,0,calcrow+1,"FK 2 = Tag ist erfaßt aber keine Positionen zugeordnet");
603 OOTools.doCellColor(cellCursor,0,calcrow+2,0xff0000);
604 OOTools.doCellValue(cellCursor,0,calcrow+2,"FK 3 = Tag ist erfaßt aber Positionen einer anderen Tarifgruppe zugeordnet");
607 } catch (IndexOutOfBoundsException e) {
608 e.printStackTrace();
609 } catch (UnknownPropertyException e) {
610 e.printStackTrace();
611 } catch (PropertyVetoException e) {
612 e.printStackTrace();
613 } catch (IllegalArgumentException e) {
614 e.printStackTrace();
615 } catch (WrappedTargetException e) {
616 e.printStackTrace();
619 private void zeigeCalc(){
620 final ISpreadsheetDocument xspredsheetDocument = spreadsheetDocument;
621 SwingUtilities.invokeLater(new Runnable(){
622 public void run(){
623 xspredsheetDocument.getFrame().getXFrame().getContainerWindow().setVisible(true);
624 xspredsheetDocument.getFrame().setFocus();
630 private void doBehandlung(){
634 public void doAufraeumen(){